一、DC的默认行为
默认情况下,DC会根据path的capture clock来将path进行分组(没有clock的被分到default组)。然后DC会基于每个group来进行优化,优化始终对最差的path进行,直到满足以下任一条件时终止优化:
- group内的所有path均满足时序要求;
- group内最差的那条path已经优化不动了。
从上面的描述我们可以看到,虽然最差的path已经无力回天了,但是同一个group内次差的path仍然有优化的空间,但是DC却不去优化了。
因此,我们有时需要通过设置path_group干预优化行为:包括修改path_group的分组、优化非最差路径、设置权重等手段。
二、设置path_group
group_path -name clk -critical_range 0.20 -weight 5
group_path -name INPUTS -from [all_inputs]
group_path -name OUTPUTS -to [all_outputs]
group_path -name COMBO -from [all_inputs] -to [all_outputs]
-
-critical_range:以最差的path为参考,把slack在一定范围内的path进行优化。一般设置为时钟的10%即可。
- -weight:花费多少力气在这个group上,取值0~100(float),数值越大,花费力气越大。官方lab建议取值1、2、5三档即可。
三、path_group的其它操作
- 报告当前设置的path_group
- 删除path_group