胡永強,周 源
?
基于SKILL語言的參數(shù)化抗輻射器件版圖設(shè)計
胡永強,周源
(中國電子科技集團公司第58研究所,江蘇 無錫 214035)
SKILL語言是IC設(shè)計業(yè)界采用的主要軟件Cadence EDA提供的編程開發(fā)語言,用戶可以基于SKILL語言對EDA設(shè)計環(huán)境進行定制設(shè)計或拓展。參數(shù)化單元(Parameter Cell,PCELL)可以根據(jù)設(shè)計規(guī)則(Design Rule)通過器件的W、L等參數(shù)實現(xiàn)對器件版圖層次(Layer)的控制。另一方面抗輻射器件版圖的特殊設(shè)計形式對版圖設(shè)計工作提出了新的要求。闡述了通過SKILL語言實現(xiàn)的一款參數(shù)化抗輻射器件版圖的設(shè)計理念和方法,并且在Cadence Design Framework(DFII)中編譯調(diào)試和優(yōu)化,實現(xiàn)了該版圖的結(jié)構(gòu),較大幅度地提高了版圖設(shè)計工作的效率。
SKILL;參數(shù)化單元;抗輻射;器件版圖
Cadence EDA是當(dāng)前國際上最流行的EDA軟件之一。SKILL編程語言是該EDA系統(tǒng)提供的編程開發(fā)語言,集成在Cadence Design Framework中的EDA軟件都是基于SKILL語言實現(xiàn)的。用戶可以基于SKILL語言在Design Framework中進行設(shè)計軟件的定制設(shè)計或者拓展[1]。SKILL語言從人工智能語言Lisp發(fā)展而來,語法上更類似C語言,易于設(shè)計開發(fā)人員掌握。
在Cadence EDA系統(tǒng)中,參數(shù)化單元(Parameter CELL,PCELL)版圖是通過SKILL語言實現(xiàn)的一種可以通過W、L等參數(shù)進行層次(Layer)控制的版圖結(jié)構(gòu),可以使用戶避免對器件版圖Layer的繁冗操作,降低出錯概率,節(jié)省工作時間,提高設(shè)計工作效率。
抗輻射加固版圖結(jié)構(gòu)相對于非加固的版圖結(jié)構(gòu),其特殊的版圖設(shè)計形式會給版圖設(shè)計工程師增加工作難度。另外由于人為疏忽的存在,定制設(shè)計的器件版圖難以避免出錯。即使后期通過DRC、LVS等物理驗證手段發(fā)現(xiàn)問題,版圖設(shè)計返工也會浪費大量的工作時間。
因此我們提出了基于參數(shù)化抗輻射器件版圖完成抗輻射芯片版圖設(shè)計的設(shè)想,但是通過SKILL語言實現(xiàn)參數(shù)化抗輻射器件版圖的技術(shù)需要進行深入研究。目前,常見的參數(shù)化器件版圖設(shè)計主要是通過Cadence EDA系統(tǒng)中的Virtuoso軟件提供PCELL設(shè)計界面進行。但是基于此方法設(shè)計的PCELL靈活性不強,而且難以實現(xiàn)復(fù)雜的版圖結(jié)構(gòu)。因此有必要探索直接編寫SKILL源代碼來實現(xiàn)參數(shù)化抗輻射器件版圖的可行性。
本文闡述了通過SKILL語言實現(xiàn)的參數(shù)化抗輻射器件版圖的設(shè)計理念和方法,并且在Cadence的Design Framework(DFII)中編譯調(diào)試和優(yōu)化,實現(xiàn)了該版圖結(jié)構(gòu),較大幅度地提高了版圖設(shè)計工作效率。
SKILL語言從人工智能語言Lisp發(fā)展而來,可以采用Lisp風(fēng)格的源代碼編寫方式[1],例如:
(defun fibonacci(n)
(cond
((or(equal n 1)(equal n2))1)
(t(plus(fibonacci(difference n 1))
(fibonacci(difference n 2))))
)
)
另外也可以采用C語言風(fēng)格的源代碼編寫方式[1],例如:
procedure(fibonacci(n)
if((n==1)||(n==2)then
1
else
fibonacci(n-1)+fibonacci(n-2)
)
)
SKILL語言與其他編程開發(fā)語言類似,有自己的命名規(guī)則、關(guān)鍵字、數(shù)據(jù)類型、函數(shù)調(diào)用、注釋格式等語法要求,與C語言類似,對熟悉C語言等編程開發(fā)語言的設(shè)計人員來說易于掌握。
需要注意的是Cadence已定義了自己內(nèi)部使用的專用函數(shù),并以下劃線(“_”)作為前綴。這類函數(shù)可能由Cadence在沒有申明的前提下發(fā)生改變,一般不要使用。
SKILL語言支持多種數(shù)據(jù)類型,包括整型、浮點型等數(shù)字以及字符串、符號等字符。SKILL語言相對于其他編程開發(fā)語言的突出特點是大量使用List類型的數(shù)據(jù)格式。List即按照一定的順序?qū)?shù)據(jù)組合成一個表,并通過多種函數(shù)創(chuàng)建、修改、調(diào)用List。本文中常用來組織版圖Layer各個頂點的坐標(biāo)。
定義PCELL的函數(shù)為pcDefinePCell,其語法格式[2]如下:
pcDefinePCell(list(ddGetObj(“l(fā)ib”)“cell”“view”)
[參數(shù)定義]
let([局部變量定義]
[函數(shù)體]
…
);end of let
);end of pcDefinePCell
其意義是在設(shè)計庫lib中生成單元名稱為cell的PCELL;格式view有多種類型,作為版圖格式一般采用layout。
“參數(shù)定義”指可以在PCELL調(diào)用時修改的各項器件參數(shù),如器件的長(Length)、寬(Width)、叉指數(shù)目(Finger)、是否需要生成接觸孔和金屬(NeedCont)等,分別采用浮點型(float)、整型(int)、布爾型(boolean)等數(shù)據(jù)類型。
“局部變量定義”指在函數(shù)體中使用到的局部變量,如接觸孔分別在X和Y方向復(fù)制的個數(shù)等。
SKILL提供了豐富的圖形處理函數(shù),可以在版圖中生成例如矩形(Rectangle)、多邊形(Polygon)、橢圓(Ellipse)、圓?。ˋrc)、圓環(huán)(Donut)等圖形,使用的函數(shù) 分 別 為 dbCreateRect、dbCreatePolygon、dbCreate Ellipse、dbCreateArc、dbCreateDonut,其語法格式[3]為:
dbCreateRect(
pcCellView
list(LayerGDSNumLayerDataType);define layer
list((LBX:LBY)(RTX:RTY));define coordinate
);enddbCreateRect
dbCreatePolygon(
pcCellView
list(LayerGDSNumLayerDataType);define layer
list((X1:Y1)(X2:Y2)(X3:Y3)…);define coordinate
);enddbCreatePolygon
以人教版小學(xué)語文三年級下冊第二組課文為例。本組課文由三篇精讀課文《翠鳥》《燕子專列》《一個小村莊的故事》,一篇略讀課文《路旁的橡樹》以及語文園地二組成。整組教材圍繞“保護環(huán)境”的主題編寫。語文園地二中的“讀讀背背”有五句有關(guān)動物的詩句。有的教師在教學(xué)第一篇課文時就以讀詩句引入本課教學(xué)。學(xué)習(xí)第二篇課文《燕子專列》時,又再次復(fù)讀詩句,將“黃鶯鳴翠柳,紫燕剪春風(fēng)。”等與燕子有關(guān)的詩句整合進課堂中,既豐富“讀讀背背”的積累,又使學(xué)生對燕子形象的感受更加深刻、立體。
dbCreateEllispe(
pcCellView
list(LayerGDSNumLayerDataType);define layer
list((X1:Y1)(X2:Y2));define bounding box
);enddbCreateEllispe
dbCreateArc(
pcCellView
list(LayerGDSNumLayerDataType);define layer
list((X1:Y1)(X2:Y2));define arc bounding box
);enddbCreateArc
dbCreateDonut(
pcCellView
list(LayerGDSNumLayerDataType);define layer
list(X1:Y1);;define the center of the donut
list((X1:Y1)(X2:Y2));define out circle radius
list((X1:Y1)(X2:Y2));define inner circle radius
);enddbCreateEllispe
此外版圖設(shè)計還會使用到SKILL語言的流程控制函數(shù),如if、when&unless、case、for、foreach等,其語法與C語言類似。
工藝線提供的抗輻射器件版圖相關(guān)設(shè)計規(guī)則見表1,結(jié)構(gòu)如圖1所示。
表1 抗輻射器件版圖設(shè)計規(guī)則
根據(jù)對器件版圖結(jié)構(gòu)和設(shè)計規(guī)則的分析,選定規(guī)則a、b、d、g作為抗輻射器件版圖PCELL的變量,規(guī)則c、e、f、h2因采用定值作為PCELL的常量;h1可以通過d、f、h2等計算出。
PCELL主要通過版圖結(jié)構(gòu)中各層次的坐標(biāo)來控制層次的尺寸及相互關(guān)系。因此需要通過幾何知識計算出版圖結(jié)構(gòu)中各個圖形的坐標(biāo),然后通過編寫源代碼實現(xiàn)抗輻射器件版圖PCELL。我們定義Active的左下角為坐標(biāo)原點,生成Active需要的左下角坐標(biāo)(ActX1,ActY1)為:
(ActX1,ActY1)=(0,0)
右上角坐標(biāo)(ActX2,ActY2)按以下公式計算出:
ActX2=ActX1+a+2×(e+c+2×d+f)
ActY2=ActY1+b+2×(e+c+h2)
那么控制Active層次的SKILL函數(shù)描述為:
dbCreateRect(
pcCellView
list(2“drawing”);define Active
list((ActX1:ActY1)(ActX2:ActY2));
);enddbCreateRect
如此,用戶在調(diào)用PCELL時可以根據(jù)設(shè)計需要來調(diào)整a、b、e等參數(shù)以實現(xiàn)對Active圖形的控制。
呈陣列排布的接觸孔CT可以由for循環(huán)生成。首先通過參數(shù)b計算CT需要的復(fù)制數(shù)目:
IndexY=fix((b-(f+2×g))/(f+2×g)+1)
CT的左下角坐標(biāo)按以下公式計算出:
CTX1=ActX1+e+c+d
CTY1=ActY1+e+c+h2+d+RepeatY×(f+g)
其中 RepeatY作為 for循環(huán)的形參(Formal Parameter)從0增加至IndexY。CT的右上角坐標(biāo)按以下公式計算:
CTX2=CTX1+g
CTY2=CTY2+g
其SKILL函數(shù)描述為:
(for RepeatY 0 IndexY
dbCreateRect(
pcCellView
list(8“drawing”);define CT
list((CTX1:CTY1)(CTX2:CTY2));
);enddbCreateRect
);end for
如此,用戶調(diào)用的器件版圖PCELL可以根據(jù)不同Channel width值在NMOS的源漏端生成不同數(shù)目的接觸孔CT。
采用上述方式完成抗輻射器件版圖的Active、GT、CT、SN等所有層次的源代碼編寫,然后在Cadence DFII的CIW窗口中l(wèi)oad該SKILL源代碼即可對源代碼進行編譯,如圖2所示。
圖2 Cadence DFII CIW窗口界面
Cadence按照設(shè)計庫(library)—單元(cell)—視圖(view)的層次化形式組織設(shè)計數(shù)據(jù)??馆椛淦骷鎴DPCELL源代碼編譯后,存放在設(shè)計庫名為lib-單元名為cell-視圖名為layout的目錄中,可以通過Cadence Virtuoso軟件調(diào)用該PCELL來查看編譯效果。分別如圖3、圖4所示。
上述源代碼編譯后發(fā)現(xiàn)一個bug:當(dāng)器件Channel width改變時,生成的接觸孔CT與上下兩側(cè)多晶的距離不相等。
按照一般版圖設(shè)計要求,器件版圖最好對稱。經(jīng)過分析,我們將CTY1中加入偏移量Delta可以修正該bug,即:
CTY1=ActY1+e+c+h2+d+RepeatY×(f+g)+Delta
其中Delta=Space1=Space2=[b-IndexY×(f+g)]/2
如此生成接觸孔CT與上下兩側(cè)多晶的距離可以保持一致。同時,為避免產(chǎn)生的CT圖形偏離格點(off grid),需要對Delta進行g(shù)rid擬合,采用的方法是:
Delta_new=float[fix(Delta/grid)]×grid
先將Delta折算成grid的整數(shù)倍,再與grid相乘進行還原,即可完成Delta的grid擬合。
通過優(yōu)化后的源代碼再次編譯,得到了我們希望的版圖結(jié)構(gòu),如圖5所示。
圖3 Cadence設(shè)計數(shù)據(jù)層次化組織形式
圖4 編譯后的抗輻射器件PCELL
圖5 優(yōu)化后的器件版圖及PCELL參數(shù)調(diào)整界面
本文基于Cadence EDA提供的SKILL編程開發(fā)語言,編寫了抗輻射器件版圖的PCELL源代碼,通過在Cadence DFII環(huán)境下進行編譯,實現(xiàn)了參數(shù)化抗輻射器件版圖的設(shè)計,且通過代碼優(yōu)化解決了接觸孔CT與多晶距離不對稱和接觸孔CT圖形offgrid的問題。通過使用參數(shù)化抗輻射版圖PCELL,可以避免由于人為疏忽造成的器件版圖設(shè)計錯誤,還可以節(jié)省工作時間,較大幅度提高版圖設(shè)計的工作效率。
[1]Cadence.SKILL Language User Guide[P].Product Version 06.30,2004:20-28.
[2]Cadence.Custom Layout SKILL Functions Reference[P]. Product Version 5.1.41,2009:334.
[3]Cadence.Cadence Design Framework II SKILL Functions Reference[P].Product Version 6.31,2008:391-392.
Layout Design of SKILL-based Parameterized Radiation-hardened Device
HU Yongqiang,ZHOU Yuan
(China Electronics Technology Group Corporation No.58 Research Institute,Wuxi 214035,China)
SKILL is a programming language provided by Cadence EDA,based on which users customize the EDA design environment.Parameter CELL(PCELL)controls layout layers using parameters like W and L, and the radiation-hardened device layout in turn poses new challenges to the designing work.The paper introduces a new layout designing method for skill-based parameterized radiation-hardened device and obtains the layout using Cadence Design Framework(DFII).
SKILL;parameter cell;radiation hardening;device layout
TN402
A
1681-1070(2016)09-0031-04
胡永強(1983—),男,山東平邑人,四川大學(xué)微電子理學(xué)學(xué)士,主要從事全定制版圖設(shè)計、數(shù)字電路后端設(shè)計,對參數(shù)化單元(PCELL)設(shè)計、抗輻照標(biāo)準(zhǔn)單元建庫以及集成電路ESD保護設(shè)計有豐富經(jīng)驗。
2016-4-27