Innovus实用技巧 | PostCTS阶段的optDesign配置与避坑指南
在Innovus数字后端流程中时钟树综合CTS完成后时钟从ideal模式切换为propagated模式时钟延迟和skew的真实值得以体现。此时Place阶段基于ideal clock估算的时序不再准确需要进行PostCTS优化。optDesign -postCTS 正是这一阶段的核心命令。一、为什么需要PostCTS优化CTS之后时钟树已真实存在时序分析基于propagated clock。之前Place阶段可能存在的setup违例需要基于真实时钟树重新优化。optDesign -postCTS 通过插入buffer、调整单元尺寸、优化逻辑结构等方式同时修复setup和hold违例。二、基本用法最简命令形式tcloptDesign -postCTS该命令会同时修复setup和hold违规。推荐的分步操作避免相互牵制tcl# 先修setupoptDesign -postCTS# 再单独修holdoptDesign -postCTS -hold三、关键参数配置1. 目标松弛设置通过setOptMode调整setup目标slack值默认为-0.1nstclsetOptMode -setupTargetSlack -0.15 # 设置为-150ps2. 启用Useful Skew允许工具主动借用时钟偏移优化setuptclsetOptMode -usefulSkew true注意Useful Skew需配合偏移范围限制使用建议先执行tclsetUsefulSkewMode -maxAllowedDelay 0.153. 多电压阈值优化Multi-Vt允许工具将非关键路径的HVT单元替换为LVT以提升速度tclsetOptMode -cellOptimization true4. 增量优化在现有优化基础上做微调tcloptDesign -postCTS -incremental5. 同时修复DRV若存在设计规则违规max_transition、max_capacitance等可一并修复tcloptDesign -postCTS -drv # 仅修复DRVoptDesign -postCTS -hold -drv # 同时修复hold和DRV四、避坑指南1. 更新SDC约束CTS完成后必须设置时钟为propagated模式否则时序分析不准确。2. hold优化不支持Useful SkewPostCTS阶段的useful skew主要针对setuphold违例需通过插入delay cell或buffer修复。3. 分步优于一次性建议先修setup再修hold同时优化可能相互影响增加收敛难度。4. 关注log中的警告若optDesign后仍有违例检查log中是否有类似“no usable buffer or delay cell”的警告信息。五、速查表场景 命令基础优化 optDesign -postCTS仅修复hold optDesign -postCTS -hold仅修复DRV optDesign -postCTS -drv增量微调 optDesign -postCTS -incremental启用useful skew setOptMode -usefulSkew true启用Multi-Vt setOptMode -cellOptimization true验证时序 timeDesign -postCTS六、特别说明如果你的流程中已经使用了ccopt_design命令其内部已自动包含PostCTS优化无需再单独执行optDesign -postCTS。而传统流程create_clock_tree则需要这一步。请根据实际流程判断是否需要。