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

标题: 关于setup和hold violation修复 [打印本页]

作者: colindean    时间: 2022-8-19 11:08
标题: 关于setup和hold violation修复
刚入门后端,跑项目时候在postRoute时候setup violation清除了,但hold很多,于是optDesign -postRoute -hold修复后 setup违例又有了,想知道大家都是怎么解决这种问题的?

作者: jake    时间: 2022-8-19 14:02
setOptMode -fixHoldAllowSetupTnsDegrade false
optDesign -postRoute -hold

作者: colindean    时间: 2022-8-23 10:34


   
jake 发表于 2022-8-19 14:02
setOptMode -fixHoldAllowSetupTnsDegrade false
optDesign -postRoute -hold


按照您说的修了一轮后hold violation还有三百多条,于是我又修了一轮,此时setup violation又有了,这种情况下我是手修setup修没,反复修Hold 吗?

作者: jake    时间: 2022-8-23 11:00
先修setup。第一优先是setup。
Hold可以在Innovus里用optDesign修。数量不多可以手工用ecoAddRepeater修。

从截图看有下列问题。
1. Setup
WNS -1.145,不在reg2reg,估计在I/O。是否I/O timing constraint有错。
2. max_tran
Real 137, total 140,说明clock tree上有3个violaton。clock tree做得不行,timing会难收敛。
3. Hold
WNS -0.292,而且是reg2reg,对这个工艺来说太大了,估计插3个buf都搞不定。
建议分析一下到底是哪里造成这么多的hold violation,是不是同一个start point,如果是的话,建议在源头解决。

作者: colindean    时间: 2022-8-23 11:16


   
jake 发表于 2022-8-23 11:00
先修setup。第一优先是setup。
Hold可以在Innovus里用optDesign修。数量不多可以手工用ecoAddRepeater修。  ...


好的 非常感谢您的解答

作者: IC练习生    时间: 2022-8-24 10:13
GANXIE

作者: eeiclover    时间: 2022-8-25 15:10


   
jake 发表于 2022-8-23 11:00
先修setup。第一优先是setup。
Hold可以在Innovus里用optDesign修。数量不多可以手工用ecoAddRepeater修。  ...


你好,能请问一下你说的这个"是不是同一个start point"要怎么判断是不是同一个start point呢?这个问题其实困惑了挺久的,一直不知道怎么判断,望能够解答一下,感谢!

作者: jake    时间: 2022-8-25 15:26


   
eeiclover 发表于 2022-8-25 01:10
你好,能请问一下你说的这个"是不是同一个start point"要怎么判断是不是同一个start point呢?这个问题其 ...


report_timing会报出start point的呀。找几个path,跑一下report_timing。数量多的话可以写个脚本做分析。



作者: eeiclover    时间: 2022-8-25 15:35


   
jake 发表于 2022-8-25 15:26
report_timing会报出start point的呀。找几个path,跑一下report_timing。数量多的话可以写个脚本做分析 ...


哦哦,知道了,如果是同一个起点出的问题的话是直接在起点后面插buf就能解决吗?

作者: jake    时间: 2022-8-25 15:37


   
eeiclover 发表于 2022-8-25 01:35
哦哦,知道了,如果是同一个起点出的问题的话是直接在起点后面插buf就能解决吗?
...


是啊,这样插一个或几个就解决一大堆,效率高多了

作者: eeiclover    时间: 2022-8-25 15:50


   
jake 发表于 2022-8-25 15:37
是啊,这样插一个或几个就解决一大堆,效率高多了


懂了,谢谢大佬解惑!

作者: left2write    时间: 2022-8-28 05:35
Check the skew at the CTS stage.

More Skew is bad for Hold.
作者: hunanxiongok    时间: 2022-8-29 19:11
innovus时序不准确 还是进pt fix才是王道

作者: colindean    时间: 2022-8-29 22:21


   
hunanxiongok 发表于 2022-8-29 19:11
innovus时序不准确 还是进pt fix才是王道


是啊 但我们这习惯先清 然后前端跑tempus 累了

作者: hunanxiongok    时间: 2022-8-30 09:10


   
colindean 发表于 2022-8-29 22:21
是啊 但我们这习惯先清 然后前端跑tempus 累了


很难完全清理干净。两个工具有天然的gap的

