OCV全稱是on chip variation,指的是在同一片wafer上,因?yàn)槠瞎に嚨恼`差,導(dǎo)致不同位置的chip性能不一樣。另外對于同一塊chip,不同位置上的同一類cell的性能也會有差異。
這些差異所影響最大的就是timing相關(guān)的東西,delay、transition什么的都會有所影響。為此我們引入OCV的概念,用來在設(shè)計(jì)階段模擬這些片上誤差。
舉一個具體的例子讓大家更好理解OCV的概念,比如一個cell的lib中的延時(shí)是10ns,同樣的電路,同樣的input和output,這顆cell做出來的實(shí)際延時(shí)可能是9.9ns,也可能是10.1ns,一般不會剛剛好就是某一個確定的數(shù)值,而是會在10ns左右浮動。
注意這個浮動并不是PVT影響的,純粹是片上工藝偏差所帶來的,就是說在同一個corner下,因?yàn)橛蠴CV,一個cell的delay就不是固定的值。
這對我們timing的分析至關(guān)重要,如果不考慮OCV的影響,所分析出來的timing結(jié)果會過于樂觀。而我們一般signoff的時(shí)候都希望芯片在最悲觀的時(shí)候還可以正常工作才行。
為此,最傳統(tǒng)、樸素的想法就是給chip中的所有cell加上一個derate值,所有的delay都根據(jù)這個derate值來縮放。什么意思呢,比如說在算setup檢查的時(shí)候,launch path要delay最大,capture path要delay最小,我們就放大launch path上所有cell的delay值,減小capture path上所有cell的delay值。也就是說假設(shè)derate設(shè)為0.1,那么launch path和data path所有cell的delay要在原來lib的基礎(chǔ)上乘1.1,capture path上的cell要乘0.9。
這樣做出來的setup檢查才足夠悲觀,如果要是hold檢查則加的derate正相反。一般來說,我們會分別定義setup和hold檢查所用的derate值,而其中的early derate和late derate也會分別定義,并且對于每一種情況,clock path上的derate和data path上的derate也會分別定義。
具體的值是怎么來的我不知道,可能是經(jīng)驗(yàn),也可能是經(jīng)過復(fù)雜的模擬得出的。
好了,到這里已經(jīng)介紹完了OCV的基本內(nèi)容了,其中蘊(yùn)含的基本思想已經(jīng)介紹完畢。但這是遠(yuǎn)遠(yuǎn)不夠的,因?yàn)楝F(xiàn)在用的OCV已經(jīng)不再是傳統(tǒng)的直接加上一個derate那么簡單了,隨著工藝的進(jìn)步,人們后來又用了AOCV,目前又是主流POCV/SOCV。我這里就快速簡要介紹一下這兩種模式。
AOCV是advanced OCV,在傳統(tǒng)OCV的基礎(chǔ)上加入了cell級數(shù)和距離的考量,認(rèn)為一個cell級數(shù)越深,和前一級cell距離越大,derate相應(yīng)越大,反之derate越小。等于說AOCV模式會根據(jù)具體的design來動態(tài)調(diào)整derate值。
而POCV是認(rèn)為所有的delay都是一個正態(tài)分布,我們算path的delay時(shí)是用delay的分布來加加減減,最終得出的整條path delay也對應(yīng)一個分布,在最悲觀的情況下,如果需要取最大delay就用這個分布偏大的某個點(diǎn),一般是mean值加3倍sigma;最小delay就是mean值減3倍sigma。
而現(xiàn)在,最新的技術(shù)已經(jīng)不再用標(biāo)準(zhǔn)的高斯分布來模擬了,會再在原高斯分布的基礎(chǔ)上加一定偏移量,得出一個不對稱的分布來模擬delay。
-
OCV
+關(guān)注
關(guān)注
0文章
25瀏覽量
12507 -
POCV
+關(guān)注
關(guān)注
1文章
6瀏覽量
12436 -
PVT
+關(guān)注
關(guān)注
0文章
12瀏覽量
3910
發(fā)布評論請先 登錄
相關(guān)推薦
評論