XilinxFIFOip核使用时碰到的数据丢失和有数据却无法读出的问题

一、系统复位和fifo复位同时产生时在下一个时钟就写入数据,前两个数据丢失。

       从图中可以看出来fifo写使能信号是复位键按下后5ns秒din=1时产生的,但是读完32个数据后,fifo只统计到30个数据,读数据端口也可以看出来读出的第一个数据是3。证明复位键按下后的前45ns的数据并没有写进去。

        如果fifo复位键一直赋予无效状态,则可以不丢失写入。即按下复位键需要等45ns才能写数据(这个发现貌似没什么用)

二、First Word Fall Through模式下数据统计不精确。

       虽然下图把所有数据都读出来了,但是如果设定wr_data_count == 32时触发rd_en时,即使fifo内数据,32个也无法触发读数据。

        下面设定wr_data_count == 32时触发rd_en,且不勾选More Accurate Data Counts

         就出现了下面的情况,虽然写入了32个数据,却只统计到30

        当勾选上More Accurate Data Counts时,就可以统计到更精准的数据量,从而正确触发。

        总结:FIFO工作在First Word Fall Throug模式下时,wr_data_count统计的数会比真实数据少2(据说也有可能少3、4),所以最好勾选上More Accurate Data Counts。

 

 

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值