heyuanpi

Timing path相关概念解析

0
阅读(9897)

timing path的概念

从register clock/input port开始,经过一些combinational logic,终止在register data/output port,组合一下共有四种类型的path:in2reg,in2out,reg2reg,reg2out

===================================================================

timing analysis的相关概念

工具都是以path group为单位来分析和报告timing的。DC综合时可以对每个path group指定weight来做优化。

Timing Path Groups and Types
•    Timing paths are grouped into path groups according to the clock associated with the endpoint  of the path.
•    There is a default path group that includes all asynchronous paths.
•    There are two timing path types : max and min.
    •Path type: max        - reports timing paths that check setup violations.
    •Path type: min        - reports timing paths that check hold violations.
•    Design Compiler works primarily on the most critical path in each path group.

首先,每个create_clock会创建一个对应的path group;

另外,工具有一些default的path group,如PT中的clock_gating_default**:(path以combinational element为终点)、async_default*:(path以async的preset和clear为终点)、*default*:(剩下的所有clock,如以output为终点的clock)

最后,也可以在SDC中自己定义path group:  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的个数

Type of paths: -path_type full -delay_type max

Amout 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

图1

==================================================================

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...

图2


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