專利名稱:SoC 集成電路自動布局設(shè)計中的模組、宏單元、標準單元同步布局的收斂方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于半導體集成電路及微電子技術(shù)領(lǐng)域,具體涉及一種SoC集成電路自動布局 設(shè)計中的模組、宏單元、標準單元同步布局的收斂系統(tǒng)和方法。
背景技術(shù):
集成電路設(shè)計技術(shù)是當今電子與信息工業(yè)的最重要與基本的關(guān)鍵技術(shù)。在這一關(guān)鍵技 術(shù)中,計算機輔助設(shè)計工具技術(shù)(EDA)是其中最重要的組成技術(shù)之一。計算機輔助設(shè)計 工具技術(shù)又有數(shù)種不同用途的軟件技術(shù)所組成,其中,集成電路版圖布局技術(shù)是一種把電 子線路中的元器件按集成電路制造所要求的設(shè)計規(guī)則自動地安置在給定空間的技術(shù),沒有 這種技術(shù),當今的大規(guī)模集成電路芯片設(shè)計是無法實現(xiàn)的。
集成電路布局技術(shù)是針對一個電路中大量的基本單元(標準單元或稱作Standard Cell)和宏模塊(Macro Cell)進行合理的物理坐標位置分配,使得所有的基本單元和宏 模塊(通稱為節(jié)點)在一個指定的空間中互不交疊地擁有自己的地盤,并且要求相互連接 的節(jié)點間的相對位置最近,總連線長度最短,且電學信號在其上的性能必須達到電路所要 求的時序要求。對于標準單元的布局問題,最基本的實現(xiàn)方法是布局算法(Placement), 學術(shù)界和工業(yè)界都已有成熟的算法和應用軟件。布局算法在理論上被證明為一個"NP-完 全"問題,即布局問題的計算量及對內(nèi)存的要求是隨著節(jié)點數(shù)量的增加呈指數(shù)式增加,也 就是說,如果一個布局算法對于1萬個節(jié)點的計算沒有問題,但對于1萬零1個節(jié)點就可 能超出同一臺計算機的容量和所要求完成的時間了。在當今的SoC級集成電路時代, 一個 電路就包含幾百萬甚至幾千萬以上的節(jié)點,并以每18個月翻一倍的速度增加,這樣,現(xiàn) 有的算法及計算能力永遠無法滿足集成電路設(shè)計工業(yè)對布局軟件的要求,解決這一 SoC集 成電路布局難題,不僅對于我國的集成電路工業(yè)有著重要的促進作用,而且也能產(chǎn)生長遠 的經(jīng)濟效益。本發(fā)明提供了一種能夠適合集成電路規(guī)模無限擴大情況下的模組、宏單元、標準單元 同步自動布局的收斂方法和系統(tǒng),使得布局的效果不受電路規(guī)模的限制,并達到面積小、 擁擠度低、計算時間短的優(yōu)異結(jié)果。 發(fā)明內(nèi)容本發(fā)明提供了一種自動布局設(shè)計中的模組、宏單元、標準單元同步布局的收斂方法和系統(tǒng),技術(shù)實現(xiàn)方案如下-SoC集成電路版圖的自動布局任務(wù)是要把該電路中的模組、宏單元及標準單元自動地 按電路性能要求放入到指定的空間中,如
圖1所示,引腳PAD組內(nèi)的空間即為布局的空間, 通常布局的空間與引腳PAD組間預留一定的空間用于電源及內(nèi)部部件與引腳之間的連線, 圖l中的虛線框內(nèi)即為布局空間模組(或稱軟模組)是指該模組內(nèi)的布局還未完成,模 組的邊界未定,可以在布局過程中改變,模組可以有多個,本例中為S1;宏單元是指已完 成設(shè)計的子電路,宏單元的面積、高度通常比較大,而且邊界是確定的,本例中的宏單元 為M1, M2, ... M6;標準單元是指具有統(tǒng)一高度的已設(shè)計完成的基本單元電路,通常指 與非門等基本邏輯單元, 一個電路中有大量的標準單元邏輯門。自動布局的過程是把上述 的模組、宏單元及標準單元按電路要求最優(yōu)化地放置到布局空間中。布局的具體過程及確 保收斂的步驟如下1. 標準單元集合提取由于標準單元的數(shù)量極大,不利于布局算法的收斂及計算機資源的利用。每個標準單 元稱為一個節(jié)點,為了簡化太多節(jié)點所造成的算法復雜化,需對原來的節(jié)點圖進行提取。 把關(guān)系密切的多個標準單元節(jié)點組成一個集合(Cluster),用集合當作新的節(jié)點,大大簡化 了原來的節(jié)點圖,如圖2中灰色部分所示。這一簡化節(jié)點圖的算法稱為Hyper-Graph方法, 可從公開文獻中找到。2. 4-分法分割給定的布局空間如圖3所示,把一個給定的布局空間平均地分成4等份,如圖中Q0, Ql, Q2, Q3 ,并計算出每個區(qū)域的中心位置p0, pl, p2, p3作為布局時節(jié)點所處的坐標。3. 初始布局隨機地把所有節(jié)點一個一個地分布到以上所分的區(qū)域中的中心位置上,并確保每個區(qū) 域中所分到的節(jié)點的總面積不會超過給定區(qū)域所容許的面積,如圖4所示。4. 布局優(yōu)化如圖5所示,布局優(yōu)化的過程是把所有節(jié)點在不同的區(qū)域中進行交換,并計算交換后 的目標函數(shù)值,當所有節(jié)點都交換一次后結(jié)束,并把具有最小目標函數(shù)值的布局找出來作 為結(jié)果,具體過程如下(4.1) 計算當前布局的目標函數(shù)值,目標函數(shù)一般有節(jié)點間的連線長度、時域延遲、 連線密度等構(gòu)成;(4.2) 計算每一個節(jié)點對于當前目標函數(shù)值的貢獻值,并把其對于其他區(qū)域的貢獻 值也計算出來,并按最大值至最小值遞降排序;(4.3) 選擇當前排序中處于最前面的節(jié)點,并選擇與之函數(shù)值最大的一個區(qū)域,進 行節(jié)點交換,并保證相關(guān)區(qū)域的面積不超過區(qū)域所容許的極限,超過區(qū)域面積極限者不進 行交換處理;(4.4) 記錄每一次交換的過程,并計算此時的目標函數(shù)值;(4.5) 重復過程(4.2) - (4.4),直至所有的節(jié)點都遍歷一次且每個節(jié)點只遍歷一次;(4.6) 在交換過程的歷史記錄中,找出具有最小目標函數(shù)值的交換位置,抹去該位 置以后的所有交換,此位置之前的節(jié)點交換記錄即是找到最佳布局的過程。5. 模組與宏單元布局對模組與宏單元在相應的區(qū)域中進行布局,如圖6所示。具體步驟如下(5.1) 標記模組及宏單元,區(qū)分已布局的與未布局的;(5.2) 在所有模組及宏單元中進行一次評估,評估的標準是在所有可放置模塊的空 間中,對每一個模塊進行一次試探性的放置,并計算其連線長度、擁擠程度、時域性能等指標S(5.3) 對步驟(5.2)中的所有結(jié)果進行排隊,在隊列中找出一個最適合的模塊進行放置;(5.4) 重復步驟(5.2)和(5.3),直至所有的模塊放置完畢。6. 標準單元集合布局當模組和宏單元布局后,進行標準單元集合的布局,如圖7所示,具體步驟如下(6.1) 選擇一個區(qū)域,比如Q0區(qū),并把標準單元集合從原來位置上卸下;(6.2) 把空置區(qū)域劃分成面積相當?shù)?份或2份,劃分方式則根據(jù)空置區(qū)域的形狀, 本例中為2份,并把集合節(jié)點隨機地分配到區(qū)域中,使得每個節(jié)點都有一個區(qū)域,但每個 區(qū)域中的節(jié)點總面積不超過該區(qū)域所容許的總面積;(6.3) 調(diào)用步驟4的布局優(yōu)化過程,進行標準單元集合的布局優(yōu)化過程;(6.4) 重復過程(6.1)至(6.3),直至所有4個區(qū)域都完成;(6.5) 對于以上產(chǎn)生的每一個子區(qū)域,判別區(qū)域內(nèi)是否具有2個或以上的集合,如 果是,則重復(6.1)至(6.4)的過程;(6.6) 重復過程(6.1)至(6.5),直至每個子區(qū)域包含不超過1個集合,標準單元 集合的布局過程結(jié)束。7. 產(chǎn)生N1個初始全局布局(7.1) 重復步驟3至6N0次,生成NO個初始布局,并記錄下來,這里N021, NO為用戶給定或內(nèi)部設(shè)定;(7.2) 按目標函數(shù)評估NO個布局,并根據(jù)目標函數(shù)值排隊;(7.3) 根據(jù)目標函數(shù)排隊結(jié)果,保留最好的N1個布局(這里N1^N0及N1^N2, N2為最終布局數(shù),N2^1),丟棄其他的布局結(jié)果。8. Nl個初始全局布局的二次優(yōu)化(8.1) 對于步驟7中的布局結(jié)果,置模組和宏單元的布局狀態(tài)為"未布局";(8.2) 重復步驟5和6N1次,產(chǎn)生N1個新的布局;(8.3) 按目標函數(shù)評估N1個布局,并根據(jù)目標函數(shù)值排隊;(8.4) 根據(jù)目標函數(shù)排隊結(jié)果,保留最好的N2個布局(N1^N2, N2為最終布局 數(shù),N2d)為最終的一組全局布局,丟棄其他的布局結(jié)果,全局布局收斂結(jié)束。9. 選擇一個最好的全局布局結(jié)果作為標準單元布局的起點,選擇過程可以是自動或 人工。10. 生成標準單元槽(ROW),如圖8所示。標準單元槽用來放置標準單元,標準單 元只能在槽里面放置。標準單元槽的生成可為人工或自動。11. 標準單元布局初始化(11.1) 計算標準單元槽的實際面積,并按步驟2的方法劃分布局區(qū)域;(11.2) 調(diào)用步驟6的過程對標準單元集合進行布局;(U.3)對每一個標準單元集合中的標準單元賦予隨機坐標值,坐標值得范圍必須在標 準單元集合所處區(qū)域的坐標范圍附近,如圖9所示。12. 標準單元布局(12.1) 定義一個布局4分區(qū)域,該區(qū)域應包含完整的標準單元槽,并在上下含有 相同數(shù)目的標準單元槽,如圖10所示;(12.2) 把以上區(qū)域放在包含標準單元槽的一個起始位置;(12.3) 把落在該區(qū)域中的標準單元放入相關(guān)的子區(qū)域中,調(diào)用步驟4的優(yōu)化過程, 使得標準單元在該子區(qū)域中的位置達到優(yōu)化分配;(12.4) 移動以上布局4分區(qū)域,調(diào)用步驟(12.3),直到標準單元布局區(qū)域內(nèi)的所 有位置都被覆蓋到后結(jié)束該過程;(12.5) 縮小布局4分區(qū)面積,重復(12.2)至(12.4)的過程,直至布局4分區(qū)的 高度小于2個標準單元槽高度而結(jié)束;(12.6) 標準單元布局結(jié)果如圖11所示。13. 模組、宏單元、標準單元同步布局收斂方法流程(13.1)如圖12所示,本發(fā)明的布局收斂方法實現(xiàn)于布局程序系統(tǒng)中。(13.11)(13.12) 進入(13.13);(13.13)(13.2) 程序開始,設(shè)置初始布局生成數(shù)NO,最終布局生成數(shù)N2,其中,N02N2;(13.3) 提取標準單元集合;(13.4) 用4-分法分割布局區(qū)域;(13.5) 設(shè)置剩余未完成的布局數(shù)r^NO;(13.6) 置當前剩余未完成的布局數(shù)i^n-l;(13.7) 進行步驟3所示的初始布局;(13.8) 用步驟4所示的4-區(qū)域優(yōu)化程序優(yōu)化當前布局;(13.9) 對模組及宏單元進行布局;(13.10) 對標準單元集合進行布局; 第一階段的全局布局結(jié)束,把結(jié)果存儲起來;判別當前剩余布局數(shù)是否大于0,如果是,則程序回到(13.6),否則,對在第一階段已完成的NO個布局進行評估,按目標函數(shù)值進行排隊, 選擇最好的N1個布局結(jié)果作為第二階段的布局起點,這里N1的選擇原則為N2^N1SN0; (13.14) 設(shè)置剩余未完成布局數(shù)n-Nl;置當前剩余未完成布局數(shù)n=n-l; 置當前模組及宏單元的布局狀態(tài)為"未布局'(13.15)(13.16)對模組及宏單元進行布局;局;(13.17) 置當前標準單元集合的布局狀態(tài)為"未布局",對標準單元集合進行布(13.18)(13.19) 進入(13.20);(13.20)記錄當前布局結(jié)果;判別當前剩余布局數(shù)是否大于O,如果是,則程序回到(13.15),否則,對在第二階段已完成的N1個布局進行評估,按目標函數(shù)值進行排隊, 選擇最好的N2個布局結(jié)果作為最終的全局布局結(jié)果,至此,全局布局已收斂,并產(chǎn)生一 組最好的全局布局結(jié)果作為標準單元的布局輸入;(13.21) 選擇一個合適的全局布局,通常由人工選擇較合適;(13.22) 生成標準單元布局槽;(13.23) 按步驟ll所述的方法進行布局初始化;(13.24) 按步驟12所述的方法進行標準單元布局程序;(13.25) 模組、宏單元及標準單元布局收斂結(jié)束。 14.模組、宏單元、標準單元布局的收斂方法和系統(tǒng)的運行環(huán)境(14.1) 本發(fā)明的布局系統(tǒng)運行在計算機系統(tǒng)中,如圖13所示;(14.2) 首先把本系統(tǒng)載入計算機系統(tǒng)的CPU及相應存儲單元中,同時打開所 需布局的SoC集成電路線路及初始設(shè)置,系統(tǒng)即可生成相應的布局圖。附田說明圖1所需布局的SoC集成電路版圖示意圖。本圖所示為自動布局前的集成電路版圖狀 態(tài)。圖的左邊為需要布局的空間,引腳PAD已預先排列完成,所有的電路單元都需要布局 在這一空間中。右邊的分別為軟模組、宏單元組、標準單元組。圖2標準單元集合提取示意圖。本圖所示為同步自動布局中的標準單元聯(lián)結(jié)圖的集合 提取(Clustering)。每個標準單元稱為一個節(jié)點,為了簡化太多節(jié)點所造成的算法復雜化, 需對原來的節(jié)點圖進行提取。把關(guān)系密切的多個標準單元節(jié)點組成一個集合(Cluster),用 集合當作新的節(jié)點,大大簡化了原來的節(jié)點圖,如圖中灰色部分所示。這一簡化節(jié)點圖的 算法稱為Hyper-Graph方法,可從公開文獻中找到。圖3布局區(qū)域的4-分法示意圖。本圖所示為4分布局區(qū)域,分為Q0, Ql, Q2, Q3 四個區(qū)域,每個區(qū)域的中心點位置設(shè)定為該區(qū)域的布局坐標,如圖中p0,pl,p2,p3。圖4以隨機方法進行節(jié)點的初始布局示意圖。本圖所示為4分法初始布局。隨機地把 軟模組、宏單元、標準單元集合放入4個區(qū)域中的一個區(qū)域,直到放入的節(jié)點總面積大于 該區(qū)域的面積。圖5用4-分法優(yōu)化布局過程示意圖。本圖所示為4分法優(yōu)化布局過程及其結(jié)果。1.計 算當前布局的目標函數(shù)值,目標函數(shù)一般有節(jié)點間的連線長度、時域延遲、連線密度等構(gòu) 成。2.計算每一個節(jié)點對于當前目標函數(shù)值的貢獻值,并把其對于其他區(qū)域的貢獻值也計 算出來,并按最大值至最小值遞降排序;3.選擇當前排序中處于最前面的節(jié)點,并選擇與 之函數(shù)值最大的區(qū)域,進行節(jié)點交換,并保證相關(guān)區(qū)域的面積不超過區(qū)域所容許的極限, 超過區(qū)域面積極限者不進行交換處理;4.記錄每一次交換的過程,并計算此時的目標函數(shù) 值;5.重復過程2-4,直至所有的節(jié)點都遍歷一次且每個節(jié)點只遍歷一次;6.在交換過程 的歷史記錄中,找出具有最小目標函數(shù)值的交換位置,抹去該位置以后的所有交換,此位 置之前的節(jié)點交換記錄即是找到最佳布局的過程。圖6軟模組、宏單元布局過程示意圖。本圖所示為軟模組及宏單元的布局過程及其結(jié) 果。1、標記軟模組及宏單元,區(qū)分已布局的與未布局的;2、在所有軟模組及宏單元中進 行一次評估,評估的標準是在所有可放置模塊的空間中,對每一個模塊進行一次試探性的 放置,并計算其連線長度、擁擠程度、時域性能等指標;3、對步驟2中的所有結(jié)果進行
排隊,在隊列中找出一個最適合的模塊進行放置,如圖中Q2區(qū)中的M4宏單元;4、重復 歩驟2和3,直至所有的模塊放置完畢。圖7標準單元集合布局過程示意圖。本圖所示為標準單元集會層次式的布局過程及其 結(jié)果。1、選擇一個區(qū)域,比如Q0區(qū),并把標準單元集合從原來位置上卸下;2、把空置 區(qū)域劃分成面積相當?shù)?份或2份,劃分方式則根據(jù)空置區(qū)域的形狀,本例中為2份,并 把集合節(jié)點隨機地分配到區(qū)域中,使得每個節(jié)點都在一個區(qū)域,但每個區(qū)域中的節(jié)點總面 積不超過該區(qū)域所容許的總面積;3、調(diào)用圖4中所示的4分法布局算法,優(yōu)化布局結(jié)果; 4、重復過程1-3,直至所有4個區(qū)域都完成;5、對于以上產(chǎn)生的每一個子區(qū)域,判別區(qū) 域內(nèi)是否具有2個或以上的集合,如果是,則重復2-4的過程;6、重復過程l-5,直至每 個子區(qū)域包含不超過1個集合,布局過程結(jié)束。圖8標準單元布局前的標準單元槽生成示意圖。本圖所示為標準單元布局前的標準 單元槽(ROW)的確定。標準單元槽用來放置標準單元,標準單元只能在槽里面放置。標 準單元槽的生成可為人工或自動。圖9標準單元布局初始化示意圖。本圖所示為標準單元布局的初始化過程。把標準 單元集合中的標準單元在集合所在區(qū)域附近隨機地放入標準單元槽。圖10標準單元在區(qū)域中布局優(yōu)化過程示意圖。本圖所示為標準單元的布局過程。定 義一定大小的布局4分區(qū)域,把該區(qū)域在標準單元布局空間依次移動,對于落在該區(qū)域的 標準單元迸行優(yōu)化,使得標準單元在4分區(qū)中的位置更優(yōu)化,優(yōu)化過程與圖5中的優(yōu)化過 程相同。圖11標準單元布局結(jié)果示意圖。 圖12布局系統(tǒng)流程示意圖。圖13布局系統(tǒng)所運行的計算機環(huán)境示意圖。左圖為計算機硬件結(jié)構(gòu)。右表為計 算機軟件結(jié)構(gòu)具體實施方式
(1) 選擇一臺計算機,內(nèi)存為512MB,硬盤為80GB,操作系統(tǒng)為Linux Fedora 6.0;(2) 啟動本發(fā)明的布局系統(tǒng);(3) 在布局系統(tǒng)中打開一個集成電路數(shù)據(jù)庫;(4) 啟動"全局布局"命令,全局布局就開始運行了;(5) 待布局過程結(jié)束,有一組全周布局圖產(chǎn)生;(6) 選擇一個全局布局圖,生成相應的標準單元槽;(7) 啟動"標準單元布局"命令,標準單元的布局即開始;
(8)等待標準單元布局過程結(jié)束,完整的布局過程就完成。
權(quán)利要求
1、 一種自動布局設(shè)計中的模組、宏單元、標準單元同步布局的收斂方法和系統(tǒng),其 特征在于集成電路版圖中包含引腳PAD組、模組(或稱軟模組)(Soft Block)、宏單元(Macro Cell)及標準單元(Standard Cell);引腳PAD組內(nèi)的空間為布局空間,布局空間與引腳PAD 組間預留一定的空間用于電源及內(nèi)部部件與引腳之間的連線;模組內(nèi)的布局還未完成,其 邊界可以改變;宏單元的面積、高度通常比較大,且邊界是確定的;標準單元具有統(tǒng)一高 度的己設(shè)計完成的基本單元電路。
2、 根據(jù)權(quán)利要求1所述的自動布局設(shè)計中的模組、宏單元、標準單元同步布局的收 斂方法和系統(tǒng),其特征在于對于所述的模組、宏單元、標準單元且具有相同或不同的幾何 尺寸、互相連接,不具有在布局空間中的合法位置,需要自動地以最優(yōu)化的方法放置到布 局空間中。
3、 一種模組、宏單元、標準單元自動布局的收斂方法,使用權(quán)利2所述的布局系統(tǒng), 其特征在于具體步驟如下(1) 標準單元集合提取把關(guān)系密切的多個標準單元節(jié)點提取成一個集合(Cluster),用集合當作新的節(jié)點。(2) 4-分法分割給定的布局空間把一個給定的布局空間平均地分成4等份,并計算出每個區(qū)域的中心位置作為布局時 節(jié)點所處的坐標。(3) 初始布局隨機地把所有節(jié)點一個一個地分布到以上所分的區(qū)域中的中心位置上,并確保每個區(qū) 域中所分到的節(jié)點的總面積不會超過給定區(qū)域所容許的面積。(4) 布局優(yōu)化對所有節(jié)點在不同的區(qū)域中進行交換,并計算交換后的目標函數(shù)值,當所有節(jié)點都交 換--次后結(jié)束,并把具有最小目標函數(shù)值的布局找出來作為結(jié)果,具體過程如下(4.1) 計算當前布局的目標函數(shù)值,目標函數(shù)一般有節(jié)點間的連線長度、時域延遲、 連線密度等構(gòu)成;(4.2) 計算每一個節(jié)點對于當前目標函數(shù)值的貢獻值,并把其對于其他區(qū)域的貢獻 值也計算出來,并按最大值至最小值遞降排序;(4.3) 選擇當前排序中處于最前面的節(jié)點,并選擇與之函數(shù)值最大的一個區(qū)域,進 行節(jié)點交換,并保證相關(guān)區(qū)域的面積不超過區(qū)域所容許的極限,超過區(qū)域面積極限者不進 行交換處理;(4.4) 記錄每一次交換的過程,并計算此時的目標函數(shù)值;(4.5) 重復過程(4.2) - (4.4),直至所有的節(jié)點都遍歷一次且每個節(jié)點只遍歷一次;(4.6) 在交換過程的歷史記錄中,找出具有最小目標函數(shù)值的交換位置,抹去該位 置以后的所有交換,此位置之前的節(jié)點交換記錄即是找到最佳布局的過程。(5) 模組與宏單元布局對模組與宏單元在相應的區(qū)域中進行布局。具體步驟如下(5.1) 標記軟模組及宏單元,區(qū)分已布局的與未布局的;(5.2) 在所有未布局的模組及宏單元中進行一次評估,評估的標準是在所有可放置 模塊的空間中,對每一個模塊進行一次試探性的放置,并計算其連線長度、擁擠程度、時 域性能等指標;(5.3) 對步驟(5.2)中的所有結(jié)果進行排隊,在隊列中找出一個最適合的模塊進行放置;(5.4) 重復步驟(5.2)和(5.3),直至所有的模塊放置完畢。(6) 標準單元集合布局當模組和宏單元布局后,進行標準單元集合的布局,具體步驟如下(6.1) 選擇一個區(qū)域,比如Q0區(qū),并把標準單元集合從原來位置上卸下;(6.2) 把空置區(qū)域劃分成面積相當?shù)?份或2份,劃分方式則根據(jù)空置區(qū)域的形狀, 本例中為2份,并把集合節(jié)點隨機地分配到區(qū)域中,使得每個節(jié)點都有一個區(qū)域,但每個 區(qū)域中的節(jié)點總面積不超過該區(qū)域所容許的總面積;(6.3) 調(diào)用步驟(4)的布局優(yōu)化過程,進行標準單元集合的布局優(yōu)化過程;(6.4) 重復過程(6.1)至(6.3),直至所有4個區(qū)域都完成;(6.5) 對于以上產(chǎn)生的每一個子區(qū)域,判別區(qū)域內(nèi)是否具有2個或以上的集合,如 果是,則重復(6.1)至(6.4)的過程;(6.6) 重復過程(6.1)至(6.5),直至每個子區(qū)域包含不超過1個集合,標準單元 集合的布局過程結(jié)束。(7) 產(chǎn)生N1個初始全局布局(7.4) 重復步驟(3)至(6) N0次,生成NO個初始布局,并記錄下來;(7.5) 按目標函數(shù)評估NO個布局,并根據(jù)目標函數(shù)值排隊;(7.6) 根據(jù)目標函數(shù)排隊結(jié)果,保留最好的N1個布局,丟棄其他的布局結(jié)果。(8) Nl個初始全局布局的二次優(yōu)化(8.1) 對于步驟(7)中的布局結(jié)果,置模組和宏單元的布局狀態(tài)為"未布局";(8.2) 重復步驟(5)和(6) Nl次,產(chǎn)生N1個新的布局;(8.3) 按目標函數(shù)評估N1個布局,并根據(jù)目標函數(shù)值排隊;(8.4) 根據(jù)目標函數(shù)排隊結(jié)果,保留最好的N2個布局為最終的一組全局布局,丟棄 其他的布局結(jié)果,全局布局收斂結(jié)束。(9) 選擇一個最好的全局布局結(jié)果作為標準單元布局的起點,選擇過程可以是自動 或人工。(10) 生成標準單元槽(ROW)。(11) 標準單元布局初始化(11.1) 計算標準單元槽的實際面積,并按步驟(2)的方法劃分布局區(qū)域;(11.2) 調(diào)用步驟(6)的過程對標準單元集合進行布局;(11.3) 對每一個標準單元集合中的標準單元賦予隨機坐標值,坐標值得范圍必須在 標準單元集合所處區(qū)域的坐標范圍附近。(12) 標準單元布局(12.1) 定義一個布局4分區(qū)域,該區(qū)域應包含完整的標準單元槽,并在上下含有 相同數(shù)目的標準單元槽;(12.2) 把以上區(qū)域放在包含標準單元槽的一個起始位置;(12.3) 把落在該區(qū)域中的標準單元放入相關(guān)的子區(qū)域中,調(diào)用步驟(4)的優(yōu)化 過程,使得標準單元在該子區(qū)域中的位置達到優(yōu)化分配;(12.4) 移動以上布局4分區(qū)域,調(diào)用步驟(12.3),直到標準單元布局區(qū)域內(nèi)的所 有位置都被覆蓋到后結(jié)束該過程;(12.5) 縮小布局4分區(qū)面積,重復(12.2)至(12.4)的過程,直至布局4分區(qū) 的高度小于2個標準單元槽高度而結(jié)束;
4、 根據(jù)權(quán)利要求3所述的自動布局設(shè)計中的模組、宏單元、標準單元同步布局的收 斂方法,其特征在于所述的NO可以人工設(shè)置,且N021。
5、 根據(jù)權(quán)利要求3所述的自動布局設(shè)計中的模組、宏單元、標準單元同步布局的收 斂方法,其特征在于所述的N1在系統(tǒng)內(nèi)部設(shè)置,且N1^N0。
6、 根據(jù)權(quán)利要求3所述的自動布局設(shè)計中的模組、宏單元、標準單元同步布局的收 斂方法,其特征在于所述的N2可以人工設(shè)置,且N2^N0。
7、 根據(jù)權(quán)利要求3所述的自動布局設(shè)計中的模組、宏單元、標準單元同步布局的收 斂方法,其特征在于所述的自動布局過程是-個布局數(shù)是一個逐步減少的過程。
8、 根據(jù)權(quán)利要求3所述的自動布局設(shè)計中的模組、宏單元、標準單元同步布局的收 斂方法,其特征在于所述的自動布局過程通過二次或以上獨立的模組宏單元布局及標準單 元集合布局,且每次獨立布局的初始狀態(tài)不同。
9、 根據(jù)權(quán)利要求8所述的自動布局設(shè)計中的模組、宏單元、標準單元同步布局的收 斂方法,其特征在于所述的模組及宏單元布局采用上一次標準單元集合布局的結(jié)果作為初 始條件。
10、 根據(jù)權(quán)利要求8所述的自動布局設(shè)計中的模組、宏單元、標準單元同步布局的收 斂方法,其特征在于所述的標準單元集合布局采用上一次模組及宏單元布局的結(jié)果作為初始條件。
11、 根據(jù)權(quán)利要求3所述的自動布局設(shè)計中的模組、宏單元、標準單元同步布局的收 斂方法,其特征在于所述的布局結(jié)果是一組全局布局結(jié)果,且布局結(jié)果數(shù)^1。
12、 根據(jù)權(quán)利要求3所述的自動布局設(shè)計中的模組、宏單元、標準單元同步布局的收 斂方法,其特征在于所述的標準單元的布局是從權(quán)利11所述的其中一個全局布局作為初始布局。
13、 根據(jù)權(quán)利要求3所述的自動布局設(shè)計中的模組、宏單元、標準單元同步布局的收 斂方法,其特征在于所述的標準單元布局是在全局布局完成后進行。
全文摘要
本發(fā)明屬于半導體微電子技術(shù)領(lǐng)域,具體涉及一種集成電路版圖自動布局設(shè)計中的模組、宏單元、標準單元同步布局的收斂方法和系統(tǒng)。該系統(tǒng)針對軟模組、宏單元及標準單元同時存在的情況下,首先產(chǎn)生一組數(shù)量較大的初始布局,并對初始布局進行軟模組和宏單元布局,再對標準單元集合布局,生成一組全局布局,然后對這組全局布局進行評估,把評估結(jié)果最好的一組數(shù)量較小的全局布局作為下一步的初始布局,再進行新的軟模組和宏單元布局及標準單元集合布局,并進行新一輪布局評估,保留一組結(jié)果最好的全局布局,由用戶選擇一個最合適的全局布局作為標準單元布局的起點,達到快速收斂的目的,從而可以對包含大量宏單元、軟模組及大量標準單元的SoC集成電路進行快速的布局,并可以生成布局面積小、連通程度高的集成電路布局,同時不受電路規(guī)模的限制。
文檔編號G06F17/50GK101145169SQ20071009386
公開日2008年3月19日 申請日期2007年6月14日 優(yōu)先權(quán)日2007年6月14日
發(fā)明者震 蔡 申請人:上海芯域微電子有限公司