DC学习(4)关于objects
一:什么是object?对象
1:分类
包括六类:Design,Clock,Port,Pin(cell里面的引脚),Cell(例化的模块),Net(模块与模块之间的互连线)
2:电路图看
3:design可以转换为cell,
4:objects名字相同时
加在net上,5个单位的电容会覆盖原电容值;加在port上,5个单位电容与原电容值x并联,总电容值为(5+x)个单元。
改进:
set_load 5 [get_net sum]:加载在net上
三:相关命令
1:get_*
返回一组objects;使用echo返回objects的句柄
set_load 5 [get_ports addr_bus*] *是模式匹配里多个的意思,以addr_bus开头的n个port
set_load 6 [get_ports "Y??M Z*"] ?是模式匹配里匹配前面字符0个或者1个的意思
如果不存在,返回empty_collection
2:all_*
all_inputs
all_outputs
all_clocks
all_registers
3: remove_from_collectiion
从物集里去除某些集合
remove_from_collection [all_inputs] [get_ports CLK] #从所有inputs里去除CLK
add_to_collection $pci_ports [get_ports CTRL*] #在pci_ports里添加CTRL*
4:query_objects $pci_ports
query_objects $foo #得到集合的具体objects
5:sizeof_collection $pci_ports(大小)
6:echo
set foo [get_ports p*]
echp $foo #返回集合的句柄值
7:过滤器
filter_collection [get_cells *] "ref_name = ~AN* "
get_cells *-filter "don't_touch == true"
8:foreach
。
9:index_collection $pci_ports number
相当于求数组的某个number值
四:objects的属性
五:其他
1:综合时read源文件后,设置完顶层文件后,即可以使用上面命令
例如:
2:list与collection不同,list是用来存放用户定义的集合,collection是DC自己提取的东西
list:创建,访问
collection:创建访问
3:DC里的环境变量ENV
访问ENV变量:echo $env(DC_HOME)
get_unix_variable DC_HOME
getenv DC_HOME