您的位置:首页 > 其它

Hold Time违例,该如何解决

2020-08-14 04:30 2971 查看

「深度学习福利」大神带你进阶工程师,立即查看>>>


 首先,我们要知道的是,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指令:

phys_opt_design -directive ExploreWithHoldFix

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

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

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

  1. 检查违例的时钟是否是在全局时钟网络上,若没有的话,则最好增加BUFG

  2. 插入延迟模块,在数据路径上增加逻辑延迟



FPGA时序约束教程


  1. FPGA时序约束理论篇之建立保持时间
  2. FPGA时序约束理论篇之时序路径与时序模型
   3.  FPGA时序约束理论篇之IO约束
   4.  FPGA时序约束理论篇之时钟周期约束
   5.  FPGA时序约束理论篇之两种时序例外
   6.  FPGA时序约束理论篇之xdc约束优先级    7.  FPGA时序约束实战篇之梳理时钟树    8.  FPGA时序约束实战篇之主时钟约束    9.  FPGA时序约束实战篇之衍生时钟约束   10.  FPGA时序约束实战篇之延迟约束   11.  FPGA时序约束实战篇之伪路径约束
  12.  FPGA时序约束实战篇之多周期路径约束
  13.  Vivado时序约束辅助工具   14.  FPGA时序约束之Tcl命令的对象及属性



欢迎关注微信公众号:Quant_Times


本文分享自微信公众号 - 科学计算Tech(Quant_Times)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  synth