关于FIFO工作异常的问题
时间:10-02
整理:3721RD
点击:
大家好,本人最近做项目,在板级调试时用到的异步FIFO遇到了这样一个异常情况:75m写入时钟(外部输入时钟),33m读取时钟(dcm产生),调试过程中会经常出现FIFO_empty信号和FIFO_full信号同时为高的现象。不知各位是否有遇到过类似空满标志异常的情况。(很容易出现在上下点的时候)。还希望各位大神指教
用的是Xilinx的Spartan3a系列,尝试约束时钟,但是还是会出现同样情况。调试了一个礼拜也没有找到原因。怀疑写入时钟不稳定或者FPGA供电不稳定,但是FIFO出错的时候,其他一些用到75m时钟的模块功能还是正常的,调试到现在感觉无从下手了
内部逻辑没有做上电复位
把dcm的locked信号当复位或者locked信号有效后记一定数放开FIFO复位,这两个都试过,现象依旧
那就把写指针 同步到写时钟域的读指针, 读指针, 同步到读时钟域的写指针都加到chipscope上看看吧。
触发条件就选择 rd_empty 和 wr_full 同时有效的异常情况
很诡异,解决了请分享一下
空满同时为高应该是指针传递或比较出了问题
可能外部電性處理不好
用RAM代替FIFO,自己写点控制逻辑吧。
现在网上成熟的基于RAM的FIFO一大堆,出了问题也好定位。