在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: sharpwinner

[讨论] 跨时钟域FIFO的老话题:快时钟域的地址信息如何同步到慢时钟域?

[复制链接]
发表于 2016-5-4 17:39:17 | 显示全部楼层
学习了,好厉害
发表于 2016-8-8 16:19:50 | 显示全部楼层
本帖最后由 steven0820 于 2016-8-8 16:21 编辑

我的理解,如果读写时钟域频率相差过大,几万倍,那么在慢时钟域的clk上升沿的建立保持时间内gray code可能跳变很多次比如从0010-1010,此时采到gray code会有很多中间态,此时格雷码也不能保证降低亚稳态概率,失去其意义,因此使用格雷码的条件是fifo读写频率不能相差过大,避免慢时钟域时钟上升沿附近采样的格雷码变化多次。
发表于 2016-8-8 17:57:04 | 显示全部楼层
11楼解释的很清楚,对于FIFO本身是不具备严格的地址概念的,先入先出,空不能读,满不能写,这种异步fifo的空和满不是严格的空,满,举例子说,同步fifo中一个数没有为空,数满了为满,异步fifo可能fifo中还有3 4个数,我就产生了空信号,满信号类似,所以传数据不会有问题
发表于 2016-8-9 09:06:29 | 显示全部楼层
学习一下
发表于 2016-8-12 19:10:09 | 显示全部楼层
学习了
发表于 2016-8-17 18:37:48 | 显示全部楼层
学习了  谢谢
发表于 2016-8-18 02:45:22 | 显示全部楼层
【1】async-fifo的结构已经稳定至少30年了,格雷码肯定是timing意义上的最优解之一。注意是timing意义上,functional意义上的没有问题不能仅仅通过FIFO自身的结构。因为async-FIFO如果能hit全满、全空两种状态,理论上的风险出现误操作是无可避免的。误操作的点就在快慢时钟互相同步的过程
【2】为了防止async-fifo出现问题,并不是避免理论上可能出现的风险,而是“即使出现了理论风险,FIFO仍然有足够且合理的空间裕度把错误mask掉”。方法之一就是,在慢-->快的path上,增加FIFO的深度,比如所谓的op_phase或者更为常见的almost_full/empty. 例如,即使你写的快且写多了,fifo也有空间,并且这段多余的写时间段可以让快时钟域同步到满信号即可。
        
总之,FIFO没那么玄乎,要出问题业界早出了,不可能在面试里头
发表于 2017-1-15 20:50:54 | 显示全部楼层
这个不需要关注吧,同意5楼观点!
发表于 2017-3-18 16:01:57 | 显示全部楼层
谢谢各位大牛的精彩讨论,学习了。
发表于 2017-9-3 10:19:30 | 显示全部楼层
多谢25l解答
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-25 08:07 , Processed in 0.019909 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表