OCV(on-chip variation)是指在同一個晶片上, 由于制造技術和環境等原因導緻晶片上各部分特征不能完全一樣,進而造成偏差,對時序分析造成影響。這些偏差對互聯線和cell的延時都是有影響的。
由于OCV對延時有影響,那麼我們在進行時序分析時需要将這些OCV效應考慮進來。在STA中,通過對不同的時序路徑添加derate系數,來完成對OCV的模組化,将OCV效應納入分析。
我們以下圖電路為例進行說明:
進行setup check時,最差的情況為:launch clock path 和data path由于OCV的原因,延遲增加到最大;于此同時,capture clock path 由于OCV的原因,延遲減小到最小。此時,對建立時間的檢查最為嚴苛。
如過我們不考慮OCV的影響,進行setup check,則情況如下:
arrival time = 1.2+0.8+5.2=7.2ns
required time = 1.2+0.86-0.35+clock_period=1.71+clock_period
那麼由于required time-arrival time>=0則clock_period>=5.49,即最小時鐘周期為5.49ns。
接下來我們将OCV納入考慮,為路徑和cell設定不同的derate系數。
我們可以通過set_timing_derate來設定derate系數set_timing_derate -early 0.9 set_timing_derate -late 0.9 set_timing_derate -cell_delay -late 0.9 set_timing_derate -net_delay -late 0.9
長路徑延時如setup check 中的launch clock path和data path,hold check中的capture clock path可以使用-late選項來設定
短路徑延時如setup check 中的capture clock path,hold check中的launch clock path和data path可以使用-early選項來設定
使用-net_delay和-cell_delay來設定線網和cell的延時
為launch clock path和max data path增加系數1.2,為UFF1增加系數1.1,為capture clock path 增加系數0.9,這樣,我們再看看setup check:
arrival time = (1.2+0.8+5.2)*1.2=8.64ns
required time = (1.2+0.86)*0.9-0.35*1.1+clock_period=1.469+clock_period
那麼由于required time-arrival time>=0則clock_period>=7.171,即最小時鐘周期為7.171ns。可以看到,在加入最差情況的OCV後,電路能運作的時鐘頻率明顯下降了。
但是在上面的計算中,我們還是可以發現一個問題,即common clock path即屬于launch clock path,也屬于capture clock path,是以在計算中,我們對其使用了不同的derate系數進行計算:在計算arrival time中,系數為1.2;在計算required time中,系數為0.9,這樣會讓我們的分析更為悲觀,電路性能更差。而在真實的情況中,common clock path的PVT隻有一個,不可能同時有兩個derate系數,是以我們會進行CPPR操作。
CPPR(Clock Path Pessimism Removal)或者CRPR(Clock Reconvergence Pessimism Removal),中文名“共同路徑悲觀去除”。它的作用是去除clock path上的相同路徑上的悲觀計算量,即我們上面提到的問題。我們将common point定義為時鐘樹上共同部分最後一個cell的output pin。則定義CPP因子為:
[email protected]@CommonPoint
我們進行CPPR後再來進行一次計算:
[email protected]=1.2*1.2=1.44ns
[email protected]=1.2*0.9=1.08ns
CPP=1.44-1.08=0.36ns
則clock_period=7.171-0.36=6.811ns
可以看到,電路的運作時鐘頻率變好了一點,但對于未考慮OCV來說,整個運作時鐘頻率還是降低了。
我們可以來看看時序報告
說完setup check,我們來看看OCV對hold check的影響。
進行hold check時,最差的情況為:launch clock path 和data path由于OCV的原因,延遲減小到最小;于此同時,capture clock path 由于OCV的原因,延遲增加到最大。此時,對保持時間的檢查最為嚴苛。我們進行同樣的分析,可以看到基本相同的結果。
其時序報告如下: