Synopsys TCL
03 Feb 2020 2139字 8分 次 Tcl Synthesis打赏作者 CC BY 4.0 (除特别声明或转载文章外)
1 前言
根据邸志雄老师的芯动力——硬件加速设计方法 课程中“掌握Synopsys TCL语言”一节记录。
2 TCL組成
对于IC设计来讲,TCL语言分为三个部分:
- TCL本身的内建指令;
- Synopsys公司EDA工具自定义的指令;
- 用户自定义指令。
3 object
和SystemVerilog类似。
object分为以下六类:
- design;
- cell;
- ports;
- pins;
- nets;
- clocks。
各含义见Design Compiler入门的第二节。
4 attributes
attributes是objects的属性。各个object有以下属性:
- ports:
- diretion;
- driving_cell_rise;
- load;
- max_capacitance;
- 等等;
- cell:
- dont_touch;
- is_hierarchical;
- is_mapped;
- is_sequential;
- 等等。
下面举例说明。
4.1 port
查看design中有没有port叫做CLK:
shell> get_port CLK
查看design中所有的port:
shell> get_port *
查看design中C开头的port:
shell> get_port C*
属性direction:用来保存port的方向:
shell> get_attribute [get_port A] direction
得到所有方向是input的port:
shell> get_port *-f "direction==in"
4.2 cell
和PORT类似。
属性ref_name用来保存起map到的refence cell名称:
shell> get_attribute [get_cells -h U3] ref_name
得到所有ref_name是INV的cell:
shell> get_cells *-f "ref_name==INV"
4.3 nets
查看design当中有多少个net(TCL本身指令)
shell> llength [get_object_name[get_nets *]]
或(Synopsys TCL指令):
shell> sizeof_collection [get_nets *]
属性owner_net:用来保存与之相连的net的名称:
shell> get_arrtibute [get_pins U2/A] owner_net
属性full_name:用来保存net的名称:
shell> get_attribute [get_nets INV0] full_name
NET和PORT之间的联系:
shell> get_nets -of [get_port A]
其他和PORT类似。
4.4 pins
查看design当中有哪些pin的名字叫Z:
shell> get_pins */Z
查看design当中有哪些pin的名字以Q开头:
shell> get_pins */Q*
告辞