張卓先
摘 要:Calibre是業(yè)界流行的驗(yàn)證工具,它提供了各個(gè)方面的驗(yàn)證方法來(lái)確保芯片能順利流片。Calibre所具有的編程語(yǔ)言不僅僅是其規(guī)則文件的重要組成部分,更能提供很多優(yōu)化驗(yàn)證流程和效率的解決方案。該文以對(duì)Calibre編程語(yǔ)言的簡(jiǎn)介開(kāi)始,討論了一些能有效提高后端工作效率的語(yǔ)句編寫(xiě)。
關(guān)鍵詞:Calibre 編程語(yǔ)言 后端
中圖分類號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1674-098X(2017)03(b)-0120-02
Calibre是美國(guó)mentor公司開(kāi)發(fā)的一款深亞微米集成電路驗(yàn)證工具,它分為DRC(design rule check,用于檢測(cè)版圖圖形是否符合代工廠的工藝要求),LVS(Layout Versus Schematic,用于對(duì)比版圖和電路的一致性),ERC(Electronics Rule Checking,用于提取版圖中的寄生參數(shù)以便進(jìn)行仿真),ANT(Antenna,用于檢查版圖中的天線效應(yīng)),DFM(Design for Manufacturer,可制造性設(shè)計(jì))等若干模塊,Calibre工具的驗(yàn)證文件使用其獨(dú)有的編程語(yǔ)言編寫(xiě)而成,這是一種具有高度函數(shù)化功能的語(yǔ)言,該文將從DRC和LVS規(guī)則驗(yàn)證文件入手,介紹它們的一般框架結(jié)構(gòu)以及對(duì)于驗(yàn)證很有用處的一些語(yǔ)句的編寫(xiě)。
1 Calibre驗(yàn)證文件的基本框架結(jié)構(gòu)
通常情況下,DRC與LVS的驗(yàn)證文件是各自獨(dú)立編寫(xiě)的,但也有極少數(shù)的工藝廠從方便角度考慮會(huì)將這兩種驗(yàn)證功能集中于同一個(gè)文件之上。
在驗(yàn)證文件的開(kāi)頭,一般是開(kāi)關(guān)定義語(yǔ)句,格式為:#DEDINE與#IFDEFINE。
如:#DEFINE mimcap_1p0,這個(gè)開(kāi)關(guān)定義了是否使用某種電容,而如果后面將使用這種電容,則由#IFDEFINE mimcap_1p0語(yǔ)句來(lái)完成這項(xiàng)功能。
接下來(lái)是環(huán)境參數(shù)設(shè)置語(yǔ)句和DRC,LVS的一些特有設(shè)置,前者定義了參與驗(yàn)證的文件類型、路徑,電容電阻度量單位等,而后者則規(guī)定了驗(yàn)證過(guò)程中需要遵守的一些基本運(yùn)行法則,如版圖是否檢查格點(diǎn)大小與銳角圖層,是否保證端口名稱與大小寫(xiě)的精確匹配,是否濾去版圖中的DUMMY器件等。這之后,是定義版圖原生層次與產(chǎn)生衍生層次的語(yǔ)句。
整個(gè)驗(yàn)證規(guī)則文件中最重要的檢查版圖繪制規(guī)則(DRC)和進(jìn)行版圖與電路比較(LVS)的主體程序則在此之后編寫(xiě)。
規(guī)則文件的最后是檢查版圖電氣連接的語(yǔ)句。
2 Calibre編程語(yǔ)言的命令簡(jiǎn)介
Calibre具有一些高度函數(shù)化功能的命令,它的編程命令大致可以分為3類:命令型語(yǔ)句,如LVS FILTER,這條語(yǔ)句定義了在驗(yàn)證過(guò)程中可以濾去的器件類型;邏輯運(yùn)算語(yǔ)句,AND,OR,XOR,NOT,它們利用邏輯運(yùn)算來(lái)生成圖形;圖形描述性語(yǔ)句,如length layer,它選定了長(zhǎng)度符合要求的相應(yīng)圖形的邊緣。Calibre利用后兩種命令語(yǔ)句的組合來(lái)產(chǎn)生衍生圖層或是進(jìn)行復(fù)雜的圖形運(yùn)算,這其中最常見(jiàn)的命令定義如下:
INT,EXT,ENC。
3 若干Calibre DRC和LVS驗(yàn)證語(yǔ)句的編寫(xiě)
大部分工藝廠提供的規(guī)則文件只有最基本的驗(yàn)證命令,但很多對(duì)于提高電路流片成功率非常重要的的語(yǔ)句卻并不包含在內(nèi),接下來(lái)該文就將介紹一些能提高驗(yàn)證效率和流片可靠性的語(yǔ)句編寫(xiě)方法。
3.1 檢查懸浮線的語(yǔ)句
懸浮線指的是芯片上沒(méi)有與電源或地形成直流通路的懸空部分,一般分為兩種,金屬懸浮線以及多晶硅懸浮線,但不論是哪種懸浮線,在進(jìn)行離子刻蝕的過(guò)程中,它們都可能吸引大量的電荷積聚其上,這樣就會(huì)產(chǎn)生很多危害,比如改變周邊器件的電學(xué)特性甚至擊穿柵氧結(jié)構(gòu)。因此,在LVS文件中添加檢查懸浮線的驗(yàn)證語(yǔ)句就顯得十分重要了,它既可以查找所有的懸浮線,又可以分門(mén)別類地查找各個(gè)圖層,命令如下:
PATHCHK !LABELED //查找一切懸浮線(包括為補(bǔ)充金屬密度而添加的DUMMY金屬)。
PATHCHK !LABELED poly //查找懸浮的多晶硅。
PATHCHK !LABELED m1 //查找懸浮的第一層金屬。
PATHCHK !LABELED m2 //查找懸浮的第二層金屬。
PATHCHK !LABELED NOFLOAT //查找不包含DUMMY金屬在內(nèi)的其他一切懸浮線。
3.2 檢查金屬線寬度的語(yǔ)句
寬金屬線在各個(gè)工藝廠定義不盡相同,但一般認(rèn)為寬度超過(guò)10 μm的金屬線就可以被視作寬線,這些線需要在沿著電流流動(dòng)的方向上開(kāi)槽,這些槽也被稱為SLOT。過(guò)寬的線一般存在幾個(gè)危害,一是增大了局部金屬的密度,容易造成刻蝕不干凈;二是寬線在進(jìn)行平整化工藝時(shí)會(huì)比其他地方更易形成凹陷的區(qū)域,這樣就會(huì)改變線路寄生電容和電阻參數(shù),影響芯片性能;三是電流具有趨膚效應(yīng),SLOT所形成的槽更容易分散電流,這樣也在某種程度上減小了電遷移發(fā)生的可能性。檢查寬金屬線的語(yǔ)句示例如下:
X = Metal WITH WIDTH > 10 //這條語(yǔ)句用于找出一切寬度大于10 μm的金屬線。
3.3 添加金屬DUMMY的語(yǔ)句
需要添加金屬DUMMY的場(chǎng)合一般發(fā)生在芯片中金屬密度不足的情況下。金屬密度不足是可能造成平整化工藝后芯片表面不平坦的原因之一,這種問(wèn)題帶來(lái)的直接后果就是電路寄生電容和電阻電學(xué)參數(shù)的漂移。一般情況下,添加金屬DUMMY的工作是在提交了版圖數(shù)據(jù)之后由工藝廠代為完成的,不過(guò),如果設(shè)計(jì)公司從電路性能考慮,對(duì)于芯片金屬密度有著更為特殊的要求,那么由自己完成金屬DUMMY的填充將是非常理想的。該文將以金屬層為例,介紹添加金屬DUMMY的語(yǔ)句。
Layer map layer1 [datatype] type1 layer2 // 映射語(yǔ)句layer map用來(lái)給gds或者database文件中的圖層號(hào)在驗(yàn)證文件中分配一個(gè)新的層號(hào),以方便后續(xù)的圖層運(yùn)算,其中,layer1和type1分別是gds或database中的圖層號(hào)與數(shù)據(jù)類型號(hào),layer2則是驗(yàn)證文件中新生成的圖層號(hào),比如:
Layer map 42 datatype 0 6163 //在驗(yàn)證文件中給金屬層分配新的層。
Layer metal 6163 //號(hào)。
Layer map 64 datatype 0 8357 //給生成層分配層號(hào),在此層次覆蓋Layer area 8357 //的區(qū)域內(nèi),DUMMY陣列將會(huì)產(chǎn)生。
//Variable命令用于定義變量,其格式為variable name value,該文用它來(lái)規(guī)定DUMMY金屬矩形的大小和間距。
Variable metaldummyW width //用于定義DUMMY矩形的寬度。
Variable metaldummyL length //用于定義DUMMY矩形的高度。
Variable offdummyX x //用于定義偏移量,以此來(lái)調(diào)整。
Variable offdummyY y // DUMMY陣列的松散度。
//最終芯片中生成的DUMMY將是依照上述各變量定義而成的金屬矩形所組成的陣列。陣列的定義由shift和rectangle命令共同完成。
//shift命令用來(lái)產(chǎn)生相對(duì)原圖層具有特定偏移量的新圖層,其格式如下:
Shift layer by x y //x y即為規(guī)定的偏移量。
//rectangles語(yǔ)句用于生成矩形陣列,它的定義如下所示:
Regtangles width length widthspace lengthspace inside of layer area_name
//width和length分別是生成的矩形的寬度和高度,widthspace和lengthspace則分別定義了陣列中矩形與矩形之間的橫向及縱向間距。利用之前variable命令所定義的各個(gè)變量和圖層映射命令定義的生成層,最終產(chǎn)生DUMMY陣列的語(yǔ)句如下:
Dummy = shift(Rectangles metaldummyW metaldummyL metaldummyW+ offdummyX metaldummyL+ offdummyY inside of area) by metaldummyW metaldummyL
//最后,利用copy和drc check map命令將之前生成的矩形陣列轉(zhuǎn)變?yōu)間ds格式的數(shù)據(jù)并最終輸出。
Dummy{copy dummy}drc check map dummy 42 0 aref metaldummy metaldummyW metaldummyL
//copy命令的作用是把計(jì)算后的圖型轉(zhuǎn)變?yōu)間ds格式,drc check map則規(guī)定了gds數(shù)據(jù)的輸出結(jié)構(gòu)。上述命令中,42 0再次表明了金屬層在gds格式中的圖層號(hào)和數(shù)據(jù)類型號(hào),aref是一種能有效減少數(shù)據(jù)占用空間的輸出格式,metaldummy則是最終輸出gds的文件名稱。
//利用DRC驗(yàn)證的運(yùn)行方式,將上文所述語(yǔ)句作為規(guī)則輸入,就能得到最終包含DUMMY金屬陣列的gds文件。
4 結(jié)語(yǔ)
該文介紹了mentor公司驗(yàn)證工具Calibre所使用規(guī)則文件的組成結(jié)構(gòu)和語(yǔ)言特點(diǎn),提供了若干能有效提高后端工作效率和流片成功率的驗(yàn)證語(yǔ)言的編寫(xiě)方法,希望能對(duì)廣大后端工程師有所幫助。
參考文獻(xiàn)
[1] (美)黑斯廷斯.模擬電路版圖的藝術(shù)[M].2版.張為,譯.電子工業(yè)出版社,2007.
[2] Standard Verification Rule Format[Z].Mentor Graphics,2009.