1. 程式人生 > >ICC中用Tcl腳本給版圖中的Port/Terminal加Label的方法

ICC中用Tcl腳本給版圖中的Port/Terminal加Label的方法

div led right 方法 ont jpeg size smi 一個

本文轉自:自己的微信公眾號《數字集成電路設計及EDA教程》

裏面主要講解數字IC前端、後端、DFT、低功耗設計以及驗證等相關知識,並且講解了其中用到的各種EDA工具的教程。

考慮到微信公眾平臺上面發布的很多推文百度搜索不到,所以以後的推文也會在這裏進行轉載。

圖:

技術分享圖片

ICC中用Tcl腳本給版圖中的Port/Terminal加Label的方法

在輸出GDSII文件之前,為了方便後邊導入Virtuoso用Calibre做LVS,最好給整個設計的輸入輸出端口打上Label,如果設計是模塊級別的,沒有IO和PAD,那麽可以直接打在Port或者Terminal上,如果設計是Chip級別的,那麽需要打在PAD上面。

ICC中用Tcl腳本給版圖中的Port/TerminalLabel的方法:

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的方法