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,因为产生空读中断。

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

 

相关文章:

  • 2021-06-30
  • 2022-12-23
  • 2021-09-02
  • 2021-06-26
  • 2022-03-04
  • 2022-12-23
  • 2021-05-05
猜你喜欢
  • 2021-07-29
  • 2022-12-23
  • 2021-10-20
  • 2022-12-23
  • 2021-09-10
  • 2021-12-18
  • 2022-12-23
相关资源
相似解决方案