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