系統(tǒng)級封裝中總線在雙邊多繞道約束下的解繞方法
【專利摘要】系統(tǒng)級封裝中總線在雙邊多繞約束下的解繞方法,其特征在于,按從左到右總線信號順序,對于總線中每一條連線,從預定義連接模式中選擇合適模式實現(xiàn)互連,并通過后期檢測,在可行情況下采用優(yōu)化模式代替原有連接模式,達到以較少的繞道實現(xiàn)互連解繞。
【專利說明】系統(tǒng)級封裝中總線在雙邊多繞道約束下的解繞方法
【技術(shù)領(lǐng)域】
[0001]系統(tǒng)級封裝中總線在雙邊多繞道約束下的解繞方法,屬于集成電路計算機輔助設(shè)計領(lǐng)域中的芯片總線信號互連設(shè)計領(lǐng)域。
【背景技術(shù)】
[0002]當前超大規(guī)模集成電路設(shè)計中隨著規(guī)模越來越大,設(shè)計者需要在更多更嚴格的物理限制下對越來越多的芯片進行互連,由于規(guī)模的增大導致的傳統(tǒng)的人工方法已經(jīng)不適應產(chǎn)業(yè)的發(fā)展。需要設(shè)計出能夠自動實現(xiàn)并保證在特定條件下,如長度匹配,信號對約束條件下的芯片互連工具。芯片互連中的芯片的信號順序也是在互連工具設(shè)計中一個不可忽視的因素,由于芯片由不同的廠家生產(chǎn)制造,導致他們之間的連線信號順序不一定完全相同,簡單的直接按相對位置關(guān)系互連有可能會產(chǎn)生信號混亂。在兩個芯片信號序列不一定相同的情況下,需要通過一種預處理技術(shù)把不同順序的總線信號進行重排序,使重排序后在兩個芯片的總線信號在同一塊電路版的同一層上能以簡單的直接連接方式實現(xiàn)不相交的相連。(如圖1)當我們需要將芯片I上信號(1-6)與芯片2上信號(1-6)在同一層上實現(xiàn)互連時,因為在芯片的系統(tǒng)封裝中將信號從角針陣列里路由到芯片邊界時他們的信號排列不一定相同,如圖中頂部信號序列為{2,1,4,5,6,3},而底部信號在解繞區(qū)形成的信號序列為{1,2,3,4,5,6} 0為了實現(xiàn)兩個芯片能同一層平面中實現(xiàn)直接互連,所以需要對他們的順序在解繞區(qū),按要求進行調(diào)整,以實現(xiàn)兩個信號的排列順序相同,便于在長度匹配布線區(qū)域中不出現(xiàn)交叉的情況。在一些特定情況下,兩個信號順序不同的芯片能在單邊單繞道的情況下實現(xiàn)互連。單邊單繞道是指在同一個平面內(nèi)實現(xiàn)兩列信號對應相連時,連線的繞道只能夠在某列信號的同一邊區(qū)域進行,而所有的連線在此列信號另一邊區(qū)域的部分只能是一條直線。如圖2中的繞道區(qū)域為頂部信號上部區(qū)域(矩形區(qū))。但是不是任意順序的兩個芯片總線信號都能夠在單邊單繞道條件下實現(xiàn)互連,有時需要在雙邊單繞條件下或者雙邊多繞道情況下才能夠連接。雙邊多繞是在連接兩列順序不同的信號過程中,連線的繞道區(qū)域包括兩個信號序列的每一邊(如圖3),雙邊多繞道的總線解繞方法就是一種約束條件更少,適應范圍也更廣的有效的總線互連布線技術(shù)??梢允箖山M順序不同總線信號能夠在繞道相對較少的情況完成互連。
【發(fā)明內(nèi)容】
[0003]在集成電路設(shè)計中,雙邊多繞道方法可以應用于在兩個具有不同信號順序的總線信號組的芯片進行相連,本方法可以對有任意順序的兩組總線信號進行互連,并對連接的結(jié)果進行優(yōu)化。
[0004]本發(fā)明的特征在于,它是在計算機中依次按照以下步驟實現(xiàn)的:
[0005]步驟(1),初始化,設(shè)頂部焊點序列為(%’,&2’,&3’.......an’),底部焊點序列為
(V,V,V,.....bn,),
[0006]輸入:[0007]所有頂部焊點上需要解繞互連的總線信號組成的頂部總線信號序列
Ca1, a2, a3.......an),n為頂部總線信號個數(shù),與頂部焊點個數(shù)相同,Ca1, a2, a3.......an)是
由自然數(shù)序列{1,2,3,4,......,η}生成的一個排列,信號aek, i e [I,n], k e [I,η],表
示頂部信號k在頂部焊點a/上;
[0008]所有底部焊點上需要解繞互連的總線信號組成的底部信號序列(bi,b2,b3,….bn),η為底部總線信號個數(shù),與所述頂部總線信號個數(shù)η在數(shù)值上相等,(b” b2, b3,…..bn)也是由同一個自然數(shù)序列{1,2,3,4,…η}生成的一個排列,信號b」=k,je [l,n],ke [I,η],表示底部信號k在底部焊點b/上;
[0009]初始時,所述頂部總線信號序列Upaha3.......an)與底部總線信號序列
(bn b2,b3,…..bn)中,頂部信號屮與底部信號bj的互連表示為ai=k,bj=k,其中i e [I,n], j e [I, n], k e [I, η](如圖 4);
[0010]步驟(2),按以下方法對總線信號進行重命名:
[0011]對底部總線信號序列(Id1, b2, b3,…..bn)中的每一個信號b」,j e [1,11],重命名13」以及與4互連的對應的頂部信號a”使%=_]_,1^=」;結(jié)果使底部信號序列為(bDbbf...bn) = (l、2、3、......η),頂部信號序列 U1, a2,a3.......an)為序列(1、2、3、......η)的一個
新生成序列;
[0012]以ax代表當前頂部最左邊第一個未連接的總線信號,以by代表底部左邊第一個沒有連接的總線信號,以U代表全部沒有連接的信號對個數(shù),X, y初始值為1,U初始值為η (如圖5);
[0013]步驟(3),對每一個底部信號by,y e [1,11],把與其相連接的頂部信號\所在的頂部焊點序列的相對位置表示為T[y]3PaT[y]與by相連,對于每一個頂部信號a” i e [I,η],設(shè)置 T [a,] =i,得到 T [I],T [2],T [3],......T[n];
[0014]步驟(4),計算與頂部左邊第一個信號\相連的底部信號bax左邊當連接的總線信號個數(shù)p=ax_y+l,包括bax ;計算與底部左邊第一個信號by相連頂部信號aby的左邊當前未連接的總線信號個數(shù)q=T[y]-x+l,包括aby (如圖6);
[0015]步驟(5),定義連接模式:
[0016]步驟(5.1), straight (ax, by)模式:頂部總線信號ax與底部總線信號by直接相連;
[0017]步驟(5.2),down-left (bax, by, ax)模式:連接線從底部總線信號bax出發(fā),繞道底部信號bax與底部信號by之間的已經(jīng)連接信號,然后穿過底部信號by,Ivi之間通道,然后與頂部信號ax相連;
[0018]步驟(5.3),up-righ (ax, ac, bax)模式,連接線從頂部總線信號ax出發(fā),繞過頂部信號ax與a。之間所有已經(jīng)連接信號,然后穿過頂部信號a。與&。+1之間,再與底部信號bax相連。其中a。,bax分別是當前最右邊未連接的頂部,底部總線信號;
[0019]步驟 (5.4), up-left (aty, ax, by)模式:連接線從頂部總線信號aty出發(fā),繞道頂部信號aty與頂部ax之間所有已經(jīng)連接的信號,穿過頂部信號an,ax之間,然后與底部信號by相連;
[0020]步驟(5.5), down-right (by, bc, aty)模式,連接線從底部總線信號by出發(fā),繞道底部信號by與b。之間所有已經(jīng)連接的信號,穿過底部信號b。,bc+1之間,然后與頂部信號aty相連。其中aty,b。分別是最右邊沒有連接的頂部和底部總線信號;
[0021]步驟(6.6),右框“[”連接模式:“[”(aty,ac;1,bdl,by)連接模式指連線從頂部總線信號aty出發(fā),經(jīng)頂部信號與a。^之間通道和底部信號bdl與之間通道,與底部總線信號by相連接,繞道數(shù)為I;
[0022]步驟(6),根據(jù)P, q, u的大小關(guān)系,選擇連接模式;
[0023]步驟(6.1),如果 p=q=l,選擇 straight (ax, by)模式(如圖 7);
[0024]步驟(6.2),如果 u>p>q ;選擇 down-left (bax, by, ax)模式(如圖 8);
[0025]步驟(4.3),如果 u=p>q,選擇 down-left (bax, by, ax)模式或 up-righ (ax, ac, bax)模式中繞道較少的連接模式(如圖9);
[0026]步驟(4.4),如果 u>q>p,選擇 up-left (aty, ax, by)模式(如圖 10);
[0027]步驟(4.5),如果 p〈q=u,選擇 up-left (aty, ax, by)或 down-right (by, bc, aty)模式中繞道較少的連接模式,(如圖11);
[0028]步驟(4.6),如果 p=q〈u,選擇 up-left (aty, ax, by)或 down-left (bax, by, ax)模式模式中繞道較少的連接模式;
[0029]步驟(4.5),如果 p=q=u,選擇 up-left (aty, ax, by)或 down-right (by, bc, aty)或down-left (bax, by, ax)模式或up-righ (ax, a。,bax)模式中的繞道數(shù)最少的連接模式;
[0030]步驟(5),右框“[”模式:“[”(、,&_,\,\)模式中,連接線從底部信號、出發(fā),經(jīng)頂部信號amin與Bmilri之間通道和底部信號bk與Iv1之間通道,與底部信號by相連接。
[0031]對所有連接為down-left (bax, by, ax)或up-left (aty, ax, by)連接模式且繞道數(shù)大于I的連接,如果可以右框“[”模式代替以減少繞道數(shù)目,則用“[”模式代替原連接模式。對當前連接模式為up-left (aty, ax, by)為時,具體過程如下:
[0032]設(shè)從頂部信號ax到頂部信號aty之間編號最小的已經(jīng)連接的信號amin,假設(shè)頂部信號amin與底部信號bamin相連中的的連線通過aq與Strl之間的空間實現(xiàn)相連。如果以下三個條件能夠同時滿足,則采用右框“[”模式優(yōu)化互連結(jié)果:
[0033](I)頂部總線信號amin與底部總線信號bk的連接模式為up-left (aty, ax, by)且其中的繞道數(shù)為I ;
[0034](2)從底部信號bk到當前信號by之間的所有信號,與其互連的對應頂部信號全部在信號%與aty之間;
[0035](3)從頂部信號a,到當前信號ax之間的所有信號,與其互連的對應底部信號全部在信號bk與by之間;
[0036]如果以上三個條件同時成立,則可以用右框“ [” (aty, aq, bk, by)模式優(yōu)化連接,即連線從頂部信號aty出發(fā),經(jīng)過頂部信號a,與a(rl之間通道和底部信號bk與Iv1之間通道,與底部信號by實現(xiàn)互連,如圖(12);
[0037]對于連接模式為down-left (bax, by, ax),按相似的方法優(yōu)化。
[0038]步驟(6),更新X,y值,重新計算p,q, U值,重復步驟(4_5),直到所有的總線信號連接完畢。
[0039] 本發(fā)明可以應用于在系統(tǒng)級封裝中總線互連的前期預處理階段,可以在有效時間內(nèi)對兩組順序不同的信號在雙邊多繞的條件下實現(xiàn)進行解繞互連,能夠完全調(diào)整好任意兩個信號序列使其信號一一對應,為互連的其他程序打下基礎(chǔ)。【專利附圖】
【附圖說明】
[0040]圖1不同信號順序芯片互連,
[0041]圖2單邊單繞道示意圖,
[0042]圖3雙邊多繞道示意圖,
[0043]圖4初始輸入總線信號,
[0044]圖5重命名后總線信號,
[0045]圖6 P, q的數(shù)值計算,
[0046]圖7 straight (ax, by)模式連接,
[0047]圖8 down-left (bax, by, ax)模式連接,
[0048]圖9 up-righ (ax, ac, bax)模式連接,
[0049]圖10 up-left (aty, ax, by)模式連接,
[0050]圖11 down-right (by, bc, aty)模式連接,
[0051]圖12右框“[”模式連接,
[0052]圖13 1-5次迭代結(jié)果,
[0053]圖14 6-10次迭代結(jié)果,
[0054]圖15 11-15次迭代結(jié)果,
[0055]圖16 15-20次迭代結(jié)果,
[0056]圖17程序流程圖,
【具體實施方式】
[0057]本發(fā)明可以針對任意的兩個芯片總線互連情況。在對兩個需要互連的總線信號重命名以后,以ax代表頂部最左邊第一個沒有連接的總線信號,以by代表底部左邊第一個沒有連接的總線信號,以u代表全部沒有連接的網(wǎng)線數(shù);計算與ax相連的bax左邊沒有連接的總線信號數(shù)P,計算與by相連aby的左邊沒有連接的總線信號數(shù)q,以P,q, u,的大小關(guān)系,選擇連接模式。下面以一個實際的例子來說明雙邊多繞道方法:在重命名總線信號以后,頂部總線信號序列是(19,17,2,11,10,15,16,1,8,4,5,20,7,12,18,14,9,13,6,3),迭代過程如下:[0058]第一次迭帶,1=1,7= 1,卩=19,卩=8,11 = 20.11>?>9,選擇down-left (b19=19, Id1=I, 8^19)模式,連接 N19,如圖(13);
[0059]第二次迭帶,1 = 2,7 = 1,卩=17,卩=8,11=19.11>卩>9,選擇down-left (b17=17, Id1=I, a2=17)模式,連接 N17,如圖(13);
[0060]第三次迭帶,x=3,y=l, p=2, q=8, u=18.p<p<u,選擇 up-left (a8=l, a3=2, Id1=I)模式,連接N1,如圖(13);
[0061]第四次迭帶,x=3,y=2, p=l, q=l, u=17.p=q,選擇 straight (a3=2, b2=2)模式,連接N2,如圖(13);
[0062]第五次迭帶,x=4,y=3, p=9, q=16, u=17.u=q>p,選擇 up-left (a2Q=3, a4=ll, bs=3)模式,連接N3,但是因為有2個繞道,而利用新模式(右框“[”模式)(&20=3,~=2Λ=1,b3=3),可以減少繞道,所以,刪除up-left (a2CI=3, a4=ll, bs=3)模式連接,選右框模式連接N3,如圖(13);
[0063]第六至二十次如圖(14),圖(15),圖(16)。
[0064]本發(fā)明所述的雙邊多繞道的總線信號互連方法具有以下幾個優(yōu)點:
[0065](I).能夠?qū)τ腥我忭樞虻目偩€信號的芯片實現(xiàn);
[0066]⑵.可以進連接的結(jié)果進行優(yōu)化,以減少繞道個數(shù);
[0067](3).可以通過計算機自動實現(xiàn),具有工業(yè)應用價值,可以用于集成電路設(shè)計過程中的布線及芯片互連領(lǐng)域。
【權(quán)利要求】
1.系統(tǒng)級封裝中總線在雙邊多繞約束下的解繞方法,其特征在于,它是在計算機中依次按照以下步驟實現(xiàn)的: 步驟(1),初始化,設(shè)頂部焊點序列為(a/,a2’,a3’.......an’),底部焊點序列為(V,V,V,.....bn,), 輸入: 所有頂部焊點上需要解繞互連的總線信號組成的頂部總線信號序列Ca1, a2, a3.......an),n為頂部總線信號個數(shù),與頂部焊點個數(shù)相同,Ca1, a2, a3.......an)是由自然數(shù)序列{1,2,3,4,......,η}生成的一個排列,信號aek, i e [I,n], k e [I,η],表示頂部信號k在頂部焊點a/上; 所有底部焊點上需要解繞的相應總線信號組成的底部信號序列0? b2, b3,…..bn),η為底部總線信號個數(shù),與所述頂部總線信號個數(shù)η在數(shù)值上相等,(b1; b2, b3,.....bn)也是由同一個自然數(shù)序列{1,2,3,4,…η}生成的一個排列,信號b」=k,j e [I, n], k e [I, η],表示底部信號k在底部焊點b/上; 初始時,所述頂部總線信號序列U1, a2, a3.......an)與底部總線信號序列 (bn b2,b3,…..bn)中,頂部信號屮與底部信號bj的互連表示為ai=k,bj=k,其中i e [I,n], j e [I, n], k e [I, η]; 步驟(2),按以下方法對總線信號進行重命名: 對底部總線信號序列Od1, b2, b3,…..bn)中的每一個信號bj, j e [I, η],重命名b」以及與1^_互連的對應的頂部信號a”使%=_]_,1^=」;結(jié)果使底部信號序列為bn) = (l、2、3、......η),頂部信號序列 U1, a2,a3.......an)為序列(1、2、3、......η)的一個新生成序列; 以\代表當前頂部最左邊第一個未連接的總線信號,以by代表底部左邊第一個沒有連接的總線信號,以u代表全部沒有連接的信號對個數(shù),X, y初始值為1,U初始值為η; 步驟(3),對每一個底部信號by,y e [I, η],把與其相連接的頂部信號ax所在的頂部焊點序列的相對位置表示為T[y]3PaT[y]與by相連,對于每一個頂部信號a” i e [I,η],設(shè)置 T [a,] =i,得到 T [I],T [2],T [3],......T[n]; 步驟(4),計算與頂部左邊第一個信號ax相連的底部信號bax左邊當連接的總線信號個數(shù)p=ax_y+l,包函bax ;計算與底部左邊第一個信號by相連頂部信號aby的左邊當前未連接的總線信號個數(shù)q=T[y]_x+l,包函aby; 步驟(5),定義連接模式: 步驟(5.1), straight (ax, by)模式:頂部總線信號ax與底部總線信號by直接相連;步驟(5.2),down-left (bax, by, ax)模式:連接線從底部總線信號bax出發(fā),繞道底部信號bax與底部信號by之間的所有已經(jīng)連接信號,然后穿過底部信號by,b"之間通道,然后與頂部信號ax相連; 步驟(5.3), up-right (ax, ac, bax)模式中,連接線從頂部總線信號ax出發(fā),繞過頂部信號ax與a。之間所有已經(jīng)連接信號,然后穿過頂部信號a。,ac+1之間,再與底部信號bax相連,其中a。,bax分別是當前最右邊未連接的頂部,底部總線信號; 步驟(5.4), up-left (aty, ax, by)模式:連接線從頂部總線信號aty出發(fā),繞道頂部信號aty與頂部ax之間所有已經(jīng)連接的信號,穿過頂部信號a^,ax之間,然后與底部信號by相連; 步驟(5.5), down-right (by, b。,aty)模式,連接線從底部總線信號by出發(fā),繞道底部信號by與b。之間所有已經(jīng)連接的信號,穿過底部信號b。,bc+1之間,然后與頂部信號aty相連,其中aty,b。分別是最右邊沒有連接的頂部和底部總線信號; 步驟(6.6),右框“[”連接模式:“[”(aty,ac;1,bdl,by)連接模式指連線從頂部總線信號aty出發(fā),經(jīng)頂部信號與a。^之間通道和底部信號bdl與之間通道,與底部總線信號by相連接,繞道數(shù)為I; 步驟(6),根據(jù)P, q, u的大小關(guān)系,選擇連接模式; 步驟(6.1),如果p=q=l,選擇straight (ax, by)模式連接ax與by ;
步驟(6.2),如果 u>p>q ;選擇 down-left (bax, by, ax)模式連接 bax 與 ax;
步驟(6.3),如果 u=p>q,選擇 down-left (bax, by, ax)模式連接或 up-right (ax, a。,bax)模式連接中繞道較少的模式連接bax與ax ; 步驟(6.4),如果 u>q>p,選擇 up-left (aty, ax, by)模式連接 by 與 aty ;
步驟(6.5),如果 p〈q=u,選擇 up-left (aty, ax, by)連接模式或 down-right (by, bc, aty)連接模式中繞道較少的模式連接by與aty ; 步驟(6.6),如果p=q〈u,選擇up-left (aty, ax, by)模式連接by與aty或選擇down-left (bax, by, ax)模式連接 ax 與 bax ;
步驟(6.7),如果 p=q=u,選擇 up-left (aty, ax, by)或 down-right (by, bc, aty)連接 by 與aty,選擇 up-right (ax, a。,bax)或 down-left (bax, by, ax)模式連接 ax 與 bax ; 步驟(7),以右框“[”連接模式優(yōu)化連接繞道數(shù): 對所有連接為down-left (bax, by, aax)或up-left (aty, ax, by)連接模式且繞道數(shù)大于I的連接,如果以右框“[”模式代替以減少繞道數(shù)目,則用“[”模式代替原連接模式,當前連接模式為up-left (aty, ax, by)時,優(yōu)化方法如下:設(shè)頂部總線信號\與~之間的信號編號最小的已經(jīng)連接的頂部總線信號為^lin=L則與amin相連的底部總線信號為bamin=bk, amin與bk的連接中連線從amin出發(fā),通過aq與Strl之間的通道與bk相連,如果以下三個條件能夠同時滿足,則采用右框“[”模式優(yōu)化互連結(jié)果:(O頂部總線信號amin與底部總線信號bk的連接模式為up-left (aty, aq, bk)且其中的繞道數(shù)為I ; (2)從底部信號bk到當前信號by之間的所有信號,與其互連的對應頂部信號全部在信號aq與aty之間; (3)從頂部信號a,到當前信號ax之間的所有信號,與其互連的對應底部信號全部在信號bk與by之間; 如果以上三個條件同時成立,則可以用右框“ [” (aty, aq, bk, by)模式優(yōu)化連接,即連線從頂部信號aty出發(fā),經(jīng)過頂部信號a,與a(rl之間通道和底部信號bk與Iv1之間通道,與底部信號by實現(xiàn)互連; 對于連接模式為down-left (bax, by, aax),按相同的方法優(yōu)化; 步驟(6),更新X,y,重新計算p,q, u值,重復步驟(4-6),直到全部的總線信號連接完 成。
【文檔編號】G06F17/50GK103886157SQ201410125427
【公開日】2014年6月25日 申請日期:2014年3月28日 優(yōu)先權(quán)日:2014年3月28日
【發(fā)明者】董社勤, 林濤, 羅輔其 申請人:清華大學