• 正文
  • 相关推荐
申请入驻 产业图谱

FIFO中异步复位的相关说明

07/06 08:18
215
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

欢迎各位朋友关注“郝旭帅电子设计团队”公众号,本公众号会定时更新相关技术类资料、软件等等,感兴趣的朋友可以浏览一下本公众号的其他“模块”,希望各位朋友都能在本公众号获得一些自己想要的“东西”。

本篇主要是FIFO中异步复位的相关说明

最近在做项目设计时,发现fifo会出现“崩盘”,导致项目失败。而“崩盘”的原因是RST信号所导致的(因为其他的也不会导致“崩盘”,正常提供时钟以及其他信号)。

异步复位(rst)输入在有效时,会异步复位所有计数器、输出寄存器存储器。复位生效时,该信号会在内核内部与各个时钟域同步,以便将FIFO的内部逻辑设置为已知状态。此同步逻辑可确保内核中复位逻辑的时序正确,从而避免毛刺和亚稳态行为。

时钟在施加复位时必须可用。如果因任何原因导致复位时时钟丢失,则必须在时钟恢复可用后再次施加复位。违反此要求可能导致意外行为,有时忙信号可能会卡住,甚至需要重配置FPGA

如果异步复位仅持续最慢时钟的一个周期宽度,且复位有效信号恰好发生在最慢时钟的上升沿附近,则复位检测可能无法正常进行,从而导致意外行为。为避免此类情况,强烈建议将异步复位至少保持 3 个最慢时钟周期(最好多给几个周期,笔者建议8、16个慢时钟的周期)。

如果fifo的IP核设置时,对fifo勾选了同步电路和安全电路(强烈建议选择异步复位,并且勾选同步电路和安全电路上:有时候的设计是需要复位fifo的,如果没有勾选异步复位,那么复位的逻辑还需要同步到两个时钟上,比较麻烦)。

从下面的官方建议中:复位8个周期(不太合理哈,应该是慢时钟的八个周期,下面看着像是快时钟的八个周期);并且需要68个周期后(笔者建议96、128个周期后),才能够写入和读出数据。

因为选择了fifo的异步复位,fifo就会输出wr rst busy和rd rst busy,建议不要等N个周期后,再去写入或者读出,而是等待 wr rst busy拉低就可以写入,等待rd rst busy拉低就可以读出。

总结:fifo选择异步复位,勾选同步电路和安全电路;复位时,拉高16个以上的慢时钟的周期。复位结束后,控制写的逻辑要在wr rst busy拉低后(建议后面再延时几个周期),开始写入;控制读的逻辑要在rd rst busy拉低后(建议后面再延时几个周期),开始读出。

本篇内容中有部分资源来源于网络,如有侵权,请联系作者。

相关推荐