异步FIFO格雷码及同步相关问题?

本文探讨了在异步FIFO中使用格雷码作为地址指针的优势,解释了格雷码如何减少亚稳态和逻辑冒险。当写时钟比读时钟快,写指针在011之后变为110,同步到读时钟域的写指针会直接变为110,尽管变化位数多,但并不会对FIFO的正常工作造成影响。
摘要由CSDN通过智能技术生成

零、前言

关于异步FIFO如何设计请参考之前的一篇文章:手写异步FIFO。

关于异步FIFO的空满现象可以参考:你真的理解异步FIFO读写中的空满现象吗?

一、格雷码的作用

格雷码的每两个相邻码字只有1bit的变化,将多bit的地址转换成对应的格雷码然后进行跨时钟域的传递,就可以直接使用两级flop进行同步。并且由于只有一个bit变化,那么即使采样错误也只有一种错误的可能,也即1变成了0或者0变成了1,不会出现其他各种不稳定的状态。降低了亚稳态发生的概率,以及发生逻辑冒险的概率及其带来的影响

而且应用到异步FIFO的地址指针中,采样到的只有一个bit不同的错误值,其实也是正确的。例如在使用格雷码时,假设写指针从001->011,那么在读时钟域采样到的写指针的值只可能是001->001->011, 或者001->011->011,而不会出现除了这两个值以外的值。如果采样到011࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

耐心的小黑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值