求问!!双口RAM读数据的时候为什么有延时

2019-07-15 21:43发布

从双口ram里读数据的时候一直有两个时钟的延时?? 第二次读写(同时读写).PNG
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
1条回答
undermyownmoon
1楼-- · 2019-07-15 23:23
本帖最后由 undermyownmoon 于 2017-5-13 11:09 编辑

以我比较熟悉的Altera(现在是Intel了= =)的双口RAM IP核为例,在参数设置的过程中,有一页如下图 01.png
图1
02.png
图2

图1红 {MOD}方框内的是输入地址寄存器,所以从你外部输入读地址到RAM内部锁存该地址需要一个时钟周期。
重点的是蓝 {MOD}部分,Read output ports选项,图2是勾选该选项后的参数页,可以看到输出端多了一级寄存器,对数据输出打了一拍,这样的好处是输出是同步的而不是异步的。

所以如果不勾选
Read output ports选项时,读数据比读地址滞后一个时钟,但是读数据是异步的;
勾选该选项时,异步输出经过输出寄存器后,又多了一个时钟周期,具体的可以看官方给时序图,如下
04.png

读和写公用一个inclock时钟,addressstal是时钟使能,低有效,latched address就是地址寄存器。
q(asynch)为输出寄存器之前的异步信号,q(synch)为输出寄存器之后的同步输出信号。可以看到q(synch)比读地址慢了两个时钟周期。

Ps:第一次回答,有错误欢迎指正




一周热门 更多>