為什么需要OCV?

今天我們要介紹的時(shí)序分析概念是on chip variations轿衔,簡(jiǎn)稱OCV沉迹。OCV會(huì)對(duì)時(shí)序分析提出更嚴(yán)格的要求。那為什么需要OCV呢害驹,因?yàn)橹圃旃に嚨南拗票夼唬恍酒喜煌恢玫腗OS晶體管的性能會(huì)有一些差異。庫(kù)中的PVT是一個(gè)"點(diǎn)"宛官,比如1.2V葫松,250℃,工藝1.0底洗。 但實(shí)際芯片的PVT永遠(yuǎn)不會(huì)落在一個(gè)點(diǎn)上腋么,而是一個(gè)范圍;比如說(shuō)有時(shí)序關(guān)系的幾個(gè)cell亥揖,可能這幾個(gè)cell的PVT是1.18V珊擂,20℃,工藝0.98费变。而那個(gè)cell的PVT是1.21V摧扇,35℃,工藝1.01挚歧。這些cell的PVT都不在那個(gè)點(diǎn)上扛稽,怎么去分析呢?這時(shí)候就需要OCV了昼激。


還是參照single mode和bc-wc那張圖庇绽,OCV的檢查方式更加嚴(yán)格,如下所示:

For setup :Launch clock path ? ?:late path from max lib? ?? ? ? ? ?Data Path ? ? ? ? ? ? ? ? :late path ?from max libCapture Clock path ?:early path from min libFor Hold:Launch clock path ? ?:early path from min libData Path ? ? ? ? ? ? ? ? :early path from min libCapture Clock path ?:late path from max lib

OCV for setup check

還是原來(lái)BC-WC分析模式那張圖:


假設(shè)PVT情況可以在整個(gè)chip上變化, (暫時(shí)不考慮CPPR)

clock period = 4Launch clock late path (max) = 0.7 + 0.6 = 1.3Data late path (max) = 3.5Capture clock early path (min) = 0.5 + 0.3 = 0.8Setup = 0.2?Data arrival time = 1.3 + 3.5 = 4.8Data required time = 4 + 0.8 - 0.2 = 4.6Slack =Data required time - Data arrival time=?4.6 - 4.8 = -0.2?

OCV for Hold check

對(duì)于Hold check, 可以參考下圖分析模式:


Launch clock early path (min) = 0.5 + 0.4 = 0.9Data early path (min) = 2Capture clock late path (max) = 0.7 + 0.5 = 1.2Hold = 0.2?Data arrival time = 0.9 + 2 = 2.9Data required time =1.2+0.2 = 1.4Slack = Data arrival time - Data required time=?2.9 - 1.4 = 1.5?

通過(guò)上訴的描述橙困,大家對(duì)OCV的分析模式有一定了解了吧瞧掺,OCV其實(shí)是一種相對(duì)悲觀的分析模式,為了使design和fabrication之間的結(jié)果更加接近凡傅,現(xiàn)在又誕生了AOCV辟狈,SOCV等更高級(jí)的分析模式。

時(shí)序分析概念是timing derate. 我們可以稱為時(shí)序增減因子夏跷。我們知道在芯片的生產(chǎn)過(guò)程中哼转,由于刻蝕,不同點(diǎn)的溫度槽华,金屬不均勻壹蔓,串?dāng)_,晶體管溝道長(zhǎng)度等影響因素猫态,導(dǎo)致片上各個(gè)位置單元延遲不一樣佣蓉。因此披摄,我們需要一個(gè)縮放因子來(lái)讓設(shè)計(jì)更加嚴(yán)格。

timing derate是計(jì)算OCV的一種簡(jiǎn)單方法勇凭,在某單一條件(BC-WC)下疚膊,把指定path的delay放大或者縮小一些,這個(gè)比率就是derate虾标。比如說(shuō):

-late?

setup ==> data path * 1.1

hold?==> clock path * 1.1

-early?

setup ==> clock path * 0.9

hold?==> data path * 0.9

以下圖為例:

在setup check中寓盗,


Date arrival time即data path和launch clock path需要使用-late?選項(xiàng),使得路徑變慢璧函。

Date require time即capture clock path需要使用?-early?選項(xiàng)傀蚌,加快路徑延遲。

需要注意的是:考慮time derate需要在某個(gè)單一條件下柳譬,比如說(shuō)BC或者WC條件下喳张,把指定path的延遲再放大或者縮小一點(diǎn),要么是BC美澳,要么是WC销部,不要把BC和WC混在一起,再OCV制跟,那樣太過(guò)于悲觀舅桩。

setup check?一般是工作在WC PVT條件下,因此不需要在late path上雨膨,即launch clock path以及data path上再加time derate擂涛,因?yàn)樵赪C條件下,launch clock path以及data path上的延遲已經(jīng)是所有條件下最差的delay了聊记,沒(méi)有必要再加大延遲撒妈,但是WC條件下capture clock path上的delay肯定不是最小的,因此需要加快排监。

所以上面的timing path做setup check狰右,time derate只需要這樣設(shè)置:

