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在兩個輸入時鍾間。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM