IC设计错误案例006:亚稳态导致的afifo非空即读错误

  1. 亚稳态导致的异步fifo非空即读错误

如下图所示:在写时钟侧,数据data_in同时将不同bit位的数据段写入到两个异步fifo,而在读侧,采用其中一个异步fifo中的非空信号empty取反产生读使能ren,读两个异步fifo,此类设计,会偶发的出现异步fifo空读中断的情况,即其中一个异步fifo没数据时,读使能ren有效。

为什么会产生空读现象呢?

虽然在写侧数据时同时写入的,但是因为格雷码跨时钟的时候会出现亚稳态导致waddr跨时钟会延迟一个被读时钟周期采样到,因此可能出现如下情况:在读侧T0周期时,afifo_u0的waddr已完成跨时钟到达读时钟域,empty0=0,而afifo_u1的waddr跨时钟已没有完成,empty1=1。此时采用assign ren=!empty0,会在empty1=1的情况下读afifo_u1,因为产生空读中断。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值