安路科技: FPGA中block ram的特殊用法列举

在FPGA中block ram是很常见的硬核资源,合理的利用这些硬件资源一定程度上可以优化整个设计,节约资源利用率,充分开发FPGA芯片中的潜在价值,本文根据前人总结的一些用法,结合安路科技FPGA做简单总结,说明基本原理。

用法一:使用双口模式拆分成2个小容量的BRAM

基本原理如下:

· 以1K*9bit双端口配置模式为例,一个bram9k,可以当作两个512*9k rom

· 将A端口的地址最高位固定接0,B端口的地址最高位固定接1,则通过A端口只能访问0~511的地址空间,通过B端口只能访问512~1023地址空间,互不冲突,相当于两个小容量的rom

用法二:用作并行数据的多周期延时

· 将bram例化成简单双端口模式,并将写端口固定使能为写,读端口固定使能为读。

· 将ram模式配置成 “读优先模式”,每次在写某个地址之前会先把该地址的数据输出

· 用一个模长为N(N=4)的计数器,反复向ram中写数据,会得到一个延时为N+1的输出数据

如下图:

安路科技: FPGA中block ram的特殊用法列举

  用法三:用作高速大规模计数器

基本原理如下:

· 以9Kbit bram为例,设置成双端口,1k*9bit模式

· A端口doa[7:0]是低8bit 计数器输出,doa[8]是进位信号,给到B端口的使能

· B端口dob[7:0]是高8bit计数器输出。

· 由于B端口数据有一个周期延时,将A端口数据延时一个周期之后与B端口构成16bit计数器

· 也即一个9Kbit bram可以构造成一个16bit的计数器

· 设计原型是两个8bit的计数器级联构造16bit计数

· rom初始化文件

安路科技: FPGA中block ram的特殊用法列举

安路科技: FPGA中block ram的特殊用法列举

用法四:构造高速复杂的状态机

一般状态机原理框图如下:

安路科技: FPGA中block ram的特殊用法列举

基于rom的状态机原理如下:

安路科技: FPGA中block ram的特殊用法列举

· 首先明确 状态划分,状态跳转条件,状态输出

· 将现态输出与输入给到rom_a的地址端,初始化值为输出值

· 将现态输出与跳转条件给到rom_b的地址端,初始化值为次态输出

· 若状态不多,可以将rom_a与rom_b合并成一个真双口的rom

关于更多细节请参考如下相关文档:

1.《基于FPGA的数字信号处理》 高亚军 电子工业出版社

2.EF2_datahseet_V3.9

(免责声明:本网站内容主要来自原创、合作伙伴供稿和第三方自媒体作者投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
任何单位或个人认为本网站中的网页或链接内容可能涉嫌侵犯其知识产权或存在不实内容时,应及时向本网站提出书面权利通知或不实情况说明,并提供身份证明、权属证明及详细侵权或不实情况证明。本网站在收到上述法律文件后,将会依法尽快联系相关文章源头核实,沟通删除相关内容或断开相关链接。 )