-
Memory Type
块存储器器IP core可以配置生成5种存储器:Single-port RAM(单端口RAM), Simple Dual-port RAM(简单双端口RAM), True Dual-port RAM(真双端口RAM), Single-port ROM(单端口ROM), and Dual-port ROM(双端口ROM);
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL90TQkhGaykVMGdlWzpkMMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL0cTN0IDNwEjMxATMwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
-
Selectable Memory Algorithm
块存储器通过存储器级联原语实现,级联方式有以下三种算法:
(1)最小面积算法
通过使用数量最少的块RAM原语实现存储器;
(2)低功耗算法
在对存储器进行读写操作时使能数量最少的块RAM原语;
(3)固定原语算法
只使用一种类型的块RAM原语生成存储器;
固定原语算法提供的块RAM原语选择有:16K*1、8K*2、4K*4....所谓的原语就是指不同的块RAM类型;
-
Selectable Width and Depth
IP核可以生成存储器数据位宽为1~4608 的结构,深度至少为2;生成存储器的最大深度仅仅受限于FPGA所具有的原语RAM数量;对于超出存储器地址范围的写操作并不会破坏已经存储的数据,但是如果读操作的地址超出范围则会返回无用值;
-
Operating Mode
端口操作模式可以分为以下三种:
(1)先写模式
输入数据写入时会出现在输出端口上,也就是说最新写入的数据总是首先出现在输出端口;这种模式使得可以在端口写操作期间使用该端口的数据输出总线;
需要注意的是,该模式受读写位宽比和字节写属性的影响;
在使用该模式时,当前的读操作总是不断显示最新写入的数据;但是该模式在字节写属性下读出的值不一定是正确的!!
(2)先读模式
(3)无变化模式
-
Data Width Aspect Ratios
IP核允许读写的位宽比不同,特别的对于双端口存储器A和B的位宽比相互独立;读写位宽比可以在1:32~32:1之间;
以32*2048真双端口RAM为例,32*2048为端口A的宽度和深度,那么对于宽度为8的端口B来说,深度就是8192,端口A的地址线为11位,端口B的地址线为13位;
以下两个属性对读写位宽比进行限制:
(1)字节写:当使用字节写属性时,数据位宽比不能大于4:1;
(2) 固定原语算法:对于用固定原语算法设计的存储器,当使用的原语位宽为N时,数据位宽比限制在32:N~1:N之间;
-
Byte-Writes
IP核支持8bit位宽(无校验,存储器位宽限制为8的倍数)和9bit位宽(带校验,存储器位宽限制为9的倍数)的存储器字节写使能,当使用字节写使能时,WEA或WEB总线的位宽为N,这里N为dinA或dinB的字节数;写使能最高位上的bit对应于dinA上的最高字节,在写操作期间,只能写使能总线上的对应位为高电平时才能将字节写入存储器;值得注意的是,字节写使能不能与no-change mode同时使用;而且字节使能会限制读写位宽比!!
-
Optional Output Registers
为了提高存储器性能,IP核提供了两个可选输出寄存级,分别位于块原语输出之后以及核输出之后;每增加一级延时,读操作的结果滞后一个周期;
-
Optional Pipeline Stages
-
Memory Output Flow Control
-
Reset Priority