修复Hold Violation的方法

david 2021-12-11 15:12:36 6037

RTL设计实现时,尤其是算法RTL,综合阶段或者Place阶段遇到setup timing不满足时,我们可以通过插入pipeline的方式修改RTL来解决setup violation,但是hold timing vioation往往CTS后才能发现且只能通过后端修复。遇到hold violation时检查以下几点:

首先,检查SDC约束;

  • 保持时间的margin是否合理,hold uncertainty可从foundry的SOD获得;
  • 时钟树transition/target skew/fanout target等设置是否合理;

其次,检查CTS阶段后clock skew是否合理范围内;

再次,对CTS友好的FloorPlan和Placement也非常重要;

  • 比如,友好的FloorPlan不希望PLL在die的右下角,而Flip-Flop在左上角,latency/insertion delay很大。
  • 比如,友好的Placement不希望堆叠的memory之间的channel中摆放Flip-Flop,latency/insertion delay很大。

若多次迭代仍然不能解决hold违例,推荐如下方法:

  • optDesign -postRoute -hold

根据hold slack的违例值,修改set_clock_uncertainty -hold,过约束hold margin,然后打开Route后的database,用optDesign -postRoute -hold修复hold。此方法简单,无需编写脚本,缺点是原本无hold违例的路径也被修复,会插入冗余的buffer,导致功耗升高、面积变大(一些buffer也会被sizedown)。重修跑绕线后的hold优化花费时间也很多,所以经常看凌晨三点的东方鱼肚白。

  • optDesign -postCTS -hold

若绕线后的hold违例路径过多,上面第一种方法仍然无法解决,可回到CTS阶段,设置合适的hold margin进行修复。这样花费的时间更多,修复的效果也更好。

  • 精准修复

方法1、2适用于规模小,功耗、面积要求不高且hold violation较多的设计,对于规模大的设计,我们需要抓出并分析所有hold violation的data path,再对这些路径进行精准修复。回到绕线优化阶段,修改hold margin,将违例路径的endpoint加入到terms.list,工具只定向修复违例的路径,因此会节省大量时间。optDesign -postRoute -hold -selectedTerms terms.list- 分组精准修复

根据slack大小将违例路径进行分组,set_path_adjust -0.05 -hold \-path_adjust_group Group1 -view xx_hold_view
set_path_adjust -0.10 -hold \-path_adjust_group Group2 -view xx_hold_view在绕线优化阶段执行:

optDesign -postRoute -hold -selectedTerms terms.list- 读入Tempus写出的sdf

在绕线优化阶段,读入Tempus写出的sdf:read_sdf -view xx_hold_view ./xx_hold.sdf

read_sdf -view xx_setup_view ./xx_setup.sdf

然后执行optDesign -postRoute -hold -expandedViews -useSDF该方法避免了PR工具与签核工具的误差,使修复结果更为准确,总体上来说,方法二最直接有效。

转载:全栈芯片工程师

声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
david
红包 点赞 收藏 评论 打赏
评论
0个
内容存在敏感词
手气红包
    易百纳技术社区暂无数据
相关专栏
置顶时间设置
结束时间
删除原因
  • 广告/SPAM
  • 恶意灌水
  • 违规内容
  • 文不对题
  • 重复发帖
打赏作者
易百纳技术社区
david
您的支持将鼓励我继续创作!
打赏金额:
¥1易百纳技术社区
¥5易百纳技术社区
¥10易百纳技术社区
¥50易百纳技术社区
¥100易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区微信支付
易百纳技术社区
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

审核成功

发布时间设置
发布时间:
是否关联周任务-专栏模块

审核失败

失败原因
备注
拼手气红包 红包规则
祝福语
恭喜发财,大吉大利!
红包金额
红包最小金额不能低于5元
红包数量
红包数量范围10~50个
余额支付
当前余额:
可前往问答、专栏板块获取收益 去获取
取 消 确 定

小包子的红包

恭喜发财,大吉大利

已领取20/40,共1.6元 红包规则

    易百纳技术社区