ICC2|玩转polygon

本文介绍了在ICC2中如何利用polygon提高工作效率,特别是在floorplan和pv阶段的应用,如修复DRC和添加blockage。文章强调了理解poly_rect和geo_mask的概念,并解释了它们之间的区别和联系。此外,还探讨了实际图形对象(如shape、cell等)与geo_mask的关系,以及如何进行多边形操作和转化,以实现高效的图形运算。

ICC2中,操作好多边形计算,就会加倍提高效率,写出效果显著的脚本,尤其在floorplan & pv阶段。例如修DRC,针对某种类型的DRC计算出多边形进行金属填充。或者在floorplan阶段,对于一些边边角角添加blockage。

那么在ICC2中,需要深入理解两个概念。

poly_rect: 单个多边形,是坐标点组成的集合

geo_mask: poly_rect组成的集合

对于这两个概念,都是抽象化的geometry object,有坐标点,也可以进行逻辑运算,但是你在图形界面里是看不到的。如果想看到它们,你必须把它们转化为实际的图形对象( real geometry object)。

另外,对于图形处理命令,除了create_poly_rect, 会产生poly_rect之外,象其他的polygon操作命令,所产生的objec都属于geo_mask。

那么实际的图形对象,都有哪些呢?shape, cell, voltage area, blockage,bound ...  一般来说,能看到的有boundary的对象, 都算是实际的图形对象(real geometry object)。

象这些对象,无需转化,直接就可当geo_mask来进行图形运算。

set geo [resize_plygons [get_cells $macro] -size 1]; #直接用cell进行图形运算,产生一个geo_mask
create_routing_blockage -boundary $geo -layer M4; # 转化为M4的blockage

关于多边形的操作命令以及转化关系,见下图:

因为geo_mask为collection, 所以有可能内部有多个ploy_rect, 那么,就需要用foreach_in_collection。

polygon 操作命令:

应用举例

比如我们想获得stdcell区域的面积 (core_area - hard_macro_area - placement_blockage_area)。

set non_std [create_geo _mask [add_to_collection [get_cells -physical_context -filter is_hard_macro] [get_placement_ blockages]]]
set std [compute _polygons -objects1 [create_geo_mask [get_attribute [get_core_area] boundary]] -objects2 $non_std -operation not]
compute_area $std 

然后通过前面的文章,计算stdcell的面积,就可以很方便的计算出stdcell区域的utilization。

ICC2(Innovus Implementation System 2)是新思科技(Synopsys)推出的一款用于集成电路物理设计的工具。关于 `polygon` 命令,在ICC2中它主要用于创建和操作多边形对象,常见于布局规划、金属填充等相关操作。 ### 基本语法 `polygon` 命令的基本语法结构如下: ```tcl polygon [options] coordinates ``` - `options`:是一系列可选参数,用于指定多边形的属性,如层、颜色等。 - `coordinates`:是多边形各个顶点的坐标,通常以 `{x1 y1 x2 y2 ... xn yn}` 的形式给出。 ### 常用选项及示例 1. **指定层** 使用 `-layer` 选项指定多边形所在的层。 ```tcl polygon -layer metal1 {100 100 200 100 200 200 100 200} ``` 此命令在 `metal1` 层创建了一个边长为100的正方形多边形。 2. **指定颜色** 使用 `-color` 选项指定多边形的颜色。 ```tcl polygon -layer metal2 -color red {300 300 400 300 400 400 300 400} ``` 该命令在 `metal2` 层创建了一个红色的正方形多边形。 ### 使用规则 - **坐标顺序**:多边形顶点的坐标顺序必须按顺时针或逆时针方向给出,以确保多边形的正确定义。 - **闭合性**:多边形必须是闭合的,即第一个顶点和最后一个顶点的坐标应该相同(在实际操作中,如果最后一个顶点与第一个顶点不同,工具可能会自动闭合)。 - **层的有效性**:指定的层必须是ICC2中有效的层,否则会导致命令执行失败。 ### 高级用法 可以结合其他ICC2命令来使用 `polygon` 命令,例如在脚本中批量创建多边形: ```tcl for {set i 0} {$i < 5} {incr i} { set x [expr $i * 100] polygon -layer metal3 {${x} 500 [expr $x + 50] 500 [expr $x + 50] 550 ${x} 550} } ``` 此脚本在 `metal3` 层创建了5个相邻的矩形多边形。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值