INVS利用gatearray實(shí)現(xiàn)post-mask的function ECO
掃描二維碼
隨時(shí)隨地手機(jī)看文章
隨著現(xiàn)代IC的設(shè)計(jì)發(fā)展,設(shè)計(jì)的規(guī)模和復(fù)雜度逐步增加,對(duì)于驗(yàn)證完備性的挑戰(zhàn)越來(lái)越大,加之TO的時(shí)間壓力,芯片設(shè)計(jì)通常會(huì)出現(xiàn)下列的場(chǎng)景:
- 芯片回片一次點(diǎn)亮
- 大部分的case都可以順利通過(guò)
- 小部分的功能需要修正
對(duì)于重要的特性三,用戶可以選擇gatearray的cell高效的完成這一個(gè)任務(wù)。閑言少敘,ICer GO!
由于·硬件設(shè)計(jì)天然的特性,大部分芯片都會(huì)有reversion的計(jì)劃,有時(shí)候也被稱作engineering sample# (ES1,ES2,etc.)。產(chǎn)品的迭代效率通常都是reversion的重要因素,所以基于TO數(shù)據(jù)的bug高效修復(fù)(迭代快,成本可控)的要求就顯得極為重要。
TO數(shù)據(jù)space cell方式
基于前端設(shè)計(jì)經(jīng)驗(yàn),在芯片里邊規(guī)律性的撒一些spare cell,作為后續(xù)版本的bug修復(fù)使用,但是這種方法局限性比較大:
- Spare cell的難以匹配設(shè)計(jì)修改的要求:
- 繞線挑戰(zhàn)大,可能會(huì)占用很多的metal 資源,導(dǎo)致postmask metal fix的mask費(fèi)用很高,周期很長(zhǎng)
- 時(shí)序挑戰(zhàn):太遠(yuǎn)的距離,導(dǎo)致transiton/cap都有新的變化,甚至需要使用更多的器件實(shí)現(xiàn)setup/hold的修復(fù),都是潛在的時(shí)序挑戰(zhàn)
- 功能不全:對(duì)于bug,通常都具有未知性,很難做到有的放矢,spare cell的功能經(jīng)常被bug fix人員詬病功能不完備
- 距離不合適:bug修復(fù)需求的物理位置和spare cell的位置相去甚遠(yuǎn),
- Spare cell對(duì)資源的浪費(fèi)
- 放置資源:spare cell會(huì)切實(shí)的占用std-cell的某些區(qū)域,為保證分布性,spare cell通常位置較為固定,這個(gè)對(duì)于APR flow的數(shù)據(jù)優(yōu)化會(huì)產(chǎn)生一定程度上的不利影響
- 繞線資源:spare cell的input 都需要tie connection(防止柵極浮空被擊穿),這些tie connection也是對(duì)繞線資源的消耗。
所以,實(shí)際芯片的funciton bug ECO的時(shí)候,眼睜睜的看著分布式的spare cell,就是用不起來(lái),只能干瞪眼。心里默念,要是當(dāng)時(shí)在某某區(qū)域多撒點(diǎn)某某cell該多好啊。像極了學(xué)生時(shí)代拿到成績(jī)的我們:要是考前把那個(gè)啥多看看,這部又能提高幾分。永遠(yuǎn)的如果,永遠(yuǎn)的下一次,反反復(fù)復(fù)無(wú)窮盡?。?/span>
gatearray方式的特點(diǎn)和用法
為了緩解這種問(wèn)題,現(xiàn)在的std-cell開(kāi)發(fā)商,在提供標(biāo)準(zhǔn)的std-cell庫(kù)的基礎(chǔ)上,也會(huì)提供給用戶用于post-mask的ECO 庫(kù),由于設(shè)計(jì)結(jié)構(gòu)的原因,這個(gè)庫(kù)通常被稱為:std-cell gatearray 庫(kù)。是一種類似樂(lè)高積木的拼接方式來(lái)完成std-cell的構(gòu)建。
ECO 庫(kù)的特點(diǎn)
基于gatearray設(shè)計(jì)的ECO庫(kù),所有的cell的版圖,都是使用基礎(chǔ)單元搭建起來(lái)的(gate),然后通過(guò)更改metal的方式來(lái)實(shí)現(xiàn)不同的功能,這個(gè)·和傳統(tǒng)的std-cell的設(shè)計(jì)思路是完全不同的。
只要是等寬的ECO cell,cell之間通常只有一層或兩層metal不同,意即:只改動(dòng)metal就可以實(shí)現(xiàn)功能變化。譬如下例:等寬度的ECO filler cell 和FILLER cell的GDS比對(duì)XOR:
可以看到:ECO filler cell和ECO function cell只有M1不相等(baselayer 是完全一樣的),具體XOR區(qū)別見(jiàn)下圖:
這樣就可以通過(guò)嗲用芯片里邊現(xiàn)有的ECO filler cell,基于用戶需求,改變有限的metal層,從而實(shí)現(xiàn)任意功能的轉(zhuǎn)化,
- ECO filler -> ECO function cell
- ECO function cell -> ECO filler
ECO 庫(kù)的postmask bug fix 的應(yīng)用流程
postmask的改版,最麻煩的當(dāng)屬功能修正,如果想更換一個(gè)cell的功能,通常要?jiǎng)拥絙aselayer和metallayer。但是基于gatearray的ECO庫(kù),則可以有效規(guī)避baselayer的改動(dòng),從而可以高效的完成postmask function bug fix。
ECO lib VS. std-cell LIB
在使用ECO庫(kù)之前,先看一下ECO cell和普通std-cell的版圖區(qū)別
在原本的std-cell和ECO庫(kù)中挑選相同功能/驅(qū)動(dòng)力的cell
- INVX2
- GAINVX2
版圖差異
通過(guò)XOR,可以看到,這兩個(gè)cell的畫(huà)法是不太相同的
包括有源區(qū),POLY區(qū)個(gè)connect去都不太一樣(PS: cell boundary 是一樣的)?;究梢耘卸?,這樣的cell就是不同設(shè)計(jì)需求的產(chǎn)物
時(shí)序差異
從lib上看,兩者的面積是一樣的,這個(gè)case的時(shí)序也是基本類似的:
ECO庫(kù)的cell特點(diǎn)
為了有效的利用ECO庫(kù),通常都會(huì)提供各種功能的器件,同時(shí)為了降低ECO庫(kù)的設(shè)計(jì)難度,通常會(huì)弱化對(duì)驅(qū)動(dòng)力不要求。以當(dāng)前case為例,相較std-cell 庫(kù),ECO擁有了常規(guī)的與或非門(mén),F(xiàn)F等,驅(qū)動(dòng)力有所限制:
ECO庫(kù)的使用方法
為了方便GA(gatearray)進(jìn)行功能替換,ECO 庫(kù)將所有的cell分成兩類:
- FILLER
- Function cell
由于所有的cell的base-layer都是一樣的,那么這里可以利用這個(gè)特性實(shí)現(xiàn)postmask的function metal fix方法。
- 數(shù)據(jù)準(zhǔn)備:
- 在TO的數(shù)據(jù)庫(kù)上使用ECO FILLER進(jìn)行填充。
- 在ECO FILLER不能覆蓋的區(qū)域,使用common filler進(jìn)行填充,確保NWELL的連續(xù)
- 功能修復(fù)
- 基于芯片測(cè)試結(jié)果,出具bug fix方案
- 使用ECO function cell構(gòu)建相關(guān)ECO的腳本
- ECO cell 置換
- 在具有ECO FILLER填充的數(shù)據(jù)庫(kù)中帶入上述ECO腳本
- 使用ecoPlace方法,完成對(duì)與ECO function cell的器件替換
INVS會(huì)使用滿足ECO function cell寬度的ECO filler區(qū)域,完成這個(gè)替換
- 版層變動(dòng)驗(yàn)證
導(dǎo)出GDS,使用GDS XOR工具,確保bug fix后的GDS和原始GDS只有metal layer的差異
- 完成繞線:在APR工具里邊完成繞線
- 對(duì)數(shù)據(jù)和進(jìn)行timing、LV和power的簽收驗(yàn)證
- 使用最終的數(shù)據(jù)庫(kù)再次和原始TO的GDS進(jìn)行XOR比對(duì):出具版層變動(dòng)的差異信息。觸發(fā)新的TO
對(duì)于上述流程有以下幾點(diǎn)需要注意:
- 設(shè)計(jì)人員需要使用ECO lib里的function cell進(jìn)行bug fix
- ecoPlace的動(dòng)作比較關(guān)鍵,用戶需要仔細(xì)查驗(yàn)這個(gè)動(dòng)作的日志和數(shù)據(jù)庫(kù)。步驟如下:
- 刪除現(xiàn)有所有的ECO filler
- 將ECO function cell放置到相連接cell的附近
- 恢復(fù)之前ECO filler的位置,在改動(dòng)的區(qū)域,對(duì)于ECO filler cell做出做適當(dāng)調(diào)整
INVS將原先的GA_FILLERX4置換成:GA_FILLERX2 + GA_INV,完成了一次post-mask的function ECO動(dòng)作。通過(guò)XOR查驗(yàn)。整個(gè)芯片只有這里的metal發(fā)生變化,其他的部位都沒(méi)有變化,符合post-mask的metal fix的設(shè)計(jì)預(yù)期
PS:具體INVS的流程腳本會(huì)上傳到星球,請(qǐng)各位按需取拿
【敲黑板劃重點(diǎn)】
利用gatearray修復(fù)postmask的function bug,事半功倍!





