微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 求问!双口RAM读数据的时候为什么有延时

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

时间:10-02 整理:3721RD 点击:
从双口ram里读数据的时候一直有两个时钟的延时?


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


图1


图2
图1红色方框内的是输入地址寄存器,所以从你外部输入读地址到RAM内部锁存该地址需要一个时钟周期。
重点的是蓝色部分,Read output ports选项,图2是勾选该选项后的参数页,可以看到输出端多了一级寄存器,对数据输出打了一拍,这样的好处是输出是同步的而不是异步的。
所以如果不勾选Read output ports选项时,读数据比读地址滞后一个时钟,但是读数据是异步的;
勾选该选项时,异步输出经过输出寄存器后,又多了一个时钟周期,具体的可以看官方给时序图,如下


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


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top