异步FIFO关键点—跨时钟域
如何设计地址编码
- 扩展bit位,保证分别空和满状态
- 格雷码验证优势----地址位之间只相差一位,保证亚稳态现象的最小出现可能性
端口IO的一般定义
异步FIFO的内部设计
- 异步FIFO器件其实可以通过划分为5个部分进行,正如上图5个框图
设计中的注意点
- waddr和raddr为二进制编码,而wptr和rptr则为格雷码。二者之间存在线性转换的关系
- wptr到跨时钟域的第一个寄存器的延迟要小于wclk
- 我们在做单bit跨时钟的时候,要求,din需要保证足够长的实际,为什么在这里,不这样要求呢?
- 这就要注意,异步FIFO这个信号并不是必须每个都要传输,只要表示当前的ptr指向在哪里就可以,丢掉一些ptr也无所谓,因此两边的clk速率并无严格要求,我们的目标就是只要读到比较新的状态就可以
本文只是简单介绍,推荐一篇大佬的博文,写的很不错