软件平台

Vivado 2016.4

属性设置说明

1在 ip catalog -> block memory generator .

这里仅介绍真双口RAM, 真双口RAM支持A/B两个口可读可写。

xilinx 真双口RAM的primitives /core output 区别

属性1 operating mode 

包含 writing first(WF), reading first(RF), no chang(NC)三种模式

参考手册如下:

xilinx 真双口RAM的primitives /core output 区别

xilinx 真双口RAM的primitives /core output 区别

 

当选择简单双口RAM时,即A口只能写,B口只能读,会发现A口默认设置为NC模式,则A口无法读数据。

 

属性2  ENx/WEx 型号

xilinx 真双口RAM的primitives /core output 区别

en是时钟使能,任何操作(读,写,复位)时,都要同时将en置位。即 ena=wea = 1时为写操作, ena=1(wea=0)时为读操作。

属性3 optional output register 

primitives /core output register 具体功能如下图:

相当于两级寄存器。

xilinx 真双口RAM的primitives /core output 区别

默认选择A/B口都是primitives 

xilinx 真双口RAM的primitives /core output 区别

如图所示,

step1: A口向地址0写入 0X0001, 

step2: B口读取地址0, 读使能后两拍数据被读出(这里有个奇怪现象,enb必须保持两拍以上才能读出数据,否则读不出数据,仿真结果如下)

xilinx 真双口RAM的primitives /core output 区别

查看RAM的内部结构图,应该是REGCE导致的。

xilinx 真双口RAM的primitives /core output 区别

勾选regce,然后设置为1, 后才能读出数据。

 

取消primitives 和core(都不勾选)

仿真如下:

step1:A口向地址0写入0x0001,

step2: B口读地址0, 下一拍出数据(注意这里enb只有一拍)。

xilinx 真双口RAM的primitives /core output 区别

 

选择core output

step1: A口向地址0写入 0X0001, 

step2: B口读取地址0, 读使能后两拍数据被读出(这里有个奇怪现象,enb必须保持两拍以上才能读出数据,否则读不出数据。未开启regce)

xilinx 真双口RAM的primitives /core output 区别

 

操作冲突

xilinx 真双口RAM的primitives /core output 区别

xilinx 真双口RAM的primitives /core output 区别

 

总结:

xilinx RAM的使用还是有些需要注意的地方,建议生成ip的时候,取消primitives output register配置, 这样数据在读使能的下一拍放出,寄存操作,放在自己逻辑里面去控制。

 

 

相关文章:

  • 2022-01-18
  • 2021-11-28
  • 2021-12-08
  • 2022-12-23
  • 2021-11-28
  • 2022-12-23
猜你喜欢
  • 2021-11-28
  • 2021-04-24
  • 2021-11-28
  • 2021-05-23
  • 2021-11-02
  • 2021-09-20
  • 2021-11-28
相关资源
相似解决方案