马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
本帖最后由 vegetablebirds 于 2018-6-6 16:20 编辑
最近在做DDR2的高速缓存,数据进出DDR2如下图所示
控制DDR2的状态机如下所示:
我们对FIFO_OUT设置一个空阈值,当FIFO_OUT中数据少于这个阈值时就从DDR2中读出数据写入FIFO_OUT中,否则就将FIFO_IN中缓存的数据写入DDR2中。这样分析,理论上FIFO_OUT是不可能被读空,但是实际仿真时,却发现FIFO_OUT会被读空。仿真波形如下所示:
仿真中FIFO_OUT的空标志信号empty_2会被拉高,empty_2出现拉高的情况是由于给了DDR2读地址、读指令, DDR2并没有在规定的延迟内给出从DDR2中读出的数据,而且在仿真中发现app_af_afull有时会被拉高,app_wdf_afull也有可能被拉高。 [size=13.3333px]求问:(1)为什么给了DDR2读地址、读指令,DDR2没有在规定的延迟内给出从DDR2中读出的数据? (2)为什么app_af_afull会被拉高,app_wdf_afull也会被拉高? 该如何解决此问题? |