get_ports/get_pins/get_cells/get_nets

TCL在EDA工具中的拓展與應(yīng)用

通過對Design Object的分析,了解和學(xué)習(xí)DC獲取電路并進(jìn)行解析的方法

常見指令

get_ports

語法格式:get_ports portsName

指令功能:返回design中對應(yīng)的port object

如何查看deign當(dāng)中有沒有一個叫做CLK的port?

get_portsCLK{CLK}

如何查看deign當(dāng)中有沒有一個port叫做SPI?

get_ports SPI

No object Found!

查看design當(dāng)中所有的port(*可以統(tǒng)配任何字符)

get_port *

{A B C D CLK OUT[0] OUT[1]}

假設(shè)port名字交{CLKA CLKB OUTA OUT B INA INB},如何得到所有C開頭的port?

get_ports C*

{CLKA CLKB}

get_cells

語法格式:get_cells cellsName

指令功能:返回design中對應(yīng)的cell的instance name object

查看是否有一個叫U4的cell

get_cells U4

{U4}

查看所有cell

get_cells *

{U1 U2 U3 U4}

查看以3結(jié)尾的cells

get_cells *3

{U3}

get_nets

語法格式 :get_nets netsName

指令功能:返回design中net的object

查看INV開頭的net

get_nets? INV*

{INV0 INV1}

查看所有net

get_nets *

{A B C D CLK BUS0 BUS1 INV0 INV1 OUT[0 OUT[1]]}

查看有多少個net

llength [get_object_name [get_nets *]]

sizeof_collection [get_nets *]

get_pins

語法格式:get_pin pinsName

指令功能:返回design中pin的object

查看叫Z的pin

get_pins */Z

{INV0/Z INV1/Z}

查看Q開頭的pin

get_pins */Q*

{ENCODER/Q0 ENCODER/Q1 REGFILE/Q[1] REGFILE/Q[0]}

數(shù)據(jù)類型

數(shù)據(jù)類型:”object(對象)“及其“屬性”

說明:

object使tcl的一個重要拓展

常見對象有四種cell、net、port、pin

每種object有他的屬性

任何一個屬性都可以用get_attribute得到

list_attribute -class *可以得到object的屬性

部分屬性可以用set_attribute來設(shè)置

Cell object

屬性ref_name:用來保存器map到reference cell名稱

get_attribute[get_cell -h U3] ref_name

{INV}

Pin object

屬性owner_net:用來保存與之相連的net的名稱

get_attribute [get_pins U2/A] owner_net

{BUS0}

Port object

屬性direction:用來保存port方向

get_attribute [get_ports A] direction

{in}

get_attribute [get_ports OUT[1]] direction

{out}

Net object

屬性 full_name:用來保存net的名稱

get_attribute [gets_nets INV0]

{INV0}

get_object_name [get_nets INV0]

{INV0}

get_attribute INV0 full_name

Error:No attribute found

理解屬性以后,就可以完成更多的任務(wù):

get_* -f:-f這個option可以用來過濾屬性,以得到我們想要的object

得到所有方向是input的port

get_ports * -f "direction==in"

{A B C D CLK}

得到所有方向是output的pin

get_pins * -f "direction==out"

{U1/Q0 U1/Q1 U2/Z U3/Z REGFILE/Q[0] REGFIEL/Q[1]}

得到所有ref_name是INV的cell

get_cells * -f "ref_name==INV"

{U2 U3}


原文鏈接:https://zhuanlan.zhihu.com/p/146701948

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 上一篇為: Osris:Synopsys基本概念(1/3)?zhuanlan.zhihu.com 緊接著介紹相關(guān)概...
    我喜歡唱跳rap打籃球閱讀 1,143評論 0 1
  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi閱讀 7,872評論 0 10
  • 表情是什么,我認(rèn)為表情就是表現(xiàn)出來的情緒。表情可以傳達(dá)很多信息。高興了當(dāng)然就笑了,難過就哭了。兩者是相互影響密不可...
    Persistenc_6aea閱讀 129,872評論 2 7
  • 16宿命:用概率思維提高你的勝算 以前的我是風(fēng)險厭惡者,不喜歡去冒險,但是人生放棄了冒險,也就放棄了無數(shù)的可能。 ...
    yichen大刀閱讀 8,154評論 0 4

友情鏈接更多精彩內(nèi)容