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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2659|回复: 6

[求助] 请问一个关于生成格雷码的问题

[复制链接]
发表于 2014-3-14 08:21:32 | 显示全部楼层 |阅读模式

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

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

x
昨天跑去一个公司面试别人问了我格雷码和异步FIFO的问题,我以为答得很好,顺便多说了一句:异步FIFO的深度最好是2的N次方,不然不好编译格雷码。人家就问了我一个比较难的的问题:怎么设计不是2的N次方,而是一个深度12的异步FIFO的格雷码,即从0-11循环的格雷码,我想了半天觉得只要一次只要1bit变就行了,于是写出如下答案:0000(0)->0001(1)->0011(2)->0111(3)->0110(4)->1110(5)->1111(6)->1110(7)-1100(8)->1101(9)->1001(10)->1000(11)->0000(12,0)写完以后对方摇摇头说这个可能会有些问题,我知道这个打错了,请问对的0-11循环格雷码应该是怎样的?我这样写有何错误,我一次只变了一个bit呀?
发表于 2014-3-24 14:08:30 | 显示全部楼层
你这个不是典型gray code的实现 可以利用反射特性 不一定从0000开始编码 比如把2~13转为gray code即可
发表于 2015-2-9 15:23:16 | 显示全部楼层
不是2的N次方也还是可以设计的
把0~15的中0,1和14,15去掉就可以了
发表于 2015-2-9 16:59:53 | 显示全部楼层
哪个垃圾公司面试的?这样设计没有问题的。
发表于 2015-4-2 12:37:26 | 显示全部楼层
那正确的该怎么设计?
发表于 2015-4-4 09:24:14 | 显示全部楼层
问题在这里:
1110(5)
1110(7)
同一个格雷码对应了两个地址,所以async完之后无法译码回来。
发表于 2015-9-23 11:18:02 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-11-18 08:24 , Processed in 0.030604 second(s), 8 queries , Gzip On, Redis On.

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