OCV全稱是on chip variation瘦穆,指的是在同一片wafer上,因為片上工藝的誤差遍膜,導(dǎo)致不同位置的chip性能不一樣碗硬。另外對于同一塊chip瓤湘,不同位置上的同一類cell的性能也會有差異。這些差異所影響最大的就是timing相關(guān)的東西恩尾,delay弛说、transition什么的都會有所影響。為此我們引入OCV的概念翰意,用來在設(shè)計階段模擬這些片上誤差木人。
舉一個具體的例子讓大家更好理解OCV的概念,比如一個cell的lib中的延時是10ns冀偶,同樣的電路醒第,同樣的input和output,這顆cell做出來的實際延時可能是9.9ns进鸠,也可能是10.1ns稠曼,一般不會剛剛好就是某一個確定的數(shù)值,而是會在10ns左右浮動客年。注意這個浮動并不是PVT影響的霞幅,純粹是片上工藝偏差所帶來的,就是說在同一個corner下量瓜,因為有OCV司恳,一個cell的delay就不是固定的值。這對我們timing的分析至關(guān)重要绍傲,如果不考慮OCV的影響扔傅,所分析出來的timing結(jié)果會過于樂觀。而我們一般signoff的時候都希望芯片在最悲觀的時候還可以正常工作才行烫饼。
為此猎塞,最傳統(tǒng)、樸素的想法就是給chip中的所有cell加上一個derate值枫弟,所有的delay都根據(jù)這個derate值來縮放邢享。什么意思呢,比如說在算setup檢查的時候淡诗,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)驗寸宵,也可能是經(jīng)過復(fù)雜的模擬得出的崖面。
好了,到這里已經(jīng)介紹完了OCV的基本內(nèi)容了梯影,其中蘊(yùn)含的基本思想已經(jīng)介紹完畢巫员。但這是遠(yuǎn)遠(yuǎn)不夠的,因為現(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時是用delay的分布來加加減減,最終得出的整條path delay也對應(yīng)一個分布聋迎,在最悲觀的情況下脂矫,如果需要取最大delay就用這個分布偏大的某個點,一般是mean值加3倍sigma霉晕;最小delay就是mean值減3倍sigma庭再。而現(xiàn)在,最新的技術(shù)已經(jīng)不再用標(biāo)準(zhǔn)的高斯分布來模擬了牺堰,會再在原高斯分布的基礎(chǔ)上加一定偏移量拄轻,得出一個不對稱的分布來模擬delay。
有關(guān)POCV的內(nèi)容不是三言兩語就能講完的伟葫,之后可能會再寫專門介紹POCV恨搓。
微信公眾號:偉醬的芯片后端之路。