文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2014)12-0046-03
0 引言
與數(shù)字集成電路相比,模擬集成電路具有性能指標(biāo)復(fù)雜、對(duì)干擾十分敏感等特點(diǎn),所以模擬集成電路版圖設(shè)計(jì)中需要滿足匹配、對(duì)稱、臨近等約束。這些約束在過(guò)去幾十年中已經(jīng)得到了廣泛的研究[1-3],但主要集中于解決部分約束而很少考慮電路性能,效率不高且不易達(dá)到版圖設(shè)計(jì)要求。
本文在模擬集成電路布局過(guò)程中按照直流通路劃分電路,在布局階段采用空間搜索算法提供一個(gè)很好的初始布局,然后采用模擬退火算法進(jìn)行迭代優(yōu)化,并且同時(shí)解決對(duì)稱、臨近等約束。
1 約束的描述
圖1是工業(yè)界常用的一種帶共模反饋的全差分運(yùn)算放大器電路原理圖。下面將結(jié)合該電路介紹本文處理的各種約束。
1.1 直流通路順序約束
通常,電路可以分解為信號(hào)流電路和偏置電路,它們分別由不同的直流通路組成。模擬集成電路版圖中如果直流通路相鄰放置,可以大大減小兩個(gè)直流通路間的互連線長(zhǎng)度,從而減小連線的寄生效應(yīng),改善電路性能。直流通路順序約束指布局結(jié)果遵從直流通路的順序。圖1共有以下4個(gè)直流通路:G1(PM0,PM1,PM2,NM1,NM2),G2(PM3,NM3,C1,R3,R4),G3(PM4,NM4,C2,R1,R2),G4(PM5,
PM6,PM7,NM5,NM6)。
1.2 對(duì)稱約束
在高性能電路,尤其是全差分電路中,通常要求器件對(duì)稱放置以減小寄生及其引起的失配。關(guān)于y軸方向?qū)ΨQ的器件的坐標(biāo)需要滿足以下條件:
關(guān)于x軸方向?qū)ΨQ與y方向類似。
1.3 臨近約束
在模擬集成電路版圖中,有時(shí)需要對(duì)特殊器件作臨近處理。例如有些器件放在同一襯底/阱內(nèi)可以大大減小失配,例如圖1中PM0和PM5;有時(shí)多個(gè)器件的參數(shù)成比例關(guān)系,例如圖1的R1和R2,此時(shí)將它們作臨近處理可以減小工藝帶來(lái)的失配。
1.4 電流方向上的約束
在一個(gè)電路設(shè)計(jì)中,VDD和GND可以為上下位置關(guān)系或者左右位置關(guān)系。所以定義了直流通路內(nèi)部的位置約束:靠近電源、靠近地、上下位置關(guān)系。
2 序列對(duì)的描述
序列對(duì)(Sequence Pair)[4]是一對(duì)表示版圖器件相對(duì)位置關(guān)系的序列。例如,一個(gè)序列對(duì)(α,β)=(ABC,BAC),其中A、B、C是器件名稱。αi表示序列α中的第i個(gè)位置的元素,α表示 A在序列α中的位置。序列對(duì)表示兩個(gè)器件相對(duì)位置關(guān)系的方式為:
實(shí)驗(yàn)表明,任何一個(gè)版圖都可以由一個(gè)序列對(duì)表示其器件的相對(duì)位置關(guān)系。
本文采用層次化的序列對(duì)表示版圖中單元的相對(duì)位置信息。采用的序列對(duì)共有兩層,以圖2為例介紹。第一層是器件組序列對(duì)(稱為Cluster SP)。例如圖2中,Cluster1有以下約束:a1在a2左側(cè),a3在a1和a2上方,則cls1=((a1,a2,a3),(a3,a1,a2));第二層是整體序列對(duì)(稱為Whole SP)。圖2中cls1,cls2和cls3 3個(gè)器件組滿足以下相對(duì)位置關(guān)系:cls2在cls1下側(cè),cls3在cls1和cls2右側(cè),則可以得到WholeSP=((cls1,cls2,cls3),(cls2,cls1,cls3))=((a1,a2,a3,b1,b2,b3,c1,c2),(b2,b3,b1,a3,a1,a2,c2,c1))。
3 空間搜索布局算法
本文采用空間搜索布局算法為后面的模擬退火算法提供一個(gè)好的初始解,空間搜索布局(Space Search Place,
SSP)過(guò)程分為3步:
(1)由器件組序列對(duì)構(gòu)造各器件組布局;
(2)依次放置各器件組,器件組邊界為矩形;
(3)對(duì)所有器件組進(jìn)行非矩形化調(diào)整。
3.1 構(gòu)造器件組
由ClusterSP可以構(gòu)造出每一個(gè)器件組布局。假設(shè)器件組A包含a1,a2,a3,a4。A的序列對(duì)(α, β)=((a1,a2,a3,a4),(a4,a2,a3,a1)),則可構(gòu)造出A的布局結(jié)果,如圖3(a)左側(cè)所示。圖3(a)右側(cè)是序列對(duì)B(α, β)=((b1,b2,b3,b4,b5),(b4,b5,b3,b1,b2))的布局結(jié)果。
3.2 矩形器件組構(gòu)造基礎(chǔ)版圖
由于器件組序列對(duì)已經(jīng)確定組內(nèi)單元的相對(duì)位置關(guān)系,所以放置器件組時(shí),先確定該組的邊界,然后整體放置該組即可。以圖3(b)為例,最先放置cls1(包含a1,a2,a3,a4)后,cls2在cls1右側(cè)。由此形成的布局結(jié)果如圖3(b)所示。
3.3 器件組的非矩形化調(diào)整
將所有器件組按矩形邊界放置后還需要調(diào)整器件組邊界為不規(guī)則圖形(jagged boundary)[5]。
對(duì)器件組內(nèi)各單元的調(diào)整分為兩步:(1)做邊界掃描,找到該單元可以放置的空間;(2)確定最合適的空間放置該單元。邊界掃描算法的流程如下:
Algorithm PlaceToLeft (BoxVec ,mj)
begin
p=0;//放置成功的標(biāo)志位
for iter=BoxVec.begin() to BoxVec.end()
if iter->top – iter->bottom >= mj.height;then{
PToLeft(mj);return 1;}//置于所有器件左側(cè)
comb= bCombine(bdBoxVec_sort);
//檢查是否有空間可以與*iter合并
if comb==0 //沒有可合并空間
then{ if *iter ==BoxVec.back()
PToLeft(mj);
else continue; }
else
for iter2=BoxVec.begin() to iter-1
if iter2->bm == iter->top
then{iter->top=iter2->top;
BoxVec.erase(iter2);
PlaceToLeft (mj); ++p;}
else if iter->bm== iter2->top
then{iter->bm=iter2->bm;
BoxVec.erase(iter2);
PlaceToLeft (mj);++p; }
if p==1 break;
endfor
endelse
if p==1 break;
endfor
end
4 模擬退火優(yōu)化
本文采用模擬退火算法進(jìn)行迭代優(yōu)化。采用的擾動(dòng)方式及其對(duì)約束的處理如下:
(1)M1:無(wú)約束器件在其器件組內(nèi)移動(dòng)(在α或β或兩者中)。
(2)M2:有約束器件在其器件組內(nèi)移動(dòng)(在α或β或兩者中)。該擾動(dòng)需滿足以下條件:有對(duì)稱約束的器件不能產(chǎn)生上下位置關(guān)系;若器件有相鄰約束,其相鄰器件一起作相同移動(dòng);有電流方向約束的器件相對(duì)位置關(guān)系不能改變。
(3)M3:器件在其相鄰器件組內(nèi)移動(dòng)。為滿足信號(hào)流約束,器件可以在相鄰期間組內(nèi)小范圍移動(dòng),不能跨多組移動(dòng)。
(4)M4:兩個(gè)屬于相鄰器件組的器件交換位置;有對(duì)稱約束的器件,其對(duì)稱器件作相應(yīng)交換。
(5)M5:旋轉(zhuǎn)器件組內(nèi)任一器件。若器件有對(duì)稱約束,則其對(duì)稱器件作相同擾動(dòng)。
以上5種擾動(dòng)只限于一個(gè)直流通路內(nèi)部或兩個(gè)相鄰直流通路,可以保證直流通路順序約束。而且與傳統(tǒng)的模擬退火算法相比,局部化的模擬退火大大減少無(wú)效擾動(dòng)次數(shù),更加高效。設(shè)總器件數(shù)為n,有m個(gè)直流通路。對(duì)傳統(tǒng)的模擬退火算法,選取兩個(gè)器件的種類數(shù)N1(M4)=C;本文算法選取兩個(gè)器件的種類數(shù)N2(M4)≈m×C≈N1/m??梢娭绷魍吩蕉啵瑪_動(dòng)種類會(huì)越少,算法時(shí)間消耗越少。
結(jié)合以上帶約束的擾動(dòng),退火算法目標(biāo)函數(shù)為:
Cost(p)=area(p)/AREA+λ×wire(p)/WIRE(3)
其中area(p)和wire(p)分別是布局p的面積和線長(zhǎng)(用半周長(zhǎng)表示),AREA=area(Di),即器件總面積,WIRE=(Wi+Li),即器件半周長(zhǎng)之和,Wi和Li分別為寬度和長(zhǎng)度;λ是area和wire權(quán)重的調(diào)節(jié)因子。
5 實(shí)驗(yàn)結(jié)果
本文算法由C++語(yǔ)言編程實(shí)現(xiàn),在一臺(tái)RedHat-Linux服務(wù)器上測(cè)試。選取了4個(gè)實(shí)際應(yīng)用較多的電路:緩沖運(yùn)算放大器(Buffer-amp)[6]、二級(jí)折疊式共源共柵運(yùn)放(Two stage-opa)、帶隙基準(zhǔn)電路(Bandgap)和帶共模反饋的全差分運(yùn)放(Cmfb-opa)。對(duì)模擬集成電路,關(guān)鍵路徑上的寄生效應(yīng)對(duì)電路性能影響很大。本文選交流信號(hào)路徑作為關(guān)鍵路徑,選用關(guān)鍵路徑線長(zhǎng)和版圖面積作為對(duì)比標(biāo)準(zhǔn),與參考文獻(xiàn)[7]、[8]中算法的對(duì)比結(jié)果見表1。結(jié)果顯示,本文的算法與參考文獻(xiàn)[7]、[8]相比,關(guān)鍵路徑線長(zhǎng)平均減小28%,面積平均減小16%。參考文獻(xiàn)[8]主要解決對(duì)稱問(wèn)題,與它相比,本文算法得到的關(guān)鍵路徑線長(zhǎng)減小40%。算法很好地確保了直流通路上和信號(hào)流路徑上的寄生效應(yīng)對(duì)電路性能影響最小。
6 結(jié)束語(yǔ)
本文提出了針對(duì)多約束條件的基于直流通路劃分的模擬集成電路布局算法,采用層次化的序列對(duì)表示相對(duì)位置關(guān)系,在滿足對(duì)稱、臨近等約束的基礎(chǔ)上,采用空間搜索布局算法產(chǎn)生一個(gè)比較好的初始布局,再用模擬退火算法迭代優(yōu)化。實(shí)驗(yàn)結(jié)果表明,本文算法可以產(chǎn)生按照直流通路順序放置的理想版圖,達(dá)到很好的布局效果。
參考文獻(xiàn)
[1] BALASA F,LAMPAERT K.Symmetry within the sequence-pair representation in the context of placement for analog design[J].IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems,2000,19(7):721-731.
[2] YUEN W S,YOUNG E F Y.Slicing floorplan with cluste-ring constrain[J].IEEE TCAD.2003,22(5):652-658.
[3] NOJIMA T,ZHU X,TAKASHIMA Y,et al.Multi-level
placement with circuit schema based clustering in analog IC layouts[C].Proc.ASPDAC,2004:406-411.
[4] MURATA H,F(xiàn)UJIYOSHI K,NAKATAKE S,et al.Rectanglepacking based module placement[C].Proceedings of IEEE International Conference on Computer Aided Design,1995:472-479.
[5] NOJIMA T,ZHU X,TAKASHIMA Y,et al.Multi-level placement with circuit schema based clustering in analog IClayouts[C].Proceedings of ASPDAC,2004:406-411.
[6] FISHER J,KOCH R.A highly linear CMOS buffer amplifier[J].IEEE Journal of Solid-State Circuits SC,1987(22):330-334.
[7] Zhang Lingyi,Dong Sheqin,Ma Yuchun,et al.Multi-stage analog placement with various constraints[C].ICCCAS,2010:881-885.
[8] Zhang Lihong,RAUT R,Jiang Yingtao,et al.Placement algorithm in analog-layout designs[J].IEEE Trans CADICS,2006,25(10):1889-1903.