專利名稱:交互版圖工具中的最短路徑實時查找算法的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于集成電路版圖設(shè)計自動化技術(shù)領(lǐng)域,具體涉及一種交互式版圖自動布線算 法,能夠?qū)崟r的査找出版圖上指定點或單元間最短的路徑。
背景技術(shù):
自動布線是集成電路版圖設(shè)計自動化領(lǐng)域的一項重要技術(shù)。隨著電路設(shè)計規(guī)模的不斷 增大和制造工藝精度的提高,版圖布線工作變得越來越繁重,在模擬電路設(shè)計中尤為突出。 自動布線技術(shù)能夠在很大程度上減輕版圖設(shè)計者的工作量和提高工作效率,同時還能保證 布線結(jié)果的正確性和合理性。
自動布線模型經(jīng)歷了由最初的基于網(wǎng)格模型(gridbased)向無網(wǎng)格模型(gridlessbased) 的轉(zhuǎn)化,而無網(wǎng)格模型又分為連接圖模型(connect graph)和基于圖形的模型(shapebased)。 基于網(wǎng)格模型通過將版圖劃分為由若干相同大小格點組成的陣列,進(jìn)而利用迷宮算法(maze routing)求得最短路徑。但是這種模型的主要問題就是難以找到一個通用的格點來適應(yīng)不 同線寬的線網(wǎng)和不同大小的通孔等設(shè)計要求,即使找到也會因為格點的數(shù)目巨大而無法實 用。
針對基于網(wǎng)格模型的問題,研究中出現(xiàn)了連接圖模型。這種模型不再具有抽象的網(wǎng)格, 而是以版圖上障礙的位置為標(biāo)準(zhǔn),通過預(yù)先考慮設(shè)計規(guī)則對障礙進(jìn)行擴(kuò)展,然后由障礙的 邊相交產(chǎn)生一系列相交的點,將這些點連接起來經(jīng)過化簡構(gòu)成了一張連接圖(connect graph)?;谶@張圖即可找出最短路徑。這個模型的問題是連接圖的提取和化簡十分耗時, 并且會引入相當(dāng)數(shù)量不必要的轉(zhuǎn)彎。
基于圖形的模型則是根據(jù)整個版圖中障礙的實際位置和形狀,提取出可用的布線空間, 并將這些布線空間以comer-stitch的形式儲存,然后利用tile-expansion進(jìn)行搜索,從而找出 路徑。但是對于交互式布線,這種模型存在較大的問題,因為交互式布線時版圖數(shù)據(jù)變化 非常頻繁,每次都要對整個版圖進(jìn)行轉(zhuǎn)換,需要耗費大量的時間,無法滿足操作實時的要 求,尤其是對于以quad tree等按圖形形狀和位置劃分版圖的索引系統(tǒng),無法支持直接的相 鄰查找,這種全版圖的頻繁轉(zhuǎn)化更是不現(xiàn)實的
發(fā)明內(nèi)容
針對上面的問題,本發(fā)明提出一種能夠?qū)崿F(xiàn)在大規(guī)模集成電路版圖中進(jìn)行實時最短路 徑查找的方法,并保證布線結(jié)果的正確性和合理性。發(fā)明的總體思路如下-
1. 并不對所要布線的電路版圖進(jìn)行預(yù)先的幾何圖形提取,而是將版圖劃分為若干較小 的區(qū)域,每個區(qū)域所含布線障礙數(shù)量固定;
2. 只有當(dāng)布線路徑進(jìn)入某個區(qū)域的時候,才對該區(qū)域進(jìn)行版圖的幾何數(shù)據(jù)提??;
3. 將所有非正交的圖形近似為最為接近的正交多邊形,并將其切割為若干矩形,使得 該區(qū)域內(nèi)所有布線的障礙均為簡單的矩形組成;
4. 對提取后的子區(qū)域進(jìn)行合并,加快搜索的過程;
5. 如果布線路徑再次進(jìn)入某個已經(jīng)進(jìn)行過數(shù)據(jù)提取并且版圖沒有發(fā)生變化的區(qū)域時, 則可以再次利用己有的數(shù)據(jù)結(jié)構(gòu)快速找到答案;
6. 對區(qū)域內(nèi)的障礙矩形進(jìn)行零線寬預(yù)處理,擴(kuò)展障礙矩形,將布線線寬以及線間距預(yù) 先考慮到障礙區(qū)域中去;
7. 在尋找最短路徑的布線過程中,以布線塊隊列(tilequeue)的形式將可能的最短路 徑全部保存起來,保留每一種連接的可能性,去掉不能繼續(xù)搜索的分支;
8. 最后通過路徑優(yōu)化器(pathrefiner)從區(qū)域隊列中尋找出轉(zhuǎn)彎最少最優(yōu)化的布線路 徑。
以下分版圖數(shù)據(jù)提取和最短路徑査找兩個部分進(jìn)行分別說明-一、版圖數(shù)據(jù)分區(qū)域提取 1.版圖區(qū)域的劃分方法
由于版圖需要在較短的時間內(nèi)布線,布線模型的快速轉(zhuǎn)換和存取是影響布線 速度的關(guān)鍵。為了應(yīng)付大規(guī)模的版圖,我們的策略是把版圖分塊處理,每次提 取/轉(zhuǎn)換其中的一塊,以滿足査找到一個路徑所需的最小要求;那些沒有被搜索到的區(qū)域的部分將不會被提取,從而最大限度的減少布線模型構(gòu)建的代價。
如圖1 ,我們的分塊管理采用類似四叉樹區(qū)域劃分的方法把整個布線區(qū)域分 成層次的小塊,每個區(qū)域的大小由這個區(qū)域中所包含的物體數(shù)目來決定(物體的 數(shù)目大致決定了每一次區(qū)域提取所需要的代價)。每個區(qū)域中的物體將會被處理 (將在下一部分?jǐn)⑹?,然后整個區(qū)域會根據(jù)所有障礙物的位置、形狀被劃分成—個個的小塊,每個小塊可以使可以布線的空區(qū)(space subtile),也可以是不 可布線的障礙(solid subtile)。每個這樣的subtile作為路徑搜索時的基本單 位,并在搜索過程中會根據(jù)周圍的情況進(jìn)行合并:相鄰的space subtiles會根據(jù) 水平/垂直方向最長的原則合并成Tile。 Tile不光表示了一個可布線的區(qū)域,還記錄了和周圍的可布線區(qū)域的相鄰情況,以便下次査找到相同區(qū)域時加快搜索的 速度。
分塊管理的情況如圖l所示四叉樹的劃分線將區(qū)域劃分成了兩個部分;右 邊部分的黑線是物體的拐角所在的位置來決定的;相交的黑線將區(qū)域劃分成一個 個的subtile,每個subtile可以是solid也可以是space,相鄰的space subtile 可以合并成一個個的space tile (圖中是以水平方向最長為目標(biāo)的合并情況)。
2. 非正交不規(guī)則圖形的近似和切分
電路版圖數(shù)據(jù)中常包含一些非矩形的圖形,比如多邊形、連線路徑、圓等等, 這些圖形必須先經(jīng)過轉(zhuǎn)化為矩形才能適應(yīng)布線算法對數(shù)據(jù)的要求。如果對這些不 規(guī)則圖形以其外接矩形進(jìn)行近似,必然會造成不必要的,有時甚至?xí)r致命的布線 空間資源浪費。所以我們提出一種辦法,先利用層次化疊代的方法找出不規(guī)則圖 形的一個較為接近的外接正交多邊形,然后對正交多邊形進(jìn)行劃分,取得一系列 矩形,以這些矩形替代原始圖形在版圖中的位置,從而達(dá)到了規(guī)則化圖形的目的, (如圖2所示),步驟如下
a. 取得某個不規(guī)則圖形,先求得其外接矩形;將外接矩形劃分為四等份, 檢査是否與不規(guī)則圖形的邊界相交;如相交則保留繼續(xù),否則停止處理 該部分(包括完全在多邊形外部和內(nèi)部兩種情況);
b. 對步驟b中保留的的部分,分別繼續(xù)、劃分為四等份,執(zhí)行與步驟b同樣 的檢査;以此類推,直到每部分尺寸小于設(shè)計規(guī)則中最小線寬、或疊代 次數(shù)達(dá)到設(shè)定值、或已不存在與不規(guī)則圖形相交的部分,則停止處理。
c. 收集與原始圖形邊界相交以及完全在其內(nèi)部的部分,即組成可代表原始 不規(guī)則圖形的正交多邊形;最后將其劃分為一組互不相交的矩形即可。
3. 障礙的零線寬預(yù)處理
設(shè)計規(guī)則的滿足是通過擴(kuò)展障礙物以半線寬(WW/2)和線間距(WS)來完成 的,這樣在圖3中,擴(kuò)展以后的障礙區(qū)域以外的部分就是可布線區(qū)域,在這些區(qū) 域上進(jìn)行布線一定滿足設(shè)計要求(這是一個中心線布線),也因此將問題轉(zhuǎn)換成 了0線寬的布線。同樣辦法可以把擴(kuò)展中的WW/2換成半個通孔的大小W/2,就 得到了可放置通孔的區(qū)域。
二、路徑的査找
1.路徑查找過程中所用到的術(shù)語說明
路徑的査找使用的迷宮布線的模式,搜索策略采用A*。迷宮算法每一步中只
需知道當(dāng)前搜索單位(tile)周圍的情況,因此分塊提取得策略可以滿足擴(kuò)展 (expand)的要求。A'策略會減少搜索一條路徑所需要的區(qū)域,使得我們可以在搜 索的過程中決定那些區(qū)域時需要提取的,并根據(jù)對區(qū)域的劃分控制每次提取的粒 度。
搜索是以Tile為基本搜索單位的,兩個Tile通過一個公用的線段連接,稱 為TilePath。如圖4所示,11/12是TilePath, 11->12-〉13-〉14->15的路徑構(gòu)成 了一條從s-〉t的路徑。搜索過程中通過記錄生成的TilePath來記錄路徑。
TilePath在生成按照當(dāng)前搜索的代價(通過代價函數(shù)得到)以后被插入到 一個優(yōu)先隊列中(A'策略的特征)。由于這里每次搜索的是一個區(qū)域并不像網(wǎng)格 情況下的格點, 一個Tile可能會在搜索的過程中被多次搜索到,不同的入點和 出點會有不同的代價估計,所以記下多個搜索序列可以為最終結(jié)果保留盡可能 多的選擇性。在單層和多層時,TilePath內(nèi)容會有所不同單層時,所有Tile 都是沒有重疊的部分,因此TilePath表示的是一條線;多層時一個跨層的 TilePath會包含一個合法的通孔擺放區(qū)域,如下圖5所示(a和b分別是單層 和多層時的情況)
代價估計函數(shù)包含3部分
1. 從起始點到當(dāng)前TilePath的距離。根據(jù)情況的不同,會紀(jì)錄計算 得到當(dāng)前TilePath的最小代價,以及計算這個代價時所用的進(jìn)入 點和進(jìn)入的等價范圍(由于從圖形開始擴(kuò)展圖形上每一個邊都是等 價出發(fā)點,所以會引入等價范圍,并在搜索過程中可能會傳播)。
2. 通過Tile內(nèi)的代價耗費在水平/垂直/通孔上的代價的和,每 項都有根據(jù)用戶的輸入的權(quán)重。這部分的計算如上面圖示,可以在 兩個方向上的投影上計算出最小的長度,然后分別乘以各自的權(quán)重 即可。
3. 趨向目標(biāo)點的代價計算當(dāng)前TilePath到目標(biāo)的可能代價。用曼 哈頓距離估計,并乘以權(quán)重,引導(dǎo)搜索優(yōu)先向目標(biāo)點進(jìn)行,加快速 度/減小代價。目標(biāo)點在從圖形的情況下是圖形的外接矩形(點時 是矩形退化后的特例)。
在擴(kuò)展過程中由于每一次擴(kuò)展都需要估計本次擴(kuò)展所增加的代價和趨向目 標(biāo)點的代價,因此需要記錄上一個TilePath到當(dāng)前TilePath的最近進(jìn)入點或 仍舊有效的等價范圍。
圖6中tpl tp4是四個TilePath; Source obj是路徑搜索的起始圖形 Target point是搜索的目標(biāo)點;紅線是各個TilePath上傳遞的等效范圍,圖 上紅線范圍內(nèi)y方向上是等價的,因此從tpl到tp2計算代價時只考慮 distancel,同時也會在搜索中隨著TilePath傳遞;a是從tp3到tp4的最近 進(jìn)入點,所以從tp3到tp4的距離就是y方向上的distance2, x方向上為0 是因為tp4的范圍涵蓋了 tp3在x方向上的投影,并且tp4開始也失去了等效 范圍,只有一個進(jìn)入點,用以計算從它開始到下一個TilePath的距離。藍(lán)線是 最終生成的path。
2.布線塊隊列的査找
路徑搜索的過程如圖7所示,下面以單層上的路徑査找為例說明路徑搜索 的過程-
單層布線時路徑的生成
1) 如果起始點在布線區(qū)里,那么將起始點直接插入要生成的路徑鏈表,
2) 如果起始點在圖形上,那么將起始TilePath的等價范圍記錄下來,直到可
以確定等價范圍的具體點的位置的時候才會將這個點生成。
3) 檢査上一個TilePath是否有等價范圍,以及等價范圍跟目前的TilePath 相比是否還有效,如果有效則繼續(xù)下一個TilePath,無效則根據(jù)當(dāng)前 TilePath的信息確定上一個未決定點的位置和產(chǎn)生的當(dāng)前TilePath上的點 的位置,
4) 如果兩點在一條直線上則直接插入;如果不在一條直線上,則根據(jù)原來的 方向插入中間的轉(zhuǎn)折點。
5) 繼續(xù)這個過程(跳轉(zhuǎn)到3),直到構(gòu)成Path的所有TilePath鏈表為空。
6) 如果目標(biāo)點是是一個點則將目標(biāo)點插入到生成的path中,如果是一個圖形 則從目標(biāo)搜索隊列里找出相應(yīng)得TilePath,根據(jù)等效范圍找到最短的路徑 點。
補(bǔ)充說明
* Tile作為一個獨立的搜索單位一旦被生成以后就不需要再使用底層的 subtile,可以減少搜索的步數(shù),提高搜索速度。
* 由于每個Tile只會被提取一次,下次被搜索到時可以直接返回expand的
結(jié)果,從而使搜索過程變得更加迅速,以空間換取搜索時間的減少。
* 生成的path中的點,按照從source到target盡量不進(jìn)入下一個TilePath
的范圍內(nèi)的原則產(chǎn)生。
圖8是擴(kuò)展在TilePlane中的實現(xiàn),TilePlane的基本擴(kuò)展操作,從一個區(qū) 域向外擴(kuò)展的操作(ExpandFromTile),可以分解為每條邊上的擴(kuò)展操作 (ExpandFromLine)。另外,對于另一種操作從一個點出發(fā)向外擴(kuò)展的操作 (ExpandFromPoint)的目的是査找給定點所在的Tile (在搜索初始化時被調(diào) 用),具體操作與ExpandFromLine類似,不再贅述。
3.路徑優(yōu)化器
通過布線塊隊列,我們實際得到的是一組長度最短的解,雖然在此范圍內(nèi)所 有路徑的長度都是最優(yōu)的,但是它們的轉(zhuǎn)彎數(shù)量可能不同,路徑優(yōu)化器的功能就 是在長度最優(yōu)路徑中找出轉(zhuǎn)彎最少的路徑集合,并從中選區(qū)一條路徑作為結(jié)果。 圖9是路徑優(yōu)化的示例,步驟敘述如下
a. 自第一個布線塊出發(fā),由第二個布線塊決定走向,記下該方向并開始沿 此方向前進(jìn)。
b. 如能夠繼續(xù),就不改變方向,并且記下各布線塊在此方向上的公共范圍, 否則,記下當(dāng)前到達(dá)的布線塊,如果布線塊隊列中仍不為空,以其作為 初始布線塊,返回步驟a,否則進(jìn)入步驟c。
c. 從步驟a和b中記錄下的方向和公共范圍中選擇一條路徑,作為結(jié)果。
圖1區(qū)域劃分管理及子區(qū)域的合并
圖2不規(guī)則圖形的處理
圖3設(shè)計規(guī)則的處理
圖4 TilePath示意圖
圖5代價計算示意圖
圖6多余路徑的剪除(path prune)
圖7路徑搜索
圖8從一個Tile向周圍區(qū)域出發(fā)的擴(kuò)展操作(ExpandFromTile) 圖9路徑優(yōu)化 圖10具體實施圖
具體實施例方式
整個系統(tǒng)分成兩部分:
Expand部分(實際的route部分,在TilePlane上執(zhí)行搜索與TilePlane直接作用)。 模塊關(guān)系如圖10具體實施圖所示。
提供route過程的控制部分,例如,搜索隊列控制,cost估算方程;以及從TilePath 鏈表到path的轉(zhuǎn)換。專注于router的算法實現(xiàn),不包含對版圖數(shù)據(jù)的實際操作;router 中的每一步驟通過轉(zhuǎn)換為extractor部分的基本expand操作來實現(xiàn)。
Extract部分(實際處理從quad-tree到需要的tile-plane的轉(zhuǎn)換,將版圖上的障礙 轉(zhuǎn)換成正較的坐標(biāo)系,并將障礙blocks所覆蓋的部分mark出來,區(qū)分出布線區(qū)域和blocked 區(qū)域)。
負(fù)責(zé)提取,處理版圖中的圖形,并實現(xiàn)router的expand在版圖數(shù)據(jù)上的基本操作, 并維護(hù)版圖信息對router的影響;在處理過程中會調(diào)用一些圖形處理模塊來處理各種shape 障礙對router的影響。
最終的輸出
Expand完成(判斷條件是找到包含target點的tile)以后,由retrace過程輸出的 是一條tiles連接形成的tile-path; tile-path交給后處理過程去得到實際的路徑(從一 個tile-list -> path)。
中間的過程就是expand和extract交互的過程 對expand來說,只是執(zhí)行從subtile的合并,并在這個過程中構(gòu)建最終的tile (水平方向 上最大)。對于expand來說,extract是一個透明的過程,extract是按照區(qū)域的范圍來提 取/轉(zhuǎn)換的。當(dāng)expand到達(dá)了一個區(qū)的邊界,需要進(jìn)入另一個區(qū)時,檢査該區(qū)是否已經(jīng)被 提取,如果沒有,掛起expand過程,調(diào)用extract,提取完畢以后繼續(xù)執(zhí)行expand。
權(quán)利要求
1.交互版圖工具中的最短路徑實時查找算法,其特征包括層次式分塊管理的非網(wǎng)格布線模型,在需要時才將需要的數(shù)據(jù)轉(zhuǎn)化成布線模型的區(qū)域分塊提取管理方式,在搜索時采用提取子區(qū)域合并,布線模型中緩存搜索的中間結(jié)果,提高后續(xù)搜索速度。
2. 根據(jù)l所述的布線模型,其特征是共有邊為特征的支持等價區(qū)域的準(zhǔn)確代價估計、 多余搜索路徑排除的方法。
全文摘要
本發(fā)明提供交互版圖工具中的最短路徑實時查找算法,屬于集成電路版圖設(shè)計自動化技術(shù)領(lǐng)域,具體涉及一種交互式版圖自動布線算法,能夠?qū)崟r的查找出版圖上指定點或單元間最短的路徑。采用了層次分塊管理的非網(wǎng)格布線模型,不需要預(yù)提取版圖,在提高布線靈活性的同時減少了模型轉(zhuǎn)換的開銷,并利用緩存的數(shù)據(jù)提高路徑查找的速度滿足了版圖編輯器中實時布線的需求。
文檔編號G06F17/50GK101174278SQ20061011429
公開日2008年5月7日 申請日期2006年11月3日 優(yōu)先權(quán)日2006年11月3日
發(fā)明者杜浩斌, 毅 蘇 申請人:北京中電華大電子設(shè)計有限責(zé)任公司