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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 4247|回复: 10

[讨论] 异步FIFO采用格雷码

[复制链接]
发表于 2015-6-25 18:54:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
异步fifo地址编码采用的是格雷码。原因好像是二进制计数器会产生毛刺。在采用格雷码的方法的时候,是将二进制转换为格雷码,那么二进制怎么来的?还是二进制计数器来的,它到底是怎样降低毛刺的。是我理解错了吗?
发表于 2015-6-26 20:28:25 | 显示全部楼层
小伙网上到处有解释,你搜下,主动学习~
发表于 2015-6-27 08:22:56 | 显示全部楼层
是格雷码每次只变化1比特,所以在异步过渡时更不容易出错。
 楼主| 发表于 2015-6-27 10:31:48 | 显示全部楼层
回复 3# orlye

话是这样说,格雷码是二进制转换来的,二进制会有毛刺,那转换来的格雷码也不一定正确啊!我这样理解对吗?
 楼主| 发表于 2015-6-27 10:34:29 | 显示全部楼层
回复 2# qmdong

我一直在看,但是没有一个权威的说法,有的设计二进制转格雷码用的时序逻辑,有的用的组合逻辑,都可以吗?你能推荐一个好点的文档吗?
发表于 2015-6-27 16:56:36 | 显示全部楼层
地址原二进展转换成gray码,再做同步,配合正确的SDC,可以保证同步后的地址不会出现异常值;比如原地址跳变为0、1、2、3、4、5,那么先gray再同步后,看到的地址可能为0、2、4,但是不会出现非0~5的值;这样保证了另一侧的空满判断不会出错,当然空满判断是不及时的
 楼主| 发表于 2015-6-27 17:38:14 | 显示全部楼层
回复 6# asic_xuan

原来如此,谢谢了
发表于 2015-6-28 09:20:50 | 显示全部楼层
格雷码的特点是,相邻数字只改变一位。而异步fifo中,经常会将读指针同步到写,写指针同步到读,当信号跳变时容易出现亚稳态。十进制相邻数字的变化很大,如从7(0111)变到8(1000)四位都需要变化,这就使得出错的概率大大增加
发表于 2015-9-4 12:33:36 | 显示全部楼层
回复 6# asic_xuan


       你好,我有点疑问,采用二进制码由于各bit延时不同的确会产生毛刺,可能采到错误的值,但是这个值应该不会产生读写数据错误。原因如下:    假设将clk2(读)的计数器同步到clk1(写)时钟域,且都假设为上升沿采样,那么产生毛刺时应该是clk2和clk1的上升沿很接近使clk2的数据传递到clk1不满足建立保持时间;但是在clk1下一次采样的时候,clk2和clk1的上升沿很可能就错开了(因为是异步时钟,不太可能接连两个上升沿都采到错误的值),这个时候采样得到的值为正确的值。(请继续往下看)
    这里我们考虑FIFO满的产生。如果初始状态处于满状态,经过第一次错误采样后,clk1错误的判断为非满状态,于是写入了一个数据,但是此时已经读出一个数据(就在错误采样上升沿时读出的),FIFO中产生了一个空的位置,所以写数据不会覆盖有效数据,即使第一次采样错误,如果下一次采样正确的情况下,写数据就不会再向里写数据了,即数据安全。

    不知道分析有问题没?望指正!
发表于 2015-10-17 13:02:05 | 显示全部楼层
回复 9# YoungZ1


    在读写模块都分别有一个格雷码转换二进制和二进制转换格雷码的模块,对于fifo memory,读写指针可以用二进制指针。但是在同步时,即读指针同步到写时钟域和写指针同步到读时钟域,用的是格雷码,可以加两个flop,来使读写互相同步。具体看下图block diagram。
Block_Diagram.png

    你举得这个fifo满时的例子,实际是当读模块监测到fifo满时,就不会再写入任何数据了,写使能会置0。虽然此时会有读操作,从fifo memory读取走了数据,使得fifo实际上不“满”了,但此时写模块仍不会写入数据,原因你也肯定明白––就是因为读指针在同步到写时钟域时经过的那两个同步fifo会产生延迟,使得写短“反应慢了”。这样其实是损失了一定的fifo depth,损失了一部分性能,但是保证了数据的稳定。

推荐你拜读下Cliff Clummings的那两篇异步fifo的paper,简直醍醐灌顶。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-5-27 14:43 , Processed in 0.304020 second(s), 11 queries , Gzip On, Redis On.

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