《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 模擬設(shè)計(jì) > 設(shè)計(jì)應(yīng)用 > 基于直流通路劃分的模擬集成電路布局方法
基于直流通路劃分的模擬集成電路布局方法
2014年電子技術(shù)應(yīng)用第12期
劉 磊,吳玉平
(中國(guó)科學(xué)院微電子研究所,北京100029)
摘要: 對(duì)模擬集成電路自動(dòng)布局方法進(jìn)行研究,提出基于直流通路劃分的布局算法,結(jié)合直流通路順序約束和電源方向上的位置約束,采用空間搜索布局算法提供初始布局,并用模擬退火算法進(jìn)行迭代優(yōu)化。使用工業(yè)界常用的電路做測(cè)試,實(shí)驗(yàn)結(jié)果表明,該方法可以在滿足對(duì)稱和鄰近等約束的基礎(chǔ)上產(chǎn)生緊湊的布局結(jié)果,并且最小化直流通路和信號(hào)流路徑的寄生效應(yīng)。
中圖分類號(hào): TP391
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2014)12-0046-03
A method of analog placement based on DC channel clustering
Liu Lei,Wu Yuping
Institute of Microelectronics of Chinese Academy of Sciences,Beijing 100029,China
Abstract: This paper studies the methods of analog placement,and gives a method with the combination of DC channel clustering signal flow sequence constraints and current flow constraints. It uses the free space search algorithm to get the initial placement and the simulation annealing algorithm to reach the optimized placement,and we test it with several practical industry circuits. The results show that our method can generate compact placements fitting the symmetry and proximity constraints as well as the minimized parasitic effects on DC paths and signal paths.
Key words : analog placement;DC channel clustering;design constraints;signal flow;simulation annealing

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 約束的描述


001.jpg

  圖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)需要滿足以下條件:

  12.jpg

  關(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)系的方式為:

  1f.jpg

  實(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))。

002.jpg

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)所示。

003.jpg

  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ì)電路性能影響最小。

004.jpg

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.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。