请问用IP核做的FIFO复位信号为何不管用?
时间:10-02
整理:3721RD
点击:
开发环境是Xilinx ISE 7.1i
芯片是SPARTAN3 XC3S400
用IP核FIFO generator做个一个异步FIFO,在工作过程中需清空一次,因此加了一个复位信号(复位信号应该是高电平有效,复位信号保持时间芯片手册上没有说,从几十ns到几十毫秒都试过)
可是复位后,不知道是没有清空还是什么原因,再次写入时发现FIFO容量变小了
设计容量是1024比特,可是写入200或300个us之后FIFO标志 Prog_full就为“1”,导致无法继续写入,不知道是什么原因?
复位之前工作正常,每次复位之后就出现FIFO容量变小的情况,写入时钟速率60K,大概只写了200个比特左右,而且每次都不一样,但都达不到我设的门限值。
具体设置见附图:




管用的,现在确实不对啊
今天把FIFO深度又加大试了试(由1024bit增加到2048bit)
结果更糟了
复位之后深度只有一个bit
每次复位之后写时钟只走一个时钟周期,PROG_full就变为“1”导致无法继续写入
FIFO复位是上升沿有效

这样的时序没问题吧
没有错的,是上升沿有效设计一个测试程序,统计FIFO写入数据的个数,ISE ANALYSIS抓取PRO_FULL,看能统计到多少?令读时钟域 如何控制的?
异步FIFO IP核怎么写满读,读空写控制?请大神指教
复位的时候,你给FIFO时钟了吗?我也遇到过这种情况,原因在于 给FIFO复位的时候读写时钟也复位了。解决办法:复位的时候,不要把时钟复位,就可以成功复位FIFO了。
清空用clr或者aclr试试。
