当前位置:   article > 正文

Xilinx FIFO相关调试记录_xilinx 异步fifo复位

xilinx 异步fifo复位

Xilinx FIFO相关调试记录

本文记录在使用Xilinx FPGA时遇到的FIFO现象

记录1

同步fifo设置如下选取CommonClocBlockRAM
选取FWFT模式
因为project中使用了fifo的empty信号,但是发现empty在wr_en后3个时钟周期后才会拉低在rd_en的下一周期直接拉高。所以在之后使用empty时,应注意此现象。
上板debug图形

记录2

异步fifo位宽转换,如32bit -> 128bit。
若写入顺序为A,B,C,D。则读出数据为{A,B,C,D}。
在这里插入图片描述

在这里插入图片描述

记录3

异步fifo rst
异步fifo在使用 rst synchronization时,可能会出现full一直拉高状况。
建议wr rd rst 分开写较为保险。
上板debug图形

记录4

异步fifo rst
在使用fifo时,不可利用其rst进行清空,
频繁会出现异常现象。使得empty信号拉低。

因此,清空应拉高rd_en,直至读空。

记录5

异步fifo rst
记录4出现异常现象原因已找到,因为进行复位操作的时候,读写时钟必须是有效的。不管什么原因,在复位操作的时刻,读写时钟如果丢失,必须在读写时钟有效的时刻再次进行复位操作。违反此操作将导致不可预期的行为发生。甚至,信号busy会被卡住,并可能需要重新配置FPGA。

在手册pg057-fifo-generator.pdf,Page127中有介绍:

原文链接:https://blog.csdn.net/sinat_31206523/article/details/109345496
https://blog.csdn.net/sinat_31206523/article/details/109345496?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-1.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-1.control

记录6

异步fifo rst
异步FIFO 使用rst同步功能后,输入rst必须维持3个时钟周期以上,否则FIFO会有一段时间异常,此时empty会拉低,valid拉高,将之前缓存的数据输出来。
异步FIFO 异步rst时序
手册原文如下,提到当wr_rst/rd_rst有一个拉高时,另一个也必须在一段时间内拉高。
所以不能仅拉高一侧,这样也会导致FIFO异常,输出之前缓存数据。
If one reset (wr_rst/rd_rst) is asserted, the other reset must also be applied. The time at which the resets are asserted/de-asserted may differ, and during this period the FIFO outputs become invalid. To avoid unexpected behavior, do not perform write or read operations from the assertion of the first reset to the de-assertion of the last reset.
异步FIFO 同步rst时序

记录7

xpm_fifo_async位宽转换
如128bit -> 32bit。
若写入顺序为{A,B,C,D},则读出数据为D,C,B,A。
与直接调用IP不同
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/206671
推荐阅读
相关标签
  

闽ICP备14008679号