在fixed cell 周围加placement blockage

本文介绍了一种使用脚本语言创建布局障碍的自动化方法。通过遍历实例并调整边界框参数,实现对每个实例周围创建固定大小的硬障碍。此过程涉及读取实例属性、计算新边界坐标和创建放置障碍。

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

set Cell [dbget [dbget top.insts.pStatus fixed -p].name]
set j 1
foreach i $Cell {
set llx [dbget [dbget top.insts.name $i -p].pHaloBox_llx]
set new_llx [expr $llx -5]

set lly [dbget [dbget top.insts.name $i -p].pHaloBox_lly]
set new_lly [expr $lly -5]

set urx [dbget [dbget top.insts.name $i -p].pHaloBox_urx]
set new_urx [expr $urx +5]

set ury [dbget [dbget top.insts.name $i -p].pHaloBox_ury]
set new_ury [expr $ury +5]

createPlaceBlockage -box $new_llx $new_lly $new_urx $new_ury -type hard -name $j

incr j
}

### 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、付费专栏及课程。

余额充值