前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hold Time违例,该如何解决

Hold Time违例,该如何解决

作者头像
猫叔Rex
发布2020-08-14 11:41:58
1.1K0
发布2020-08-14 11:41:58
举报
文章被收录于专栏:科学计算

 首先,我们要知道的是,Hold Time违例,是因为时钟绕的太远,到达时间太晚。而且综合之后给出的时序报告都是估计值,因此综合之后可以不考虑Hold Time,只考虑Setup Time;即便此时Hold Time违例,我们也不需要去理会。在Place Design之后再去看Hold Time,如果此时Hold Time的违例比较小(比如-0.05ns),还是不需要理会的,因为工具在布线时会修复Hold,但如果Slack太大了,无法修复了,就会牺牲setup来弥补hold。

这里补充一下综合实现的步骤:

synth_design -> opt_design -> place-design -> phys_opt_design -> route_design

我们可以让工具在每一步执行后都会有时序报告,只需要把Report Options的策略选择为Timing Closure Reports

image-20200810165751733

  如果route design之后hold time还是违例,可以使用tcl指令:

代码语言:javascript
复制
phys_opt_design -directive ExploreWithHoldFix

这个指令会尝试不同的算法来优化hold time违例。

  如果运行该指令后,hold time还是违例,又不想改设计,可以尝试不同的实现策略,但这种方式比较笨,只能试出来,并没有一个很固定的解决方案。

如果还是没有解决,只能修改设计,要么减少时钟的延迟,要么增加数据的延迟:

  1. 检查违例的时钟是否是在全局时钟网络上,若没有的话,则最好增加BUFG
  2. 插入延迟模块,在数据路径上增加逻辑延迟
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-08-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 傅里叶的猫 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档