set_timing_derate -early 0.9

set_timing_derate -late 1.0

我們可以計(jì)算一下設(shè)了timing derate以后setup check的變化:

上圖中:launch clock path =?(1.2+0.8)*1.0 = 2.0

max data path = 5.2 * 1.0 =5.2

capture clock path = (1.2 + 0.86) *0.9 = 1.854

所以最小時(shí)鐘周期?T?= 2.0 + 5.2 -1.854 + 0.385= 5.731

可以看到:考慮timing derate以后,會(huì)降低整個(gè)design的工作頻率舆床。

在Hold check中


考慮time derate的情況與setup正好相反棋蚌,

Data require time中的capture clock path使用-late選項(xiàng),使路徑變慢挨队。

Data arrival time中的data path和launch clock path使用-early選項(xiàng)谷暮,使路徑加快

實(shí)際上,Hold check一般在BC條件下盛垦,因此湿弦,launch clock path與data path不需要再進(jìn)一步減小delay,?因?yàn)橐呀?jīng)是最小delay,?但是BC條件下的capture clock path需要derate.?可以使用如下設(shè)置

set_timing_derate -early 1.0

set_timing_derate -late 1.2

這樣添加time derate后

Launch clock path = 0.85 * 1.0 = 0.85

Min data path = 1.7 * 1.0 = 1.7

Capture clock path = 1.0 * 1.2 = 1.2

所以slack=0.85+1.7-1.2-1.25=0.1

介紹的時(shí)序分析概念是CPPR(CRPR)。全稱Clock Path Pessimism Removal(Clock Reconvergence Pessimism Removal)腾夯,中文名“共同路徑悲觀去除”省撑。它的作用是去除clock path上的相同路徑上的悲觀計(jì)算量赌蔑。如下圖所示:


由于STA是窮舉型的分析路徑,在分析setup timing時(shí)竟秫,clock launch path會(huì)選擇紅色的路徑,clock capture path則會(huì)選擇綠色的路徑跷乐,這本身就是不合理的情況肥败,一個(gè)mux不可能同時(shí)存在兩條經(jīng)過(guò)的路徑,所以我們需要去除這個(gè)計(jì)算的悲觀量愕提。

CPPR不僅僅存在于OCV馒稍,在以下幾種情況它都可以存在:

Single Mode without set_timing_derate

BC-WC Mode without set_timing_derate

OCV Mode without set_timing_derate

Single Mode with set_timing_derate

BC-WC Mode with set_timing_derate

OCV mode with set_timing_derate

我們?cè)倏瓷弦粋€(gè)計(jì)算timing derate的例子:


大家肯定發(fā)現(xiàn)了對(duì)于path最前端那1.2ns的延遲,在setup分析時(shí)浅侨,launch clock path中沒(méi)有被derate, 而在capture clock path中被time derate 1.2*0.9 =1.08. 顯然這是相互矛盾的纽谒。

對(duì)于上訴設(shè)計(jì),考慮CPPR之后如输,我們必須減去一個(gè)CPP因子=1.2-1.08=0.12

所以最小時(shí)鐘周期T=5.731-0.12 = 5.611

使用方法:

set_analysis_mode -cppr {none|both|setup|hold}

介紹的時(shí)序分析概念是AOCV鼓黔。全稱Stage Based Advanced OCV。我們知道不见,在OCV分析過(guò)程中澳化,我們會(huì)給data path,clock path上設(shè)定單一的timing derate值。隨著工藝演變的加速稳吮,我們發(fā)現(xiàn)這種設(shè)置方法是過(guò)于悲觀的缎谷,大家可以想象下,OCV是片上誤差灶似,就代表一條path上有的cell delay大于標(biāo)準(zhǔn)值列林,那也有的cell delay會(huì)小于標(biāo)準(zhǔn)值。因此不能一味的加大或減小delay來(lái)模擬片上誤差酪惭。

如下圖所示希痴,對(duì)于下面這樣一條buffer鏈,假設(shè)8個(gè)buffer處于不同的PVT條件下撞蚕,OCV會(huì)將8個(gè)buffer都選用最差的條件來(lái)分析(同一derate參數(shù))润梯,而AOCV則會(huì)采用不同的timing derate值來(lái)分析。


AOCV有它專門的libary庫(kù)甥厦,我們稱為AOCV table纺铭。按照維度分為兩種,一種是一位的只以stage count作為計(jì)算的表格刀疙,如下圖所示:

version: 2.0

object_type: lib_cell

object_spec: LIB/BUF1X

rf_type: rise fall

delay_type: cell

derate_type: late

path_type: data

depth: 1 2 3 4 5

distance:?

table: \

1.123 1.090 1.075 1.067 1.062?

depth就代表著stage count舶赔,從表格中我們可以看到隨著;路徑的深入谦秧,derate的效應(yīng)會(huì)減小竟纳。那我們?cè)趺磥?lái)計(jì)算stage count呢撵溃?

