ICC中用Tcl腳本給版圖中的Port/Terminal加Label的方法
本文轉自:自己的微信公眾號《數字集成電路設計及EDA教程》
裏面主要講解數字IC前端、後端、DFT、低功耗設計以及驗證等相關知識,並且講解了其中用到的各種EDA工具的教程。
考慮到微信公眾平臺上面發布的很多推文百度搜索不到,所以以後的推文也會在這裏進行轉載。
圖:
ICC中用Tcl腳本給版圖中的Port/Terminal加Label的方法
在輸出GDSII文件之前,為了方便後邊導入Virtuoso用Calibre做LVS,最好給整個設計的輸入輸出端口打上Label,如果設計是模塊級別的,沒有IO和PAD,那麽可以直接打在Port或者Terminal上,如果設計是Chip級別的,那麽需要打在PAD上面。
ICC中用Tcl腳本給版圖中的Port/Terminal加Label的方法:
set ALL_PORTS[get_ports -all]
foreach_in_collectionPORT_NAME $ALL_PORTS {
set xy_location[get_location $PORT_NAME]
setx_location [lindex $xy_location 0]
sety_location [lindex $xy_location 1]
#由於$PORT_NAME的屬性是一個collection,無法直接用字符串相關命令來得到port的字符串格式的名字,因此,可以用命令collection_to_list將其轉化為list:
set TEXT_NAME[collection_to_list $PORT_NAME]
#比如,一個端口的名字是tdo_pad,那麽$PORT_NAME的值將是{tdo_pad},它的屬性是一個只含一個元素的collection。$TEXT_NAME的值是{{port tdo_pad}},由於前綴{{port和後綴}}格式固定,因此我們可以用字符串操作命令來截取中間一段string得到端口的名字:
set TEXT_NAME_1[string range $TEXT_NAME 7 end-2]
#之後便可以用create_text命令來用指定層次給這些Port來打Label了。
#-origin控制Label的坐標位於Port金屬的左下角;
#-hight控制Label的高度;
#-layer控制Label的層次,主要讓Calibre工具識別它為一個Port。一般用金屬所在的TXT層或者Label層,有的工藝直接用金屬層也是可以被識別的;
#-orient控制Label的方向。
create_text-origin [list [expr $x_location] [expr $y_location]] \
-height 1 \
-layer 17 \
-orient W $TEXT_NAME_1
}
之後給大家講一下版圖中加PAD(深亞微米設計中IO和PAD分離,且PAD有Stagger擺放形式,一般用腳本來決定其所在的位置是內側還是外側以及具體位置),並給PAD打LOGO的方法。
如果喜歡本公眾號也請多多分享喲,謝謝您的關註
ICC中用Tcl腳本給版圖中的Port/Terminal加Label的方法