XilinxA7芯片内部独立于逻辑单元的专用存储器

上一篇中提到了SLICEL和SLICEM都可用作     ROM   ,后者还可以作为分布式     RAM   (Distribu     te   RAM,     DRAM   )。本篇主要总结的是块状Memory(Block Memory),实际上就是     FPGA   内部独立于逻辑单元的专用存储器,更像是一种硬核。

1. 基本结构

如下图所示,一个Block Memory的大小为36KB(RAMB36E1),由两个独立的18KB BRAM(Block RAM,RAMB18E1)组成。因此一个36K的Block Memory可配置成4中情形:

全部用于配置成36KB的BRAM;

全部用于配置成36KB的FIFO;

配置成18KB的BRAM和18KB的BRAM;

配置成18KB的BRAM和18KB的FIFO;

为什么不能配置成两个18KB的FIFO呢?因为一个Block Momery中间有一个叫FIFO Logic的结构,它用于生成FIFO控制信号,包括读/写地址等,由于它只有1个且不能共享,所以最多只能配置一个FIFO。


 XilinxA7芯片内部独立于逻辑单元的专用存储器_设计制作_模拟技术


 XilinxA7芯片内部独立于逻辑单元的专用存储器_设计制作_模拟技术

2. BRAM与DRAM的比较

简单的来说,BRAM就是一块固定存储功能的硬核,而DRAM是由一堆SLICE拼接成,实现存储功能的单元。

尽管BRAM可支持更多功能,但并不表明BRAM在任何场合都具有优势。两者的使用总结如下:

1. BRAM一定需要     时钟   ;DRAM可以是纯组合逻辑,即给地址马上出数据(当然上篇说了,为了提高性能,在读出的时候加上触发器更好);

2. BRAM有着较大的存储空间;而DRAM实现大的存储空间会消耗很多LUT资源;

较大的存储应用,建议用BRAM;零星的小RAM,一般就用DRAM。但这只是个一般原则,具体的使用得看整个设计中资源的冗余度和性能要求。

3. BRAM的特点

当Block Memory配置成RAM时,有三种工作模式:

读优先

写优先

保持模式

三种模式体现了当对RAM中同一地址同时进行读操作和写操作时的不同。简单的说,当同时对RAM中的同一地址进行读写时,读优先模式将读出该地址内原有的数据,写优先模式将读出当前写入该地址的数据(注意断句,意思是最终会读出的数据是先写入的数据),保持模式则保持之前读出的数据不变。

4. Block Memory的使用

4.1 配置为RAM或ROM

在Vivado的“IP catalog”中搜索“RAM”,会出现如下结果,可以看到想要生成RAM或ROM,可以选择Distributed Memory或Block Memory,即上面提到的分布式和块状存储单元。


 XilinxA7芯片内部独立于逻辑单元的专用存储器_设计制作_模拟技术

选择“Block Memory Generator”,可以看到块存储单元可以用作RAM或ROM,具体配置就不详细展开了。


 XilinxA7芯片内部独立于逻辑单元的专用存储器_设计制作_模拟技术

值得一提的是,在“Port A Op     ti   ons”选项卡中,有个Output Registe     rs   栏,可以选择Primi  TI ve Output Register和Core Output Register。其中前者位于BRAM内部,后者为CLB中的触发器。值得注意的是,在这里这两个触发器只支持同步高有效复位。这两个触发器可大大降低时钟到输出的延迟,在高速设计中,这两个触发器都使用,使用之后读操作的latency会增大为3个时钟周期。


 XilinxA7芯片内部独立于逻辑单元的专用存储器_设计制作_模拟技术


 XilinxA7芯片内部独立于逻辑单元的专用存储器_设计制作_模拟技术

4.2. 配置为FIFO

Block Memory中的BRAM还可配置为FIFO(同步或异步),同时提供专用的FIFO Logic用于生成FIFO的控制信号和状态信号。使用专用的FIFO Logic的FIFO称为build-in FIFO。Vivado提供了IP:FIFO Generator,即可以将BRAM配置为build-in FIFO,也可以采用CLB资源生成FIFO控制逻辑,并结合BRAM构成FIFO。


 XilinxA7芯片内部独立于逻辑单元的专用存储器_设计制作_模拟技术

对于7系列FPGA内部未使用的18KB BRAM,Vivado通过Power Ga  TI ng技术不会对其进行初始化,从而可以有效降低功耗。

39
139
0
3

相关资讯

  1. 1、u盘格式化快格和慢格的区别在哪里?1876
  2. 2、Win10系统怎么设置桌面时间日期和天气显示?1457
  3. 3、QQ空间直播app怎么添加背景音乐?QQ空间直播app添加背景音乐的方法4448
  4. 4、Excel中如何使用数据透视表快速汇总?1187
  5. 5、怎么让两台电脑共享文件?1184
  6. 6、windows8从安装到优化详细全过程——超详细图文教程4013
  7. 7、设备管理器里没有网络适配器怎么回事?3239
  8. 8、Win10电脑与ipad之间怎么传文件?1821
  9. 9、Win10电脑修复失败且无法进入系统怎么办?1337
  10. 10、驱动人生如何安装声卡驱动?4099
全部评论(0)
我也有话说
0
收藏
点赞
顶部