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

 

如果喜歡本公眾號也請多多分享喲,謝謝您的關注


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM