IP核配置
1. Basic界面
- Interface Type:分为Native和AXI两种,一般选择Native
- Memory Type
- Single-port RAM : 单口 RAM
- Simple Dual-port RAM:伪双口 RAM
- True Dual-port RAM:真双口 RAM
- Single-port ROM :单口 ROM
- Dual-port ROM:双口 ROM
- ECC Options:Error Correction Capability,纠错能力选项,一般保持默认
- Write Enable:字节写使能选项,勾中后可以单独将数据的某个字节写入RAM中(类似掩码),一般不使能
- Algorithm Options:算法选项。可选择Minimum Area(最小面积)、Low Power(低功耗)和Fixed Primitives(固定的原语),一般选择默认的Minimum Area
2. Port A/B Options界面
- Memory Size:读写数据的宽度和对应深度,读写侧计算得到的可存储数据量应该一致
- Operating Mode:读写模式的选择,包括Write First Mode,Read First Mode和No Change Mode三种模式
- Enable Port Type:是否引出使能引号端口,不引出时可以理解为只由wea控制读写
- Optional Output Registers:输出寄存器选项,可能会影响输出的延时
- Output Reset Options:端口复位配置(一般不勾选)
- Read Address Change:暂时没有用到
- Other Options界面
- Memory Initialization:初始化ROM/RAM中的数据内容,目前使用过的只有coe文件
- Summary
- 注意各端口的Read Latency大小,保证后续逻辑接收到想要的数据
资源利用
Xilinx® 7 系列 FPGA 中的 Block RAM 可存储高达 36 Kb 的数据,并且可配置为两个独立的 18 Kb RAM 或一个 36 Kb RAM。每个 36 Kb Block RAM 可配置为 64K x 1(与相邻 36 Kb Block RAM 级联时)、32K x 1、16K x 2、8K x 4、4K x 9、2K x 18、1K x 36 或简单双端口模式下为 512 x 72。每个 18 Kb Block RAM 可在简单双端口模式下配置为 16K x 1、8K x2、4K x 4、2K x 9、1K x 18 或 512 x 36。
有计划地利用BRAM资源,防止造成资源的浪费。例如,要求使用RAM对64通道的ADC采样数据进行分通道的乒乓存储(单侧点数为8),一种方法是各个通道都分配一个BRAM,深度为16位宽为16,则需要18kb的BRAM共64个;但如果我们使用深度为16 * 64位宽为16的BRAM并通过地址对RAM分区,就只需要一个18kb的BRAM,大大节省了存储空间。