静态时序分析——On-chip Variation
OCV(on-chip variation)是指在同一個(gè)芯片上, 由于制造工藝和環(huán)境等原因?qū)е滦酒细鞑糠痔卣鞑荒芡耆粯?#xff0c;從而造成偏差,對(duì)時(shí)序分析造成影響。這些偏差對(duì)互聯(lián)線和cell的延時(shí)都是有影響的。
由于OCV對(duì)延時(shí)有影響,那么我們?cè)谶M(jìn)行時(shí)序分析時(shí)需要將這些OCV效應(yīng)考慮進(jìn)來(lái)。在STA中,通過(guò)對(duì)不同的時(shí)序路徑添加derate系數(shù),來(lái)完成對(duì)OCV的建模,將OCV效應(yīng)納入分析。
我們以下圖電路為例進(jìn)行說(shuō)明:
進(jìn)行setup check時(shí),最差的情況為:launch clock path 和data path由于OCV的原因,延遲增加到最大;于此同時(shí),capture clock path 由于OCV的原因,延遲減小到最小。此時(shí),對(duì)建立時(shí)間的檢查最為嚴(yán)苛。
如過(guò)我們不考慮OCV的影響,進(jìn)行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,即最小時(shí)鐘周期為5.49ns。
接下來(lái)我們將OCV納入考慮,為路徑和cell設(shè)置不同的derate系數(shù)。
我們可以通過(guò)set_timing_derate來(lái)設(shè)置derate系數(shù)
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長(zhǎng)路徑延時(shí)如setup check 中的launch clock path和data path,hold check中的capture?clock path可以使用-late選項(xiàng)來(lái)設(shè)置
短路徑延時(shí)如setup check 中的capture clock path,hold check中的launch clock path和data path可以使用-early選項(xiàng)來(lái)設(shè)置
使用-net_delay和-cell_delay來(lái)設(shè)置線網(wǎng)和cell的延時(shí)
為launch clock path和max data path增加系數(shù)1.2,為UFF1增加系數(shù)1.1,為capture clock path 增加系數(shù)0.9,這樣,我們?cè)倏纯磗etup 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,即最小時(shí)鐘周期為7.171ns。可以看到,在加入最差情況的OCV后,電路能運(yùn)行的時(shí)鐘頻率明顯下降了。
? ? ? ? 但是在上面的計(jì)算中,我們還是可以發(fā)現(xiàn)一個(gè)問(wèn)題,即common clock path即屬于launch clock path,也屬于capture clock path,所以在計(jì)算中,我們對(duì)其使用了不同的derate系數(shù)進(jìn)行計(jì)算:在計(jì)算arrival time中,系數(shù)為1.2;在計(jì)算required time中,系數(shù)為0.9,這樣會(huì)讓我們的分析更為悲觀,電路性能更差。而在真實(shí)的情況中,common?clock path的PVT只有一個(gè),不可能同時(shí)有兩個(gè)derate系數(shù),所以我們會(huì)進(jìn)行CPPR操作。
CPPR(Clock Path Pessimism Removal)或者CRPR(Clock Reconvergence Pessimism Removal),中文名“共同路徑悲觀去除”。它的作用是去除clock path上的相同路徑上的悲觀計(jì)算量,即我們上面提到的問(wèn)題。我們將common point定義為時(shí)鐘樹上共同部分最后一個(gè)cell的output pin。則定義CPP因子為:
CPP=LatestArrivalTime@CommonPoint-EarliestArrivalTime@CommonPoint
我們進(jìn)行CPPR后再來(lái)進(jìn)行一次計(jì)算:
LatestArrivalTime@CommonPoint=1.2*1.2=1.44ns
EarliestArrivalTime@CommonPoint=1.2*0.9=1.08ns
CPP=1.44-1.08=0.36ns
則clock_period=7.171-0.36=6.811ns
可以看到,電路的運(yùn)行時(shí)鐘頻率變好了一點(diǎn),但對(duì)于未考慮OCV來(lái)說(shuō),整個(gè)運(yùn)行時(shí)鐘頻率還是降低了。
我們可以來(lái)看看時(shí)序報(bào)告
? ? ??
?
說(shuō)完setup check,我們來(lái)看看OCV對(duì)hold check的影響。
進(jìn)行hold check時(shí),最差的情況為:launch clock path 和data path由于OCV的原因,延遲減小到最小;于此同時(shí),capture clock path 由于OCV的原因,延遲增加到最大。此時(shí),對(duì)保持時(shí)間的檢查最為嚴(yán)苛。我們進(jìn)行同樣的分析,可以看到基本相同的結(jié)果。
其時(shí)序報(bào)告如下:
???
總結(jié)
以上是生活随笔為你收集整理的静态时序分析——On-chip Variation的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: SG函数(hdu1847)
- 下一篇: Number Sequence (KMP