STA分析(七) sdc

STA分析前的环境设置,包括:setup clocks,specifying IO characteristics

1)定义一个master clock:create_clock -name .. -period .. -waveform .. [get_ports .. ]

   推荐clock的name与pin的名字相同,period的单位一般是ns,waveform的第一个参数表示上升沿的发生时间。默认是{0, period/2}.

   关于clock_transition的定义,如果clock定义为PLL的output,通过set_clock_transition来定义。

                                          如果clock定义为input pin,通过set_input_transition来定义。

         用来在CTS之前,确定clock的delay,在CTS之后,不再具有参考意义。

   关于clock_uncertainty的定义,一般由clock的jitter和slew来组成。对于-setup来说表示clock向前的偏移量,对于-hold来说表示clock向后的偏移量。

         set_clock_uncertainty -setup 0.2 [get_clocks CLK]  都使的-setup和-hold的check,余量更少。

         set_clock_uncertainty -hold 0.05 [get_clocks CLK]

   关于clock_latency的定义,分为两部分:network latency和source latency。其中network latency表示从clock definition到FF的clock 的clock pin的

         path,source latency 表示从clock source 到clock definition的path。其中在CTS之后,network latency由set_propagated_clock来代替。

         总体的clock_latency等于network_latency+source_latency。

         set_clock_latency 1.322 (-source) -max [get_clocks CFG_CLK]。

若有其他的clock,并没有相位差别的,最好定义为generated_clock,这样的好处,计算clock_latency时,source_latency也

         能很好的继承下来。generated_clock的source_latency表示从master_clock的definition到generated clock的definition的path。

          create_generated_clock -name PCLK2 -source [get_ports PCLK] -multiply_by(devided_by) 2 [get_pins UCLK/Q]

2)Timing path:valid start_point:input port和FF的clock input。

                       valid end_point:output port和FF的data input。

         所以一个valid的data_path是:从input port到FF的data input。

                                                  从input port到output port。

                                                  从FF的clock input到FF的data input。

                                                  从FF的clock input到output port。

          STA中所有的Timing path都由endpoint的clock来定义,如若没有,则为default path group。STA中的analysis和report都以clock为单位。

3)model external attributes:

         对于input delay,需要定义set_driving或set_driving_cell来确定驱动能力,也就是interconnect或其他期间的电阻值。value越小,驱动能力越强。

           set_driving_cell  -lib_cell  BUFFD4  -library tech90 [get_ports testmode3]

           或者可以通过set_input_transition 0.25 [get_ports SD_DIN*]来定义。

           以上三种方法都是为了定义在input path中,第一个cell的delay。

        对于output delay,通过定义set_load ,来定义output ports的cap load,从而来确定output中的delay。 

           set_load  -pin_load 0.007 [get_ports {shift_wire[31]}]

4)STA中的其他DRC:set_max_transition/set_max_capacitance/set_max_fanout/set_max_area。对象可以是pin/net/port

5)时序例外的分析:set_case_analysis:针对某个pin/port上的constant。应用在SCAN logic 和clock的 multiplexers中。

                          set_disable_timing:应用在clock的 multiplexers中。set_disable_timing -from S -to Z [get_cells UMUX0]

                                                       从select端到output端。

                          set_max_delay 1.2 -from [get_clocks SYS_CLK] -to [get_clocks CFG_CLK]:

                          set_max_delay 1.2 -from [get_clocks SYS_CLK] -to [get_clocks CFG_CLK]:规定特定path上的constraint,可以分割timing

                                                                                                                                        arc。

对于multiplexer有两个clock的输入引脚,set_false_path在两个输入时钟间。

posted @ 2015-07-13 17:54  _9_8  阅读(4141)  评论(0编辑  收藏  举报