INN:utilization/u-rate/density

本文详细介绍了INN(Innovus)工具中关于utilization、u-rate和density的计算方法,包括基本计算公式、不同命令间的区别及如何使用特定命令获取这些指标。内容涵盖stdCellArea和allocArea的计算要素,以及如何通过dbDesign命令获取不同的利用率和密度信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

INN:utilization/u-rate/density 计算

1. 基本计算公式
innovus ug中给出的计算公式是:
utilization/u-rate/density = stdCellArea/allocArea
其中 stdCellArea 是指整个design中std cell area的和;alloArea是指整个design中可以给std cell用做place的地方。

会影响到stdCellArea的要素有:

  • cell padding:可以在cell的四周保留一些位置(一般是为了解决congestion),所以cell padding 的area会加在stdCellArea中
  • cell/block halos with FIXED/COVER placement status: 不会被算在stdCellArea
  • cell with PLACED status:会被算在stdCellArea
  • physical only cells:会被算在stdCellArea

会影响到allocArea的要素有:

  • cell with FIXED/COVER placement status: 不会被算在allocArea
  • cell with PLACED status:会被算在allocArea

2.不同cmd的区别
(拿同一个placement stage的DB来比较的话)

  • timeDesign(67.778%) and optDesign(67.901%)
    在timing summary table之
### Innovus Placement Blockage 的用法及相关问题 #### 命令概述 在Innovus中,`createPlaceBlockage` 是用于定义放置障碍(placement blockage)的主要命令。该命令允许用户通过指定参数来控制特定区域内的单元放置行为。例如,在设置部分放置障碍(partial placement blockage)时,可以通过 `-type partial` `-density` 参数实现对目标区域内单元密度的精确管理[^1]。 以下是 `createPlaceBlockage` 的基本语法结构: ```tcl createPlaceBlockage \ [-type {full | soft | partial}] \ [-density <value>] \ [-expandDist <distance>] \ [-box {<llx> <lly> <urx> <ury>}] \ [-name <blockage_name>] ``` - **`-type full`**: 完全阻止任何单元在此区域内放置。 - **`-type soft`**: 工具会尝试避开此区域,但在必要情况下仍可能放置少量单元。 - **`-type partial`**: 设置一个部分阻塞区,其中可通过 `-density` 参数设定最大填充率(百分比)。例如,`-density 75` 表示该区域最多可容纳75%的标准单元面积。 #### 使用场景与目的 Placement blockage 主要应用于 floorplan 阶段,帮助设计者优化布局并减少拥塞(congestion),从而提升布线效率。合理配置这些约束能够有效降低高密度区域的压力,改善整体设计质量[^2]。 #### 实际应用案例 假设需要在一个矩形范围内创建一个软性放置障碍,并将其命名为 `softBlockageExample`,可以执行如下脚本: ```tcl createPlaceBlockage \ -type soft \ -box {3000.0 4000.0 5000.0 6000.0} \ -name softBlockageExample ``` 如果希望进一步调整其影响范围,则可以增加扩展距离选项: ```tcl createPlaceBlockage \ -type soft \ -expandDist 5 \ -box {3000.0 4000.0 5000.0 6000.0} \ -name expandedSoftBlockage ``` 对于更复杂的场景,比如为某个模块单独添加带有固定密度限制的部分阻塞区,可以用到以下形式: ```tcl createPlaceBlockage \ -type partial \ -density 80 \ -box {1000.0 2000.0 3000.0 4000.0} \ -name partialDensityConstraint ``` #### 故障排查建议 当遇到无法正常生效或者与其他物理约束冲突的情况时,应重点检查以下几个方面: 1. 是否存在重复定义相同名称或位置重叠的 blockages; 2. 设定的 density 或 expand distance 是否超出实际需求导致不合理分布; 3. 特殊条件下是否遗漏了必要的附加属性说明,如关联的具体 net/block 等对象[^4]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值