码迷,mamicode.com
首页 > 其他好文 > 详细

FPGA 的 RAM 的 区别

时间:2015-10-15 23:29:59      阅读:346      评论:0      收藏:0      [点我收藏+]

标签:

FPGA 上有两种RAM, BLock Ram 和 Distributed Ram。

Block Ram:

1、bram是FPGA 中定制的ram资源。位置是固定的,例如BRAM就是一列一列分布的,这就可能造成用户逻辑和BRAM之间的route延时比较长。举个最简单的例子,在大规模FPGA中,如果用光所有的BRAM,性能一般会下降,甚至出现route不通的情况,就是这个原因。灵活的运用BRAM和distributed RAM可以有效利用FPGA资源,提升性能。如果需要用较多的BRAM,合理规划布局也可以提升性能,可以使用Planahead进行布局规划。

2、bram 的输出需要时钟

 

3、较大的存储应用,建议用bram;零星的小ram,一般就用dram。但这只是个一般原则

Distributed Ram:

1、dram就是用逻辑单元拼出来的,会浪费LUT 资源。

2、dram可以是纯组合逻辑,即给出地址马上出数据,也可以加上register变成有时钟的ram。

 

在Xilinx FIFO CORE的使用时,有两种RAM可供选择,Block memory和Distributed memory。差别在于,前者是使用FPGA中的整块双口RAM资源,而后者则是拼凑起FPGA中的查找表形

xilinx spartan3an系列fpga:
       一个CLB包含4个SLICE,其中左边两个SLICE可用于存储、移位寄存器和逻辑配置,称为SLICEM;右边的两个SLICE只能用于逻辑组合,称为SLICEL。每个SLICE中有2个LUT,2个存储单元,多路复用器,进位链等。一个LUT和一个存储单元称为一个LOGIC CELL,因此通常一个SLICE等效于2.25个LOGIC CELL。

 

 

有两种方式使用Block RAM。法一:使用IP core generator; 法二: 使用verilog 或者VHDL自己写一个模块。

 

猛然发现,我要实现的不是RAM,而是一个可以单次写一个,单次读多个的一个寄存器组。

FPGA 的 RAM 的 区别

标签:

原文地址:http://www.cnblogs.com/xingzifei/p/4883911.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!