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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 10443|回复: 11

[讨论] 异步fifo设计中使用格雷码方案时时序约束问题

[复制链接]
发表于 2010-11-15 10:39:35 | 显示全部楼层 |阅读模式

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

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

x
在异步fifo设计中常常使用gray编码方案,但相关文档中未提及timing约束问题,个人觉得在读写两个时钟域之间传递gray码需要设置bus delay skew类似约束,否则系统会异常,这在系统工作在较高时钟时会比较明显。请各位同学拍砖!
 楼主| 发表于 2010-11-15 13:04:44 | 显示全部楼层
HELP,这里的人呢?
发表于 2010-11-15 14:50:35 | 显示全部楼层
我觉得不需要特别的约束了吧,因为gray编码方案目的是为了async处理的问题。
 楼主| 发表于 2010-11-15 15:25:27 | 显示全部楼层
回复 3# zhouzhiping849


    在频率较低时,允许的gray bus的delay skew会比较大,而频率较高时,允许的gray bus的delay skew则变小。
for example, 写时钟频率500M,读时钟频率为500M,写时钟域向读时钟域传递gray code,序列如下:对应2次写
3'b000--->3'b001--->3'b011,如果不对bus delay skew作约束,会出现如下情况,graybus[0]的delay 12ns, 而graybus[1]的delay 1ns,这样, 写时钟域graycode从3'b000变化到3'b011需要2个cycle(4ns),而5ns处读时钟域采样的gray bus值为3'b010(即3),这样,读时钟域就可能读出错误的数据(读3次)。当然,这是一种比较极限的情况,通常不加约束,且频率较低时是不会出现上述问题。 个人觉得加上约束会更稳妥。

    不知各位同学的意见如何?
发表于 2010-11-15 18:16:22 | 显示全部楼层
你要是讨论这种极限情况,那基本上所有的跨时钟路径都需要约束
约束也是以软件运行时间为代价的
这种发生概率超级小的事件,除非仿真过程中发现它会发生,否则都不用管
 楼主| 发表于 2010-11-15 18:27:30 | 显示全部楼层
在系统运行频率较低的情况下是小概率时间,但在频率较高时,存在的风险会较大。
发表于 2010-11-15 18:40:58 | 显示全部楼层
跨时钟域信号一般没有组合逻辑,线延时很小,不会出现楼主说的情况。FPGA里面可能连线延时较大,可能与ASIC有些不同吧(不过跑500M的FPGA……)
 楼主| 发表于 2010-11-15 18:50:31 | 显示全部楼层
回复 7# shuke

纯属探讨时序分析的严谨性问题,哈哈,大家伙明白有这么一回事就够了,实际过程中用不用大家依情况自己决定啊!

本讨论就此打住。
发表于 2010-11-17 17:04:41 | 显示全部楼层
看看~~~~~~~~~~~~~~
发表于 2016-4-2 13:27:57 | 显示全部楼层
的确需要约束路径延时
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-15 17:01 , Processed in 0.023704 second(s), 6 queries , Gzip On, Redis On.

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