Embedded Memory --- 嵌入式存储器

      Cyclone II 的嵌入式存储器由M4K存储器块列组成。M4K存储器块包括同步写入的输入寄存器和用以流水线设计和提高系统性能的输出寄存器。输出寄存器可以绕过,而输入寄存器不可以。

每个M4K存储器块可以实现各类带或不带奇偶校验的存储器,包括真正双端口、简单双端口、单端口RAM、ROM、FIFO缓冲器。M4K块支持以下特性:

■      4608 RAM bits

■     250-MHZ 性能

■     真正双端口存储器

■     简单双端口存储器

■     单端口存储器

■     字节使能

■     奇偶校验位

■     移位寄存器

■     FIFO缓冲器

■     ROM

■     不同时钟模式

■     地址时钟使能

注意:违反存储器块地址寄存器的设置或保持时间,会损坏存储器的内容。这对读和写操作均适用。

              表2-5给出了每个Cyclone II 器件中M4K存储块的容量和分布

 

                       表2-6总汇了M4K 存储器支持的特性

 

Table   2-6 . M4K Memory Features

特性

描述

最高性能

250 MHZ

M4K块(包括奇偶校验位)总RAM位数

4608

配置支持

4K * 1

2K * 2

1K * 4

512 * 8

512 * 9

256 * 16

256 * 18

128 * 32(真正双端口模式不可用)

128 * 36(同上)

奇偶校验位

每个字节有一位奇偶校验位。和内部用户逻辑一起,校验位可以实现错误检测的奇偶校验以确保数据的完整性。

字节使能

当写端口的数据宽度为1、2、4、8、9、16、18、32或36位时,M4K块支持字节写操作。字节使能允许输入数据可以被屏蔽,所以器件可以写特定的字节。未写完的字节保留先前写入的值。

打包模式

两个单端口的存储器块可以被打包到一个单独的M4K块中,如果每个独立块的尺寸小于等于M4K块尺寸的一半,并且每个单端口存储器块被配置成单时钟模式。

地址时钟使能

M4K支持地址时钟使能,只要该信号启用,就会被用来保持先前地址值。这一功能在处理缓存应用的缺失时很有用。

存储器初始化文件(.mif

当配置成RAM或ROM时,你可以用一个初始化文件来预置存储器内容。

通电状态

输出清零

寄存器清零

仅输出寄存器

同一端口边读边写

在时钟上升沿可用新数据

混合端口边读边写

在时钟上升沿可用旧数据

 

存储器模式

     表2-7概括了M4K存储器块支持的不同存储器模式。

Table 2-7. M4K Memory Modes

存储器模式

描述

单端口存储器

M4K块支持单端口模式,在不要求同时读写时使用。单端口存储模式支持不同步读写。

简单双端口存储器

该模式下支持同步读写

混合位宽的简单双端口存储器

该模式有不同读写端口位宽

真正双端口存储器

该模式支持两个端口操作的任意组合:两个读、两个写、在两个不同时钟频率的一读一写

混合位宽的双端口

该模式支持不公读写端口位宽

嵌入式移位寄存器

M4K存储器块可被用来实现移位寄存器。数据在时钟下降沿写入每个地址,在时钟上升沿从地址中读出。

ROM

M4K存储器块支持ROM模式。MIF文件用来初始化这些块中的ROM内容。

FIFO缓冲器

M4k块可以实现单时钟或双时钟FIFO。该模式不支持从一个空的FIFO缓冲器中同步读写。

   注意:嵌入式存储器可以从HDL代码中推断出来,或者在Quartus II中使用MegaWizard® Plug-in Manager的存储器编译器功能直接例化。

 

时钟模式

   表2-8总括了M4K支持的不公时钟模式:

Table 2-8 . M4K Clock Modes

时钟模式

描述

独立

该模式下,每个端口(A和B端口)有独立的时钟。时钟A(B)控制端口A(B)一边的所有寄存器。

输入/输出

A或B两个端口任一个上,一个时钟控制存储器块输入寄存器:数据输入、写使能和地址;另一个时钟控制该块的数据输出寄存器。

读/写

该模式下有多达两个可用块。写时钟控制块的数据输入、写地址和写使能;读时钟用来控制数据输出、读地址和读使能。

单一时钟

该模式下,单一时钟和始终使能一起用来控制存储器块地所有寄存器。不支持寄存器的异步清零。

  表2-9给出了所有M4K块配置成不同存储器模式时支持的时钟模式

 M4K路由接口

   来自相邻LABs的R4、C4和直接链连互连可以驱动M4K块的局部互连。M4K块可以通过行资源和左边或右边的LABs通信,或者通过列资源和左边或右边的LAB列通信。多达16个直接链连输入到M4K块来自于左相邻的LAB,还有16个来自于右相邻的LAB。通过每边16个直接链连互联,M4K块的输出可以连接到左边和右边的LABs。

  表2-17 展示了M4K块到逻辑阵列的接口

 

posted @   陈小硕  阅读(2110)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示