通常這個(gè)計(jì)算方法比較復(fù)雜,不同的電路情況對(duì)應(yīng)著不同的count計(jì)算方式:如下timing path锥累,我們將L1缘挑,L2,DFF1桶略,U1语淘,U2,U3的stage count設(shè)成6际歼,而C1惶翻,C2,C3鹅心,C4的stage count需要設(shè)成4吕粗,這邊需要說(shuō)明的是B1,B2由于是common point旭愧,所以在計(jì)算stage count時(shí)需要忽略颅筋。


另外一種是以distance和stage count混合組成的二維AOCV table. 它在計(jì)算derate時(shí)同時(shí)考慮了timing path的距離因素,當(dāng)然這個(gè)雖然更加精確榕茧,但是會(huì)增加runtime垃沦,所以一般現(xiàn)在一維表格用的更多。

version: 2.0

object_type: lib_cell

object_spec: LIB/BUF1X

rf_type: rise fall

delay_type: cell

derate_type: late

path_type: data

depth: 1 2 3 4 5

distance: 500 1000 1500 2000

table: \

1.123 1.090 1.075 1.067 1.062 \

1.124 1.091 1.076 1.068 1.063 \

1.125 1.092 1.077 1.070 1.065 \

1.126 1.094 1.079 1.072 1.067

使用方法:

set_analysis_mode?-aocv true


SOCV(POCV)

POCV用押,又稱SOCV(Statistical On Chip Variation)肢簿,如下圖所示,POCV將delay模擬成一個(gè)正態(tài)分布

蜻拨。每個(gè)cell的delay最高概率出現(xiàn)在 u周圍池充。整體落在區(qū)間內(nèi)的概率為99.7%。




LVF

LVF(Liberty Variation Format)

除了read_aocvm去讀取專用的POCV文本缎讼,還可以將POCV的內(nèi)容集成到類似于liberty文件中收夸,比如基于Slew-Load Based LVF,如下圖所示:

我們可以首先根據(jù)Slew-Load查找到M平均延時(shí)血崭,然后對(duì)應(yīng)查到Sigma值卧惜。這樣即可完成POCV時(shí)序分析。

(1)montecarlo蒙特卡洛模擬

(2)Sensitivity-Based-Analysis


總結(jié)


參考資料:

[1]?AOCV夹纫、POCV咽瓷、LVF時(shí)序分析(二) - 程序員大本營(yíng) (pianshen.com)

[2]?AOCV、POCV舰讹、LVF時(shí)序分析(二)_u011075954的專欄-CSDN博客_ocv與rcv的關(guān)系

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末茅姜,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子月匣,更是在濱河造成了極大的恐慌钻洒,老刑警劉巖奋姿,帶你破解...
    沈念sama閱讀 218,122評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異素标,居然都是意外死亡称诗,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門头遭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)粪狼,“玉大人,你說(shuō)我怎么就攤上這事任岸。” “怎么了狡刘?”我有些...
    開封第一講書人閱讀 164,491評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵享潜,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我嗅蔬,道長(zhǎng)剑按,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,636評(píng)論 1 293
  • 正文 為了忘掉前任澜术,我火速辦了婚禮艺蝴,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘鸟废。我一直安慰自己猜敢,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評(píng)論 6 392
  • 文/花漫 我一把揭開白布盒延。 她就那樣靜靜地躺著缩擂,像睡著了一般。 火紅的嫁衣襯著肌膚如雪添寺。 梳的紋絲不亂的頭發(fā)上胯盯,一...
    開封第一講書人閱讀 51,541評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音计露,去河邊找鬼博脑。 笑死,一個(gè)胖子當(dāng)著我的面吹牛票罐,可吹牛的內(nèi)容都是我干的叉趣。 我是一名探鬼主播,決...
    沈念sama閱讀 40,292評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼胶坠,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼君账!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起沈善,我...
    開封第一講書人閱讀 39,211評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤乡数,失蹤者是張志新(化名)和其女友劉穎椭蹄,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體净赴,經(jīng)...
    沈念sama閱讀 45,655評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡绳矩,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了玖翅。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片翼馆。...
    茶點(diǎn)故事閱讀 39,965評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖金度,靈堂內(nèi)的尸體忽然破棺而出应媚,到底是詐尸還是另有隱情,我是刑警寧澤猜极,帶...
    沈念sama閱讀 35,684評(píng)論 5 347
  • 正文 年R本政府宣布中姜,位于F島的核電站,受9級(jí)特大地震影響跟伏,放射性物質(zhì)發(fā)生泄漏丢胚。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評(píng)論 3 329
  • 文/蒙蒙 一受扳、第九天 我趴在偏房一處隱蔽的房頂上張望携龟。 院中可真熱鬧,春花似錦勘高、人聲如沸峡蟋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)层亿。三九已至,卻和暖如春立美,著一層夾襖步出監(jiān)牢的瞬間匿又,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工建蹄, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留碌更,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,126評(píng)論 3 370
  • 正文 我出身青樓洞慎,卻偏偏與公主長(zhǎng)得像痛单,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子劲腿,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容