ISE使用中RAM IP核配置

简单总结ISE中RAM的ip核配置过程以及相关的端口。

分类

ram分为分布式ram(distributed ram)以及块ram(block ram)
前者是自己用寄存器搭建的,这里理解可以转至Vivado使用技巧(27):RAM编写技巧
简单理解块ram就是自己用寄存器写出来的储存单元,仅仅用于储存比较少量的数据。优点是dram不需要时钟线来控制,可以直接用组合逻辑进行控制。bram是fpga中定制的ram资源,控制起来需要用时钟线,以及其他UI界面设定的io接口进行配置。

定制过程及说明

  1. 首先进入页面,打开进行选择要生成的ip核
    ISE使用中RAM IP核配置
  2. 选择你要定制的类型
    ISE使用中RAM IP核配置
    可以选择的类型有如下五个,其中两种是ROM,三种是RAM。这里只总结RAM,ROM前面有进行简单的总结,后面会结合所学的,对这些全部进行注意点的总结。接下来是几种RAM的简介。
    ISE使用中RAM IP核配置

single - port RAM

简单单口RAM
ISE使用中RAM IP核配置

端口说明

ADDRA 为地址线
DINA 为数据输入端
ENA 为可选端口,在其为高电平时,才使能。
WEA 为写使能“当其为高电平是,DINA数据才会被写入对应的地址,这里[0:0],仿真的时候会发现,这里的数据不同于时钟线,而是数据。”
DOUTA 为A输出端
CLKA 为时钟线

Simple Dual Port Ram

ISE使用中RAM IP核配置
这里只是多出来了个B端口,其中B用来读数据。
这里就会遇到一个问题,当同时写入数据和读出数据的时候该怎么进行选择呢,这里会有用户自行设定,会在接下来的页面中进行介绍。(这里可以分为三种模式)

True Dual-port RAM

ISE使用中RAM IP核配置
图中上边的端口A和下边的端口B都支持读写操作,WEA、WEB信号为高时进行写操作,低为读操作。同时它支持两个端口读写操作的任何组合:两个同时读操作、两个端口同时写操作或者在两个不同的时钟下一个端口执行写操作,另一个端口执行读操作。

同时这里有一个选择框,问是否使用同一个时钟(CLKA,CLKB)
ISE使用中RAM IP核配置

  1. 数据端口配置
    这里可以配置写入的宽度和深度。ISE使用中RAM IP核配置
    同时可以尽行不同宽度的读取。就是说写入的宽度不同于读取的宽度。系统会对深度进行自动设定。
    ISE使用中RAM IP核配置

当选择真正双口ram的实时候,会出现这里的三个设计端口。
ISE使用中RAM IP核配置
ISE使用中RAM IP核配置
ISE使用中RAM IP核配置
ISE使用中RAM IP核配置

  1. 其他配置
    后面还有几页,这里笔者能力有限,以后进行补充。

以上就完成了简单的配置。当然,也可以对其进行初始化。类似rom操作。
参考博文:
Vivado使用技巧(27):RAM编写技巧
Vivado使用技巧(27):RAM编写技巧
感谢~