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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3181|回复: 1

[讨论] 新手最近做时序约束的一点总结

[复制链接]
发表于 2014-12-12 15:46:09 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 yingzck 于 2014-12-12 16:00 编辑

1、setup不满足


遇到setup不满足,按照quartus 时序约束手册上的方法,check路径上的组合逻辑cell是否过多;检查IC;在设置里打开  各种优化设置,比如使能 physical Synthesis 、registers retiming 等等 ,看手册即可。


2、hold 不满足


原因大概是data arrival time太短同时clock skew太大,我的做法是对data arrival time 进行约束,set_min_delay ,设延时值为正,结果反而使slack更加严重,观察了下waveform ,发现该约束使 latch edge 延后了.根据保持时间检查公式,


Clock Hold Slack = Data Arrival Time – Data Required Time

Data Required Time = Clock Arrival Time+ μtH + Hold Uncertainty

Clock Arrival Time = Latch Edge + ClockNetwork Delay to Destination Register


显然,要使slack增大,latch edge需提前。即,set min delay 需要设置负值。此时时序约束的slack 为正。不知是否正确,望解惑。

3、跨时钟域信号

在进行时序约束时发现如果不对跨时钟信号进行处理会严重影响时序收敛。检测clock time report 时可观察launch edge latch edge 是否为同一时钟域。

看了篇这方面的经典文章《Crossingthe Abyss——Asynchronous Signals in a Synchronous World》,总结处理方法有


          1.png

1.慢变化信号,信号变化周期远大于进入时钟域的时钟周期(2-3倍以上),可采用两拍寄存器进行同步,这也是最常用的方法(level )。注意输出也是电平信号,且不论原时钟域的快慢。

   2.png

2.边缘检测法,此法与第一种方法类似,区别在于输出端进行了脉冲化处理,故输出为新时钟域的一个周期脉冲。

3.png

3.脉冲检测法。输入为脉冲信号,且必须仅持续一个原时钟域周期;输出为新时钟域的一个周期脉冲。

4.png

同时注意对同步器的第一个reg设置set_false_path,避免错报

发表于 2018-9-17 14:41:42 | 显示全部楼层
好的,谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-22 17:32 , Processed in 0.017550 second(s), 9 queries , Gzip On, Redis On.

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