OCV_summary
? ? ? ? 工藝偏差自集成電路誕生之日起,就是一個無法規(guī)避的因素,芯片制造過程不比生個娃簡單,且每一個過程都極其精細(xì),即使極盡所能地控制制造過程的偏差,但隨著工藝進(jìn)步,工藝偏差對芯片性能的影響卻日漸凸現(xiàn)。為了模擬工藝偏差對芯片性能的影響,引入了On chip variation模型,40nm 之前簡單的flat derate模型基本可以覆蓋大部分情況,且不過于悲觀到不能接受。但進(jìn)入40 nm 之后flat derate 已不再是一個『經(jīng)濟(jì)』的模型,所以引入了更復(fù)雜的AOCV (Advanced OCV) 模型,考慮depth 跟 distance的影響,此時AOCV table的背后已有『統(tǒng)計學(xué)』的支撐,即所謂的SSTA (statistical staic timing analysis). 但限于runtime 當(dāng)今STA 默認(rèn)都是基于GBA (Graph Based Analysis) 進(jìn)行timing 分析,這就使得Depth 的計算并不精確,從而導(dǎo)致過于悲觀,如果用PBA?(Path?Based Analysis) 方式來計算Depth runtime又不能接受。于是進(jìn)入16nm 之后,一種新的OCV 模型開始被廣泛使用,C家稱之為SOCV (statistical OCV), S家稱之為POCV (Parametric OCV), 除了名字的差別,背后都是統(tǒng)計學(xué)都是正態(tài)分布,背后的算法也基本一致。
01
—
什么是Flat OCV?
Flat OCV使用一個固定的derate factor應(yīng)用于所有的cell/net。
這種OCV對setup有很大的pessimism,對hold可能會存在potential risk。這是因為Flat OCV和實際的silicon數(shù)據(jù)相比,logic path越長,pessimistic margin越大,對setup的影響越大;logic path越短,optimistic margin越大,對hold的影響越大。

02
—
如何設(shè)置Flat OCV?
Setup Timing Analysis:考慮最差情況,對capture clock path使用early timing derate,對launch clock path使用late timing derate,對data path使用late timing derate。

Hold Timing Analysis:考慮最差情況,對capture clock path使用late timing derate,對launch clock path使用learly timing derate,對data path使用early?timing derate。

03
—
什么是AOCV (SBOCV)?
AOCV:?Advanced On Chip Variation,Synopsys家叫法。
SBOCV:?Stage Based/Stage Best On Chip Variation,Cadence家叫法。
AOCV是一種偽隨機(jī)的統(tǒng)計方法,用來模擬variation (random and systematic variations),將derate值模擬為timing path的cell path depth和cell distance的函數(shù)。同一條timing path,不同的cell有不同的derate值,derate值一般通過一維或二維查找表得到。

random variation?(depth based AOCV: local variation):
random variation由于其隨機(jī)性,所以可以相互抵消,derate值隨著cell path深度的增加而減小,對某一條path來說,cell path級數(shù)越多,其分布越接近于正態(tài)分布,整條path的 random variation相互抵消的越多,總體variation越小。
Systematic variation?(distance based AOCV: global variation):
在芯片制造的過程中,cell之間的距離越近,cell的特性越相似,variation越小,derate值越?。籧ell之間的距離越遠(yuǎn),cell的特性偏差越大,variation越大,derate值越大。
Path Depth:?分別計算latch path和capture path的邏輯級數(shù),需要注意的是,如果一個cell通過兩條或者兩條以上的path,則該cell取級數(shù)小的derate值。path depth對random variation進(jìn)行建模。
Distance:?包括cell distance和net distance,distance指的是cell或者net box的對角線距離。distance 對systematic variation進(jìn)行建模。

04
—
why AOCV?
Flat OCV的derate設(shè)置對setup timing過于悲觀,而對hold timing又過于樂觀。
一般情況下,隨著path depth增加, random variation會逐漸減小,這是因為random variation隨著cell增加,不太可能所有的cell都偏向early或者late,即cell delay會相互抵消一部分。
Flat OCV一般適用于90nm以上的工藝,但在90nm一下工藝或者高頻設(shè)計中,需要剔除掉部分悲觀derate值,防止overdesign發(fā)生。
AOCV在65nm工藝中引入,可以很好的模擬variation。
05
—
AOCV?Table
一般有兩種AOCV derate table: 一種是一維table,index為depth;一種是二維table,index為depath和distance。
每一種cell一般都會有rise/fall/late/early/data/clock六種table。
derate value increase with distance, derate value decrease with path depth。


06
—
如何計算cell depth和distance?
cell depth的計算:對某一個cell來說,其depth取所在所有timing path的最小值,這是因為需要考慮derate最差的情況,depth越小,derate值越差。
例如:如下圖所示,對于C1來說,有兩條timing path,一條為C1->C2->C5->RL1共4級,另一條為C1->C2->C3->C4->C44->RS共6級,所以C1的級數(shù)為4。
PBA AOCV:重新計算timing path上的每個cell的depth,對同一cell的不同timing path使用不同的derate值,這會得到更精確的derate值,但會顯著增加run time。

distance的計算:通過cell或者net的box來計算distance。
cell max distance (Cell Dmax): timing path內(nèi)所有cell的inner box的對角線距離。
net max distance (Net Dmax):timing path內(nèi)所有net的outer box的對角線距離。

07
—
什么是POCV (SOCV)?
POCV: Parametric On Chip Variation,Synopsys家叫法。
SOCV: Statistic On Chip Variation,Cadence家叫法。
實際中的on chip variation并不是一個確定的統(tǒng)一數(shù)值,而是大概率服從正態(tài)分布的統(tǒng)計規(guī)律。對每一個cell分別建模,cell的derate值是一個基于單一均值和方差的高斯分布,這種方法考慮了cell transition和ouput load對variation的影響,也考慮了variation對cell transiton的影響。
POCV中nominal和sigma數(shù)值是與input slew和output load有關(guān)的函數(shù)。
POCV的結(jié)果與SPICE (silicon)結(jié)果更相近,同時GBA結(jié)果與PBA結(jié)果也相近。
POCV使用nominal delay value表示cell的delay,使用delay sigma模擬cell的delay variation變化。需要分別對data/clock的early/late設(shè)置不同的derate值。
POCV Analysis Flow:

08
—
why POCV?
在40nm以下工藝,AOCV變得不準(zhǔn)確,不能很好地降低pessimism。
不同于Flat OCV和AOCV 對某一個cell使用一個確定的derate值,POCV通過delay variation (sigma)進(jìn)行計算得到當(dāng)前cell的derate值。
POCV比AOCV/Flat OCV更接近于實際的silicon數(shù)據(jù),可以更好地模擬on-die variation。
local variation從SPICE corner model中去除來生成Global corner models: SSG/FFG,這可以減少long path的overdesign,同時減少short path的underdesign的風(fēng)險。

summary
工藝偏差導(dǎo)致芯片物理參數(shù)偏差,進(jìn)一步導(dǎo)致管子電特性偏差,在STA 中表現(xiàn)于cell delay, cell trantion 跟 net delay的偏差。
STA 用PVT + OCV 來模擬cell 的timing,用Spice 仿真得到cell delay 跟variation。
STA 用RC corner來模擬互連線的variation。
PVT 跟RC corner 用于模擬Global varition。
Flatten OCV, AOCV, SOCV / POCV 用于模擬local variation.