定义
设计的时序路径分组,叫做path groups。
默认,每个时钟域对应一个path group。
特点
- DC综合时序优化,每个path group,先优化关键路径(即最差的时序路径),然后才会优化接下来最差的时序路径。
- 关键路径找不到优化解决方案,就会报告时序违反;也就是说关键路径没有达到时序满足,不会优化其它违反的时序路径。
意义
利用group_path命令,可以控制时序优化的目标范围。
比如最开始不确定input_delay
的需求,可以设置input-to-register paths
为一个单独的path group;从而使得DC综合工具可以时序优化register-to-register paths
。下例,分成四组时钟域CLK下的reg-to-reg/input_to_reg/reg_to_output/input_to_output
。
The command for grouping paths is group_path. For example,
dc_shell> create_clock -name CLK -period 1.67 [get_ports CLK]
dc_shell> group_path -name INREG -from [all_inputs]
dc_shell> group_path -name REGOUT -to [all_outputs]
dc_shell> group_path -name INOUT -from [all_inputs] -to [all_outputs]
这样设置约束后,所有的input-to-register paths
和register-to-output paths
时序发生违反,都不会影响register-to-register paths
的路径时序优化。
相关命令
- report_timing,会分成相应的path group进行报告。
- report_path_group,会报告当前的path group。
- remove_path_group,会移除指定的path group。
- group_path可以设置权重,-weight,以达到重点优化指定的path group。默认权重都是1。
- group_path可以设置优先级,-priority,目的是有重合的path,根据priority决定隶属。如果不设置,按顺序靠前的path不会被后面的path所覆盖。
参考文档
- tcoug.pdf ,Synopsys Timing Constraints and Optimization User Guide