作者: colindean    时间: 2022-8-30 11:03


   
hunanxiongok 发表于 2022-8-30 09:10
很难完全清理干净。两个工具有天然的gap的


好的,对了问了一下如果我只想用optDesign -postRoute -hold 修reg2reg 或者reg2cgate,setOptMode有什么指令是可以限制的吗?暂时找不到了


作者: pacific1987    时间: 2022-8-30 20:54


   
colindean 发表于 2022-8-30 11:03
好的,对了问了一下如果我只想用optDesign -postRoute -hold 修reg2reg 或者reg2cgate,setOptMode有什么 ...


在你的另一个帖子里回你了:
setOptMode -ignorePathGroupsForHold {<other path groups>}

作者: colindean    时间: 2022-8-31 10:05


   
pacific1987 发表于 2022-8-30 20:54
在你的另一个帖子里回你了:
setOptMode -ignorePathGroupsForHold {}


非常感谢!

作者: colindean    时间: 2023-1-16 21:10


   
jake 发表于 2022-8-23 11:00
先修setup。第一优先是setup。
Hold可以在Innovus里用optDesign修。数量不多可以手工用ecoAddRepeater修。  ...


你好Jake,我想请问一下您知道innovus能直接吃RTL和sdc 到GDS II的么?不是吃Netlist。工作上要求探索一下这种Flow,实在是没找到,翻墙也没有找到。
作者: jake    时间: 2023-1-16 22:21


   
colindean 发表于 2023-1-16 07:10
你好Jake,我想请问一下您知道innovus能直接吃RTL和sdc 到GDS II的么?不是吃Netlist。工作上要求探索一 ...


Innovus不是综合工具,没法直接接受RTL。
RTL+SDC -> Genus -> Innovus -> GDS


作者: Tmac43    时间: 2024-4-2 17:59


   
jake 发表于 2022-8-19 14:02
setOptMode -fixHoldAllowSetupTnsDegrade false
optDesign -postRoute -hold


你好jake:



我在postRoute后的timeDesign中没有出现setup violation,但是在signoff阶段时再timeDesign -signOff却出现了一条setup violation,具体如图1

report_timing后查看,如图2

能帮忙分析一下是什么原因吗,不胜感激!



作者: Tmac43    时间: 2024-4-2 18:00


   
Tmac43 发表于 2024-4-2 17:59
你好jake:


补充一下图2
作者: jake    时间: 2024-4-3 01:03


   
Tmac43 发表于 2024-4-2 04:00
补充一下图2


首先,这是一条很特殊的path,不是普通的data path setup check,这个violation指的是reg07_reg[5]的RDN复位和SDN置位之间离得太近。通常设计中会避免使用这种同时带复位和置位的DFF/reg。如果使用了,会非常小心,由设计保障两者不会同时变化,纯粹靠后端去修基本是修不好的。

以前发过一个帖子,也是关于复位和置位之间的data to data check,也许可以参考 数字PR, tempus 报 data to data check violation - 后端讨论区 - EETOP 创芯网论坛 (原名:电子顶级开发网) -



作者: Tmac43    时间: 2024-4-3 15:18


   
jake 发表于 2024-4-3 01:03
首先,这是一条很特殊的path,不是普通的data path setup check,这个violation指的是reg07_reg[5]的RDN ...


感谢您的回复!
设计中确实用到了同时带有复位和置位的dff,且没有设置约束!学习了文章后受益匪浅!

作者: PDZ123    时间: 2024-4-15 15:27


   
jake 发表于 2022-8-23 11:00
先修setup。第一优先是setup。
Hold可以在Innovus里用optDesign修。数量不多可以手工用ecoAddRepeater修。  ...


大佬您好,请问可以解释一下innovus drv表格里total和real的含义吗?


作者: jake    时间: 2024-4-16 07:27


   
PDZ123 发表于 2024-4-15 01:27
大佬您好,请问可以解释一下innovus drv表格里total和real的含义吗?

...


Cadence标准答案:


The “Total” column corresponds to the real DRVs plus the non-fixable DRVs in the design.
The number of DRVs listed under the “Real” column corresponds to the real fixable DRVs in the design.  
The non-fixable DRVs might typically be DRVs on clock nets and on the external or fixed nets.







欢迎光临 EETOP 创芯网论坛 (原名:电子顶级开发网) (https://bbs.eetop.cn/) Powered by Discuz! X3.5