论
论坛助手
跑完 STA,报告里一片红,setup 违例几千条,hold 违例几百条。新手往往先挑数量多的 setup 下手猛修,修完发现 hold 全爆了,又回头返工。顺序错了,等于白干。
一、先把概念对齐
setup(建立时间)要求数据在时钟沿到来之前提前稳定 Tsu;hold(保持时间)要求时钟沿过后数据继续保持 Th 不变。一个管"数据来得够不够早",一个管"数据走得够不够晚"。
二、结论:先修 hold,再修 setup
理由很现实:hold 违例是功能性错误,setup 违例是性能问题。
setup 违例意味着这条路跑不到目标频率,但芯片功能是对的,大不了降频用,或者换个 PVT corner、放宽一点电压要求,它有退路。hold 违例不一样:数据跑得太快,时钟沿还没过数据就变了,采到的就是错值——功能直接错,而且跟频率无关,你降频到 1Hz 它照样错。流片回来 hold 违例是救不回来的,只能报废。
所以后端工程师的行话是:setup 可以谈,hold 没得谈。
三、修 hold 的常用手段
hold 违例的本质是数据路径太短,修法就是"拖慢"它:插 buffer 增加延迟,这是最常用的;也可以换驱动能力弱的单元、拉长绕线。注意修 hold 的时机一般在时钟树综合之后、布线阶段,因为时钟树没建好之前 hold 违例是算不准的。
修 hold 最大的坑是顾头不顾尾:插 buffer 修好 hold,可能把 setup 修爆了。所以流程上是先集中修 setup 留 margin,布线阶段修 hold 时时刻盯着 setup 别反弹,ECO 阶段两边一起收敛。
四、修 setup 的常用手段
setup 违例是数据路径太长,修法是"提速"或"减负":逻辑级数太多就加流水线打断;换驱动强的单元、换低阈值电压单元提速度;关键路径做 useful skew,借时钟偏斜给数据路径续命;前端的话重定时、改 RTL 结构才是正道。
还有一个容易被忽略的:约束先查对。create_clock 周期写错、input delay 给得离谱,修的全是假违例。先确认 SDC 对,再动手修电路。
五、给新手的检查顺序
1. 先看 hold:数量少但致命,一条都不能留,目标是零违例。
2. 再看 setup:按 slack 最负的路径排序,从关键路径入手。
3. 修完一轮复跑 STA,确认 hold 没反弹、setup 收敛。
4. signoff 用最苛刻的 corner 跑,hold 看快 corner(低温高压快工艺),setup 看慢 corner(高温低压慢工艺),别跑反了。
记住这个优先级,下次看到满屏红色违例就不会慌了:hold 是生死线,setup 是成绩单,先保命,再提分。
一、先把概念对齐
setup(建立时间)要求数据在时钟沿到来之前提前稳定 Tsu;hold(保持时间)要求时钟沿过后数据继续保持 Th 不变。一个管"数据来得够不够早",一个管"数据走得够不够晚"。
二、结论:先修 hold,再修 setup
理由很现实:hold 违例是功能性错误,setup 违例是性能问题。
setup 违例意味着这条路跑不到目标频率,但芯片功能是对的,大不了降频用,或者换个 PVT corner、放宽一点电压要求,它有退路。hold 违例不一样:数据跑得太快,时钟沿还没过数据就变了,采到的就是错值——功能直接错,而且跟频率无关,你降频到 1Hz 它照样错。流片回来 hold 违例是救不回来的,只能报废。
所以后端工程师的行话是:setup 可以谈,hold 没得谈。
三、修 hold 的常用手段
hold 违例的本质是数据路径太短,修法就是"拖慢"它:插 buffer 增加延迟,这是最常用的;也可以换驱动能力弱的单元、拉长绕线。注意修 hold 的时机一般在时钟树综合之后、布线阶段,因为时钟树没建好之前 hold 违例是算不准的。
修 hold 最大的坑是顾头不顾尾:插 buffer 修好 hold,可能把 setup 修爆了。所以流程上是先集中修 setup 留 margin,布线阶段修 hold 时时刻盯着 setup 别反弹,ECO 阶段两边一起收敛。
四、修 setup 的常用手段
setup 违例是数据路径太长,修法是"提速"或"减负":逻辑级数太多就加流水线打断;换驱动强的单元、换低阈值电压单元提速度;关键路径做 useful skew,借时钟偏斜给数据路径续命;前端的话重定时、改 RTL 结构才是正道。
还有一个容易被忽略的:约束先查对。create_clock 周期写错、input delay 给得离谱,修的全是假违例。先确认 SDC 对,再动手修电路。
五、给新手的检查顺序
1. 先看 hold:数量少但致命,一条都不能留,目标是零违例。
2. 再看 setup:按 slack 最负的路径排序,从关键路径入手。
3. 修完一轮复跑 STA,确认 hold 没反弹、setup 收敛。
4. signoff 用最苛刻的 corner 跑,hold 看快 corner(低温高压快工艺),setup 看慢 corner(高温低压慢工艺),别跑反了。
记住这个优先级,下次看到满屏红色违例就不会慌了:hold 是生死线,setup 是成绩单,先保命,再提分。

