关于objects
1、分类

2、包括六类:Design、clock、port、net(模块与模块之间的互连线)、cell(例化的模块)、pin(cell里面的引脚)

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_collection
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*]
echo $foo #返回集合的句柄值
7、过滤器
filter_collection [get_cells ] "ref_name = ~AN "
get_cells *-filter “don’t_touch == true”
8、index_collection $pci_ports number
相当于求数组的某个number值
objects的属性:

基本时序约束:
1、分类:时钟的约束(寄存器与寄存器之间)、输入延时的约束、输出延时的约束

2、时序约束对电路的要求:
- 综合工具现在不能很好地支持异步电路,甚至不支持异步电路;
- single clock,single cycle,单个时钟,单延触发,不要一会posedge,一会negdege
3、路径:
- 起点:输入端口(input port)、触发器或寄存器的时钟引脚
- 输出端口:输出端口、时序器件的除时钟引脚外的所有输入引脚

具有四条路径: - 从输入端口A到FF1的D端口
- 从时钟clk到FF2的D端口
- 从时钟clk到FF2的输出端口
- 从输入端口A到FF2的输出端口
路径的特性是存在延时,也就是说,路径1、2、3、4都存在有延时,延时最长的一条路径称为关键路径。
满足建立时间的约束:为了满足FF2建立时间的要求,数据从FF1的clk端口到达FF2的D端口+FF2的建立时间不能超过时钟周期,也就是说(触发器

本文详细介绍了DC(Design Compiler)中关于objects的操作,包括分类、属性以及各种命令的使用。同时,深入探讨了时序约束,特别是时钟约束、输入延时、输出延时和组合逻辑路径的约束方法,强调了满足建立时间和保持时间的重要性。文章还提到了时钟树、时钟属性,如时钟偏移、抖动、转换时间和延时,并讲解了如何在DC中进行时钟约束。
最低0.47元/天 解锁文章
2880





