clock sense和analysis mode


PrimeTime會自動track clock tree中的inverter和buffer,從而得到每個register的clock sense。

如果clock tree中,只有buffer和inverter,到達register clock的clock signal可以表示為"unate"。

positive unate:rising edge的clock source引起register clock pin的rising edge。

negative unate:rising edge的clock source引起register clock pin的falling edge。

clock被PT評斷為non-unate的情況:

異或邏輯中,clock unate的極性跟另一個input有關,PT認為是一個non-unate的信號。

PrimeTime認為pulse generator的輸出不是unate。

 

在non-unate的clock network中,可以通過命令set_clock_sense來設置需要分析的clock的sense。

如果對一個unate的clock,使用這個命令,sense與實際的sense不一致時,PrimeTime產生一個error。

set_clock_sense -positive -clock [get_clocks CLK] [get_pins mux1.z]----------只有positive sense的clock傳遞過去。

-clock來指定pin上的clock,一個pin上可能有多個clock source。

 

set_clock_sense -stop_propagation +timing arc 表示clock在這個timing arc上, physically上不會進行propagate。

 

set_clock_sense -logical_stop_propagation 表示clock可能會作為data繼續進行propagate,但是不會作為

clock進行分析。

set_clock_sense -logical_stop_propagation -clocks CLK U3/A

 

pulse clock:一些短的pulse,它的rising和falling edge都由一個clock的同一個edge來trigger。

pulse clock的定義可以由一個pulse generator cell/create_generated_clock/set_clock_sense

-edge {1 1 3}表示第一個上升沿和下降沿都是1時刻,3時刻是下一個上升沿。

 

在半導體設備中,process/temperature/voltage對器件性能影響很大,在PrimeTime中,通過命令

set_operating_conditions來設置operate condition,(process, temperature, voltage)

PrimeTime提供的三種analysis mode;

1)single operating mode,  launch clock,data基於該condition的max,capture clock基於該condition的min.

2)best-case/worst-case mode,對於setup check,使用worst case,對於hold check,使用bese-case

                                              相同點:launch clock,data基於該condition的max,capture clock基於該condition的min.

                                              不同點:使用兩個condition。

3)On-Chip-Varient mode,允許同一個path在進行setup和hold check時,可以使用不同的PVT(operating mode)

                                               相同點:對於setup mode,launch clock和data使用max delay,capture clock使用min delay。

                                               不同點:但是max delay和min delay的condition是不同的

                                               相同點:對於hold mode,launch clock和data使用min delay,capture clock使用max delay。

                                               不同點:但是max delay和min delay的condition是不同的

在一個minimum-maximum的analysis中,這個minimum和maximum的值可以是:

1)Input and Output external delays

2)Port wire load model/Net wire load model

3)Delays annotated form Standard Delay Format(SDF)

4)Port Fanout number

5)Net capacitance/resistance

6)Clock latency and Clock transition time

7)Input port driving cell

在計算maximum時,PT使用longest path, worst-case operating conditions, longest transition times, maximum cell delays

Net delay value的值,可以直接通過兩個sdf的文件來標識,也可以讓PT基於不同的operating condition來計算。

 

Best-case/Worst-case相對於Single operating condition來說,只是節約了時間,並沒有加強約束。

但是OCV的結果會更加悲觀。

Worst-case(data delay最大),用於檢查setup check,Best-case(data delay最小),用於檢查hold check。

但是data端用Worst case,capture clock端用Best case只能用OCV來分析。

OCV(On chip varient):由於cell位置的不同,在制造過程中,而帶來的cell/net的uncertainty。

OCV在CTS之前,ideal clock network中,可以用set_clock_uncertainty來建模 

                       在CTS之后,用propagated clock latency來建模

 

使用bc-wc進行時序分析時的delay信息來源:

1)從兩個SDF files中annotate delay;  讀取兩個sdf文件或者一個sdf文件中有min/max信息

read_sdf  -analysis_type bc_wc my_design.sdf(讀取sdf中的max/min兩種數值)

2)讓PrimeTime自己計算delay;  需要設置兩個operating condition來進行計算

set_operating_conditions -min BCCOM -max WCCOM

 

OCV通過用兩種極端的condition來計算最worst的情況,

還有一種set_derate的情況,也可以用來分析更worst的情況,人工增加某段延時,或者某個path的延時。

set_timing_derate -early 0.8 -late 0.2

-early設置path中的最短路徑,-0.8表示減少20%的mergin,如setup check中的capture clock

                                                                                   hold check中的data path

-late設置path中的最短路徑,-1.2表示增加20%的mergin,如setup check中的data path

                                                                                   hold check中的capture clock

set_timing_derate -net_delay -early 0.8 [get_cells hier_cell]

report_timing_derate -net -early 0.80

report_timing_derate [get_cells U*]

報告出design中derate的情況

 

set_operating_conditions -analysis_type on_chip_variation -min BEST -max WORST

report_timing -delay_type min

report_timing -delay_type max

 

Clock Reconvergence Pessimism removal(CRPR)

在OCV模式下的,更精確的一種限制,對於兩條共享一段physical segment的path,同時被設置了min delay

path和max delay path。通過CRPR來消除這種不合理的path segment

 

在primetime中,通過timing_remove_clock_reconvergence_pessimism來設置。

這時的report,slack會更加合理。

 

 

通過set_pulse_clock_min_width和set_pulse_clock_max_width來對clock pulse的width進行約束。

對於level-high的pulse width check,Primetime用rising edge的max delay和falling edge的min delay來進行檢查

在OCV模式下,也需要設置CPRP,來使得check更加合理。

 


免責聲明!

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



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