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