Innovus Command-everyday -- optDesign

每日命令 202310010

optDesign

1. 作用

在PR的preCTS、postCTS、postRoute阶段进行时序优化,并输出时序报告

  • 修复drv
  • 减少total negative slack
  • 使用合适的userful skew
  • 修复setup和hold的时序违例
  • 减小面积
  • 优化leakage and dynamic power
  • Merges flops to multi-bit FFs, or split the multi-bit FFs(option)

2. 优化方法

  • Adds Buffers
  • Resizes gates
  • Restructures the netlist
  • Remaps logic
  • Swaps pins
  • Deletes Buffers
  • Moves instances
  • Applies useful skew
  • Applies layer promotion and/or NDR assertions
  • Applies flip-flop merge and split

3. 参数解释

  • -drv
    • 使用该参数,则optDesign会对max_cap、max_tran违例进行修复;
    • 若要修复max_fanout,则需要执行 setOptMode -fixFanoutLoad true
    • 再加上 -incr 参数,则只对drv进行优化,而忽略setup|hold的优化
  • -excludeNets filename
    • Specifies the file that contains the hierarchical name of file
    • Timing optimization exclude nets specified in this file
  • -expandeViews
    • 使用该参数,会输出一份特定view的详细timing reports
  • -hold
  • -holdViodata filename
    • 在 hold fixing 后产生保留有 violation dada 的报告文件
    • 必须同 -hold 参数一起使用
  • -ideaClock
    • 使用 idea Clock 进行优化,忽略已存在的 Clock Tree
  • -incr
    • 使用该参数会再进一步进行优化
    • 运行加该参数的optDesign时,必须已经经过一次optDesign
    • 使用该参数时,optDesign无法进power optimization
  • -noEcoRoute
    • 在 postRoute optimization 时禁止工具执行 ECO routing with the NanoRoute
  • -outDir
  • -postCTS
  • -preCTS
  • -prefix fileNmaePrefix 指定报告文件名字的后缀
  • -selectedNets filename
    • 该文件包含了指定进行hold和drv优化的nets
    • 该参数只在 -hold or -drv 时使用
  • -selectedTerms fileName
    • 该文件包含了 hierarchical names of instance terminals,在时序优化时,连接到指定 terminal 的 nets 会进行优化
  • -setup
  • -targeted
    • 只在 -postRoute 阶段使用
    • 使用该参数,调用 target-based optimization (TBOpt),这可以很好的获得local optimization functionality
    • 面向 postRoute 阶段的 critical bottleneck node 并进行优化
    • 配合 setOptMode -targetBasedOptFile filename -targetBasedOptFileOnly 一起使用
  • -timingDebugReport
    • 产生工具可读的 Report 文件,用于 debugging timing result
  • -useTransitionFiles
    • Uses the transition file specified by the readTranstionFile command for transition violation fixing during postRoute Si optimization

3. Examples

(1) 带 useful skew 的optDesign

setOptMode -usefulSkew true -usefulSkewPreCTS true
optDesign -preCTS 

(2) 优化指定的 path group

group_path -name path_group_name -from from_list -to to_list -trought trought_list
setPathGroupOption ...
optDesign -preCTS

(3) 尽量减小面积

setOptMode -raclaimArea true
optDesign -preCTS
optDesign -preCTS -incr
### 关于 Innovus 中 `setPlaceMode` 命令的 `-adaptive` 选项 #### 背景介绍 在物理设计流程中,`setPlaceMode` 是一个非常重要的命令,用于配置全局布局(global placement)和精细布局(detailed placement)的行为。该命令提供了多种参数以满足不同场景下的需求。其中,`-adaptive` 参数是一个高级功能,主要用于动态调整放置策略以适应复杂的拥塞情况。 #### 功能描述 当启用 `-adaptive` 选项时,Innovus 工具会自动分析电路中的拥塞状况并实时调整放置算法[^1]。这种自适应机制能够显著改善高密度区域的设计质量,减少布线冲突的可能性。具体来说: - **拥塞感知**:工具会在放置过程中持续监测网络拥塞程度,并优先处理那些容易引发瓶颈的关键路径。 - **资源分配优化**:对于某些特定类型的单元格(例如大尺寸标准单元),它允许更灵活的空间管理方式,从而降低整体复杂度。 #### 使用方法与实例 以下是几个典型的例子展示如何正确应用此特性: ```tcl # 设置基本模式为自适应状态 setPlaceMode -adaptive true # 如果项目存在特殊约束条件,则可以进一步细化设定 setPlaceMode \ -congestionEffort high \ -timingDriven true \ -powerDriven false \ -incremental true \ -rePlaceCongestion true \ -adaptive true ``` 上述脚本片段展示了如何开启完整的自适应放置过程,同时结合其他重要标志一起工作,比如考虑时间驱动因素以及增量更新等操作[^4]。 值得注意的是,在实际运用当中还需要关注以下几个方面的影响: - 设定合理的最大密度阈值(`max_density`)以防止单元过度集中; - 避免过多软障碍物定义以免限制有效可用空间范围; 如果遇到诸如无法找到合适位置这样的错误提示信息时,除了检查是否有足够的核心行外,还应核实是否存在不当预路由作为阻碍的情况[^5]。 #### 总结 综上所述,利用好`setPlaceMode`里的`-adaptive`开关可以帮助我们更好地应对现代集成电路日益增长的技术挑战,特别是在解决局部热点问题上有明显优势。然而,为了获得最佳性能表现,往往需要与其他相关联的功能协同配合才行。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值