基于IP Core的Block RAM设计
7.4 基于IP Core的Block RAM设计
n 本节介绍基于IP Core的Block RAM设计,由于
Block RAM属于特殊结构,使用Xilinx公司提供的
IP Core是比较方便的,而且灵活、高效、不容易
出错(IP Core的使用请见3.1.4节)。
7.4.1双端口块RAM(Dual-Port Block RAM)
双端口RAM的特性
n Virtex、Virtex-E、Virtex-II、Virtex-IIPro、
Spartan、Spartan-II、Spartan-IIE和Spartan-
3系列的FPGA都嵌入了Block RAM。
n 支持所有3种Virtex-II写模式 :Read-After-Write、
Read-Before-Write和 No-Read-On-Write(只
适用于Virtex-II和Spartan-3)
n 支持RAM和ROM功能。
n 支持1到256BIT的数据端口宽度。
n 根据选择的不同结构,支持1到2M字的存储深度。
n 支持ROM功能,两个端口可以同时对一个地址的数据进
n 支持RAM功能,两个端口可以同时对不同的地址进行写
行读操作。
操作,或者对同一地址进行读操作。
n 两个端口是完全独立的。
n 支持A、B端口的不对称配置。
n 支持CORE设计或者使用SelectRAM+ 、 SelectRAM-II
n 支持不同极性的控制信号引脚:时钟(clock)、 使能
库原语以求面积优化。
(enable), 写使能(write enable) 和输出初使化
(output initialization)引脚。
n 结合Xilinx的Smart-IP技术使设计更灵活,最优化实现。
2.双端口RAM的功能描述
n Dual-Port Block RAM是由一块或多块叫做Select-
RAM+™的4Kb存储块组成的。Virtex-II和
Spartan-3系列的Dual-Port Block RAM是由一块或
多块16 Kb存储块(SelectRAM-II™)组成的,能
构成更宽或者更深的存储器设计。Select-RAM+™
和SelectRAM-II™都是真正的双端口RAM,为
Spartan-II和Virtex系列家族的芯片提供快速、离
散的而且足够大的块RAM。因为Spartan-II和
Virtex都使用4Kb的Select-RAM+™存储块,所以
任何涉及到Virtex能实现的RAM,都可以在
Spartan-II、Virtex-E、Virtex-II、Virtex-IIPro、
Spartan-IIE系列中实现。
每个存储器含有两个完全独立的端口A和B,
两个端口享有同时访问存储器中同一地址的能力,
存储器的深度和宽度由使用者自己定义。两个端
口在功能上是完全一样,都可以对存储器进行读
写操作。两个端口可以同时对存储器的同一地址
进行读操作,如果对同一地址进行操作,一个端
口读,一个端口写,那么写操作成功,而读出的
数据是无效的。
根据使用者的定义,可以配置端口A和端口B
的数据宽度和地址宽度。当两个端口被禁用时
(ENA和ENB无效),存储器中的数据和输出端
口将保持不变。当两个端口可用时(ENA和ENB
有效),对存储器的所有操作将在输入时钟的边
沿触发。
n 进行写操作时(WEA或WEB有效),相应数
据端口的数据将写入地址端口所指定的存储地址
中。 在这个操作中,Spartan-II/Virtex和Virtex-II
系列的块RAM的输出端口的动作并不相同。
n
Virtex-II和Spartan-3系列的块RAM的输出端口
的具体实现要根据“写模式”的设置而定。
Virtex-II和Spartan-3系列的块RAM支持3种“写模
式”,每种模式决定了输出端口在写操作发生后
将如何作出反应。