Timing path:從register clock/input port開始,經過一些combinational logic,終止在register data/output port。
PT以path grouping為單位來分析和報告timing。
DC,每個path group可以指定一個weight,來盡力做design optimizaiton,但是這個weight在PT中並沒有用。
每個create clock命令都會生成一個對應的path group。
PT中還有自己的default group:clock_gating_default**:path以combinational element為終點。
async_default*:path以async的preset和clear為終點。
*default*:剩下的所有clock,如以output為終點的clock。
也可以自己定義group_path:group_path -name out1bus -to [get_ports OUT_1*] 然后可以報告該path group的timing。
report_timing命令中的屬性:
Number of paths:-nworst 顯示每個end point最worst的N條path,-max_paths 顯示整個group的worst path的個數
Types of paths:-path_type full -delay_type max
Amount of detail
Startpoints,endpoint
-path_type full_clock/full_clock_expanded 顯示完整的data path和clock path
full 顯示完整data path
short 只顯示一條data path的startpoint和endpoint
-transition_time 報告路徑的transition time
-capacitance 報告路徑的capacitance
對於exception timing的rpt:
1)-exceptions dominant 報告路徑中的exception constrained
2)-exceptions overridden 報告路徑中被覆蓋的exception constrained
3)-exceptions all 報告所有的exception path,包括unconstrained startpoint 和unconstrained endpoint
exceptions path的三種屬性:方便進行filter
dominant_exception timing path的類型:false path, min_delay, max_delay, multicycle_path
endpoint_unconstrained_reason:no_capture_clock, dangling_end_point(floating point no timing constraints), danin_of_disable(disable timing arc)
startpoint_unconstrained_reason:no_launch_clock,dangling_start_point,fanout_of_disable
filter_collection $path {defined(dominant_exception)}
filter_collection $path {undefined(dominant_exception)}
get_timing_path更好的刪選timing path
set x [get_timing_paths -from A -through B -to C]
report_timing $x -exceptions all
Path Sepecification Methods
-from $startpoint
-to $endpoint
-through
report_timing -from [get_clocks ...] -though $startpoint
report_timing -through $endpoint -to [get_clocks ...]
report_timing -through {B1 B2}
更加精細的方式:
-rise_from/-rise_to
-fall_from/-fall_through...
set_false_path -to [get_clocks CLK] :取以CLK為終點的timing path,data端的FF的clock是CLK
path:a,b,c,d有效
set_false_path -rise_from [get_clocks CLK] :以CLK為起點,且data端以clock的rising edge來觸發
path:a,d有效
report_timing -rise_from [get_clock clk] -nworst 100
對於delay的report:
report_delay_calculation -from BLK1/A -to BLK1/z