fifo IP 核使用常见问题汇总

本文总结了FPGA中FIFO使用时常见的问题及其解决方案,包括复位操作、模式选择、读写控制以及数据宽度不匹配的情况。在复位时需确保正确时序,避免立即读写;选择合适的读写模式以简化级联;利用if-else优先级控制读取条件;理解数据宽度转换的规则。此外,还提到VIVADO 2017.4版本ILA观测端口数据可能导致的fifo异常,解决办法是数据时钟延迟一拍后再观测。
摘要由CSDN通过智能技术生成

fifo  做为FPGA常用的一个模块,每次用的时候都是丢三落四,不是忘这里就是忘哪里。现在记录下来。

1--- 关于FIFO 的复位,是高复位。懒得用复位信号的时候,就是把复位信号一直拉低。后来仿真发现,这样fifo是不工作的,因          为仿真时候观察写入和读出数据计数都是0。在虚伪的时候还需要注意,复位信号如果和fifo的时钟不同步,一定要在新时钟下面打两拍。
       还有一点需要注意,在实测的时候发现这样一个问题。列子中,写入数据32bit,读出数据256bit,复位拉低4个时钟以后写使 能有效,数据有效,写入数据1 ,2 ,3 ,4 ,5 ,6……一直自加。按理说,应该fifo直接读出数据也是1 ,2 ,3 ,4 ,5 ,6……但实际 读出数据是 9 ,10,11,12,13…… 也就是前面8个数据没有写入fifo。后来找原因发现是fifo复位以后应该过一段时间再进行读写就不会出现这种问题。
    以前写代码的时候,复位以后,fifo full就拉高了,很不方便。 其实,这里是配置的,让fifo复位的时候 full信号为低。在复位下面就可以选。
2--- fifo模式选择,用第一个,读使能和数据之间有延迟。用第二个只要有数,fifo就立马把第一个数据放到读数据总线上。这样给后级级联其他模块带来很大方便。不用再延迟读使能以后再获取数据

3---  有时候需要fifo中可读数据到一定值以后触发读,但是这有一个问题,fifo只要读出一个数据以后,可读数据就会变少,这怎么办? 对于fifo的读,1 fifo中可读数据达到一定

  • 7
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值