Set_path_margin 命令介绍
Set_path_margin命令对某条路径指定一个margin来调整required time,该命令的option如下:
set_path_margin
-from|-rise_from|-fall_from <from_list>
-through|-rise_through|-fall_through <through_list>
-to|-rise_to|-fall_to <to_list>
-rise | -fall
-setup | -hold
-reset_path
-increment
<margin_value> # 正值表示加严,负值表示放松
(1)from|-rise_from|-fall_from <from_list>,指定timing path的start point。Startpoint可以是input/inout port,时序单元及其ck pin,latch的data pin以及时钟。-from指定timing path的起点;-rise_from指定timing path的上升沿起点;-fall_from指定timing path的下降沿起点。同一条命令中3个option只能选择其一。
(2)-through|-rise_through|-fall_through <through_list>,指定timing path的through point。Through point可以是port,pin,cell以及net。-through指定timing path的through点信号的上升和下降沿;-rise_through指定timing path的through点信号的上升沿;-fall_through指定timing path的through点信号的下降沿。
(3)-to|-rise_to|-fall_to <to_list>,指定timing path的end point。End point可以是output/inout port,时序单元及其data pin以及时钟。-to指定timing path的终点;-rise_to指定timing path的上升沿终点;-fall_to指定timing path的下降沿终点。
(4)-rise|-fall,只设置终点信号是上升沿或下降沿的时序路径为时序调整的路径。如果这两个选项都没有指定,则设置终点信号是上升沿和下降沿的时序路径为时序调整的路径。
(5)-setup|-hold,指定时序调整应用于setup检查或hold检查。
(6)-reset_path,移除某条路径的时序调整。
(7)-increment,指定设置多个path margin路径而不会被覆盖掉。
set_path_margin -from [get_clocks CLK] -through FF1 -to FF2 -setup -0.050
set_path_margin -from [get_clocks CLK] -through FF1 -to FF2 -hold 0.050
上述命令的timing report如下图所示,对setup而言,给required time加了50ps的margin,也即放松了setup check;对hold而言,给required time加了50ps的margin,也即加严了hold check。
Startpoint: FF1
Endpoint: FF2
Path Type: max
Point Incr Path
-----------------------------------------------------------
clock CLK (rise edge) 0.000 0.000
clock network delay (propagated) 0.300 0.300
FF1/CK 0.000 & 0.300 r
FF1/Q 0.030 & 0.330 r
FF2/D 0.010 & 0.340 r
data arrival time 0.340
clock CLK (rise edge) 0.000 0.000
clock network delay (propagated) 0.350 0.350
path pargin 0.050 0.400
clock uncertainty -0.050 0.350
FF2/CK 0.350 r
library setup time 0.005 0.355
data required time 0.355
------------------------------------------------------------
data required time 0.355
data arrival time -0.340
------------------------------------------------------------
slack (MET) 0.015
Startpoint: FF1
Endpoint: FF2
Path Type: min
Point Incr Path
-----------------------------------------------------------
clock CLK (rise edge) 0.200 0.000
clock network delay (propagated) 0.150 0.350
FF1/CK 0.000 & 0.350 r
FF1/Q 0.020 & 0.370 r
FF2/D 0.010 & 0.380 r
data arrival time 0.380
clock CLK (rise edge) 0.000 0.000
clock network delay (propagated) 0.200 0.200
path pargin 0.050 0.250
clock uncertainty 0.030 0.280
FF2/CK 0.280 r
library setup time 0.005 0.285
data required time 0.285
------------------------------------------------------------
data required time 0.285
data arrival time -0.380
------------------------------------------------------------
slack (MET) 0.095
The dominant exceptions are:
From Through To Setup Hold
CLK FF1 FF2 max_margin=-0.050 min_margin=0.050