ICC2教程 - Shape相关常用命令及属性的查看与修改

科技   教育培训   2024-07-17 18:18   上海  


本文选自知识星球,更多干货知识以及后端笔记、视频教程等,欢迎加入星球进行查看。

星球上线了基于GPT4和个人IC设计知识库的IC设计 AI机器人 ,且最近将模型升级为了GPT-4 128K模型,也加入了更多IC知识库,星球成员可以免费使用!!AI机器人24小时随时随地都能立刻回答用户的提问哦,效果非常棒!可以同时在电脑、手机、平板等多个平台上使用。

AI机器人还有绘图功能哦,最近几期的封面都是用AI机器人绘制的。

AI机器人的所有功能介绍如下:

基于GPT4和个人IC设计知识库的IC设计机器人v1.0正式上线

同时星球QQ群还有分享高达55万+字的个人数字后端设计笔记,欢迎加入。


《ICC2教程 - Shape相关常用命令及属性的查看与修改》

主要内容:
Shape有哪些常用属性
如何得到Shape的某属性的值
如何使用filter过滤得到需要的Shapes
如何更改Shape的layer
 

Shape有哪些常用属性

在讲后续内容之前,我们先看下Shape有哪些常用属性,我们后边可以根据这些属性使用-filter选项来进行筛选或者用命令对这些属性进行更改。
我们可以使用list_attr命令查看Shape有哪些属性:
icc2_shell> list_attributes -application -class shape
用的最多的属性:
layer                     shape      collection A          
layer_name                shape      string     A          
length                    shape      distance   A          
mask_constraint           shape      string     A,S         no_mask, mask_one, mask_two, mask_three, mask_four, same_mask
name                      shape      string     A          
net                       shape      collection A,S
net_type                  shape      string     A           analog_ground, analog_power, analog_signal, clock, deep_nwell, deep_pwell, ground, nwell, power, pwell, reset, scan, signal, tie_high, tie_low, unset
physical_status           shape      string     A,S         application_fixed, fixed, locked, minor_change, unrestricted
 
shape_use                 shape      string     A,S         area_fill, core_wire, detail_route, follow_pin, global_route, lib_cell_pin_connect, macro_pin_connect, opc, pg_augmentation, rdl, ring, shield_route, stripe, trunk, user_route, zero_skew
#其中area_fill是版图中为了满足最小密度规则而添加的Metal和Via的Fill;pg_augmentation是出于IR-drop考虑在版图中添加的额外的电源地Shape;
 
is_vertical               shape      boolean    A
is_horizontal             shape      boolean    A
#我们可以通过这两个属性判断一段shape是水平的还是纵向的。
 
end_extension            shape      distance   A,S 
start_extension           shape      distance   A,S    
Shape真实的长度并非是length,需要加上start_extension和end_extension,它们是一段shape在头部和尾部延伸的长度,这个与Innovus中的length是一样的,可以参照Innovus中report_route -net的介绍。
   
tag                       shape      string     A,S        
我们可以自己给某些添加的某些shape打上一些Tag,这样的话方便识别,如果发现问题的话我们也方便用命令抓出所有自己添加Tag的shape一下子删除,非常快捷。
 
width                     shape      distance   A,S
 

如何得到Shape的某属性的值

命令:get_attribute或者在写脚本的时候直接用简写get_attr也可以。
示例:
icc2_shell> get_attr [get_shapes PATH_137_106] net
{GND}
icc2_shell> get_attr [get_shapes PATH_137_106] net.name
GND
icc2_shell> get_attr [get_shapes PATH_137_106] layer
{VM2}
icc2_shell> get_attr [get_shapes PATH_137_106] layer.name
VM2
icc2_shell> get_attr [get_shapes PATH_137_106] layer_name
VM2
icc2_shell> get_attr [get_shapes PATH_137_106] shape_use
stripe
icc2_shell> get_attr [get_shapes PATH_137_106] physical_status
unrestricted
icc2_shell> get_attribute [get_shapes PATH_136_771] bbox
{1564.92000 0.00000} {1566.72000 722.40000}
 

如何使用filter过滤得到需要的Shapes

使用filter然后加上前面的属性已经匹配的条件即可。
示例:
比如下面的命令可以得到VM1层VDD及GND的Strap/Stripe:
get_shapes -of_objects {VDD GND} -filter {layer_name == VM1 && shape_use == stripe}
{PATH_136_1181 PATH_136_1180 PATH_136_1179 PATH_136_1178...}
 
下面的命令可以选中版图中所有的VM(VM1/VM2等)层的电源地Stripe,其中=~可以用来匹配某个Pattern:
icc2_shell> change_selection [get_shapes -of_objects {VDD GND} \
-filter "layer_name=~VM* && shape_use==stripe"]
 

如何更改Shape的layer

注意:该属性是read only的,我们无法通过set_attribute进行更改。
icc2_shell> set_attribute [get_shapes PATH_21_3743] -name layer -value M4
Warning: Unable to set attribute 'layer' for shapes because it is read only (ATR-010)
有下面两种常用的修改方法。
方法1
我们可以在GUI里面右键修改Properties(快捷键Ctrl+r):
 
方法2
使用下面的命令也可以修改:
icc2_shell> gui_change_layer -object [get_shapes PATH_21_3743] -layer M4

如果喜欢本公众号也请多多分享哟,谢谢您的关注

集成电路设计及EDA教程
知识 前端 后端 DFT 低功耗 验证 EDA 1rtl检查:LEDA 2仿真:VCS 3逻辑综合:DC 4形式验证:Formality 5布局布线:ICC 6STA:PT 7功耗分析:PTPX 8DRC LVS:Calibre
 最新文章