TWI390707B - 半導體晶片、巨集擺置的方法、多向密集堆積巨集擺置器與多尺寸混合擺置設計方法 - Google Patents
半導體晶片、巨集擺置的方法、多向密集堆積巨集擺置器與多尺寸混合擺置設計方法 Download PDFInfo
- Publication number
- TWI390707B TWI390707B TW096100036A TW96100036A TWI390707B TW I390707 B TWI390707 B TW I390707B TW 096100036 A TW096100036 A TW 096100036A TW 96100036 A TW96100036 A TW 96100036A TW I390707 B TWI390707 B TW I390707B
- Authority
- TW
- Taiwan
- Prior art keywords
- macro
- densely
- directional
- tree
- macros
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/392—Floor-planning or layout, e.g. partitioning or placement
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Architecture (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Description
本發明係有關於積體電路的多尺寸混合設計,特別是有關於密集堆積式的巨集擺置。
由於使用了智慧財產(intellectual property;IP)模組以及內嵌式記憶體,現代的超大型積體電路(VLSI)晶片通常包括許多的巨集,巨集與標準單元(standard cell)的多尺寸混合擺置已在不同的應用中廣受歡迎,於是不同的公開文獻中揭露了許多多尺寸混合擺置演算法。
第一種型式的多尺寸混合擺置演算法同時擺置巨集與標準單元,其通常不考慮巨集的方向且需要強大的巨集除錯器(macro legalizer)於巨集或單元未適當分佈時將重疊移除,C.-C.Chang等人於2003年在Proceedings of ACM/IEEE Asia South Pacific Design Automation Conference揭露了一種模擬退火(simulated annealing)式的多階擺置器mPG-MS,其一層一層地由大巨集至小巨集依序擺置,A.Khatkhate等人於2004年在Proceedings of ACM International Symposium on Physical Design揭露了一種最少切割(min-cut)式擺置器風水,其使用部分切割(fractional cut)方式同時考慮標準單元與巨集,使得水平切割線不會與列的邊界切齊,此外,尚有數種分析方式被提出來達成多尺寸混合擺置。A.B.Kahng等人於2004年在IEEE/ACM International Conference on Computer-Aided Design揭露了APlace,其基於非線性規劃(non-linear programming)使用一鐘形(bell-shaped)位能函數(potential function)來考慮巨集的高度/寬度,以決定可以適當擺置巨集與單元的全面擺置,T.Chan等人於2005年在Proceedings of ACM International Symposium on Physical Design揭露了mPL,其使用廣義力度導向(generalized force-directed)方式來進行擺置,B.Yao等人於2005年在Proceedings of ACM International Symposium on Physical Design揭露了UPlace,其使用二次規劃(quadratic programming)以及一離散餘弦轉換方法來適當地進行擺置,且還使用區域改良(zone refinement)法來進行除錯。
第二種型式的擺置法結合了平面規劃(floorplanning)與擺置技術,一種於2004年在IEEE/ACM International Conference on Computer-Aided Design揭露的最少切割平面規劃擺置器(floorplacer)Capo即為一例,當必要的時候,其在進行最少切割擺置時,會利用固定輪廓(fixed-outline)平面規劃來找到巨集的可用位置,平面規劃擺置嵌入擺置流程中可以考慮到巨集的擺置方向並可輕易地找到無誤的擺置方案。
第三種型式的擺置法將多尺寸混合擺置分為兩個階段,其分別為巨集擺置與標準單元擺置,巨集的位置先決定後,標準單元再擺置於其餘的區域,S.N.Adya於2005年在ACM Transactions on Design Automation of Electronic Systems揭露了此組合式的技術,一標準單元擺置器被用來得到初步的擺置,依據該初步擺置結果,標準單元分別群組為數個不定型巨集(soft macro),然後再利用固定輪廓平面規劃找到無重疊(overlap-free)的巨集擺置,其後,巨集的位置固定,而標準單元擺置器則將標準單元重新在其他的空間進行擺置,與其他的型式相較,由於只要可獲得無重疊的巨集擺置,兩階段的多尺寸混合擺置便可保證有可行的擺置方案,因此較為可靠,再者,巨集方向與擺置的限制條件,如:預先放置巨集(pre-placed macro)與擺置擋塊(placement blockage),可輕易地被處理。
依據本發明之一實施例的一種半導體晶片包括第一與第二群巨集,該第一與第二群巨集分別被往半導體晶片的第一與第二方向進行最密堆積。
依據本發明之另一實施例的一種半導體晶片包括第一與第二群巨集,該第一與第二群巨集分別被往半導體晶片的第一與第二邊緣進行最密堆積。
依據本發明之另一實施例的一種半導體晶片包括第一與第二群巨集,該第一與第二群巨集分別被往半導體晶片的第一與第二角落進行最密堆積。
依據本發明之另一實施例的一種k階二元多向密集堆積樹包括k個分支節點以及k+1株子密集堆積樹,每一分支節點皆對應至多向密集堆積樹的一階,且每一子密集堆積樹對應至一分支節點並包括一組巨集。
依據本發明之又一實施例的一種巨集擺置的方法包括產生一前述的k階二元多向密集堆積樹並將每一子密集堆積樹的巨集在一擺置區域中進行密集堆積。
依據本發明之又一實施例的一種多向密集堆積巨集擺置器,包括讀取LEF/DEF格式的輸入檔案、產生k階二元多向密集堆積樹以及k+1子密集堆積樹、將多向密集堆積樹依據密集堆積的結果予以最佳化以及產生DEF格式的輸出檔案,每一多向密集堆積樹包括k個分別對應至各階的分支節點,且每一子密集堆積樹對應至一分支節點並包括一組巨集。
依據本發明之又一實施例的一種多尺寸混合擺置設計流程包括讀取LEF/DEF格式的輸入檔案、以一傳統的巨集擺置器進行初步的巨集擺置、以本發明之多向密集堆積巨集擺置器進行細部的巨集擺置以及產生DEF格式的輸出檔案。
本發明提供一種多向密集堆積巨集擺置器,其可將巨集擺置在一擺置區域的邊界附近,並將中央區域保留給標準單元,此多向密集堆積巨集擺置器僅需要攤銷式線性時間(amortized linear time)將多向密集堆積樹轉換成對應的巨集擺置,因此在運算上以及將二元樹進行密集堆積都很迅速,於是,藉由模擬退火可有效率地找尋到巨集擺置方案,使得多向密集堆積巨集擺置器可進行有巨大的巨集以及多量巨集的多尺寸混合擺置,由於巨集的方向與巨集間的間隔已被考慮,多向密集堆積巨集擺置器可產生比傳統多尺寸混合擺置器更短的線長且也不會過度擁擠,多向密集堆積巨集擺置器可輕易地在不同的擺置限制條件(如:預先放置區塊、角落區塊以及擺置擋塊)下正常工作,多向密集堆積巨集擺置器也可與當前的標準單元擺置器結合,並根據兩階段的多尺寸混合擺置流程得到較佳的多尺寸混合擺置方案。
為讓本發明之上述和其他目的、特徵、和優點能更明顯易懂,下文特舉出較佳實施例,並配合所附圖式,作詳細說明如下:
第1圖所示為多尺寸混合擺置流程圖,依據本發明的設計策略的特點功能之一為將巨集沿晶片的周圍擺置並將晶片的中央保留給標準單元,由於巨集通常很大且在巨集裡面有繞線擋塊(routing blockage),假如巨集被擺置在晶片的中央,會嚴重影響到繞線,由於傳統的平面規劃技術將所有的巨集密集堆積於一個角落,因此無法直接適用於巨集擺置的問題,為了克服此一問題,源於密集堆積樹的一種新的多向密集堆積樹的平面規劃表示法被提出以將巨集擺置在晶片的周圍。
密集堆積樹為一用以模擬切割或非切割(slicing or non-slicing)平片規劃的二元樹狀圖,密集堆積樹的每一節點對應至一巨集區塊,密集堆積樹有四種型式的密集堆積,BL、TL、TR、BR密集堆積分別將巨集區塊分別往左下、左上、右上、右下角落進行密集堆積。
第2圖為一密集堆積樹以及其所對應的四種型式的擺置,假設(xc o r n e r
,yc o r n e r
)為角落所在的座標,(xi
,yi
)為區塊bi
的左下座標,且wi
(hi
)為區塊bi
的寬度與高度,密集堆積樹的根座標為左下密集堆積的(cx
,cy
);左上密集堆積的(cx
,cy
-hr o o t
);右上密集堆積的(cx
-wr o o t
,cy
-hr o o t
);以及右下密集堆積的(cx
-wr o o t
,cy
)。
假若節點nj
為節點ni
的右分支節點,則區塊bj
為右側最低的相鄰區塊,且xj
=xi
+wi
(左下密集堆積);右側最高的相鄰區塊,且xj
=xi
+wi
(左上密集堆積);左側最高的相鄰區塊,且xj
=xi
-wj
(右上密集堆積);左側最低的相鄰區塊,且xj
=xi
-wj
(右下密集堆積)。
假若節點nj
為節點ni
的左分支節點,則區塊bj
的x-軸座標定義為xj
=xi
(左下密集堆積);xj
=xi
(左上密集堆積);xj
=xi
+wi
-wj
(右上密集堆積);xj
=xi
+wi
-wj
(右下密集堆積)。
對左下密集堆積與右下密集堆積而言,區塊bj
在區塊bi
之上,而對左上密集堆積與右上密集堆積而言,區塊bj
在區塊bi
之下,因此,對一密集堆積樹而言,所有的區塊的x軸座標可藉由依線性時間將密集堆積樹穿越一遍而決定,再者,y軸座標可藉由依分期常態時間的輪廓資料結構(相似方法可見於2000年Proceedings of the ACM/IEEE Design Automation Conference第458-463頁的A new representation for non-slicing floorplans)計算而得,因此,將密集堆積樹轉換為對應擺置的複雜度為分期線性時間,需注意的是B*
-tree平面規劃表示為左下密集堆積樹。
多向密集堆積樹結合了數株位於不同角落的不同堆積型式的密集堆積樹,第3圖所示為一般的多向密集堆積樹的範例之一,在多向密集堆積樹中有k個幹節點(stem node)以結合k+1株子密集堆積樹,為便利起見以及易於建構,一右出幹(right-skewed stem)被使用來結合子密集堆積樹,且子密集堆積樹的順序可依據其母節點(parent node)的階層而決定,由於密集堆積樹使用深度優先搜尋(depth-first search;DFS)順序,階層越小,子密集堆積樹越早進行密集堆積,假若兩子密集堆積樹的母節點階層相同,位於左側的子株子密集堆積樹會先進行密集堆積,一般的多向密集堆積樹可用以模擬任何的方矩形(rectilinear)平面規劃區域,且每一子密集堆積樹會往一凸面角落(convex corner)進行密集堆積。
相同地,可使用多向密集堆積樹的深度優先搜尋來決定各區塊的x軸座標,為了計算y軸座標,下方輪廓跟上方輪廓固定,下方輪廓跟上方輪廓係分別依據方矩形區域的下側與上側而定,所有的左下與右下密集堆積樹使用一下方輪廓資料結構,而所有的左上與右上密集堆積樹使用一上方部輪廓資料結構,第4圖所示為一具有左下密集堆積樹與右下密集堆積樹的多向密集堆積樹進行密集堆積的範例,由於輪廓會保留空間給先進行密集堆積的區塊,使用相同輪廓資料結構的密集堆積樹可產生無重疊(overlap-free)的擺置,因此,左下/右下密集堆積樹只會與左上/右上密集堆積樹有所重疊,然而這種擺置方案是不可行的,因此需被捨棄。
對一般的矩形超大型積體電路晶片區域而言,通常使用具有四株子密集堆積樹的多向密集堆積樹來處理,其範例如第5A圖所示,為了得到對應的巨集擺置,多向密集堆積樹從根部(root)n0
依深度優先搜尋(depth-first search;DFS)順序處理,由於n0
為一幹節點,因此不作處理而繼續流程,接著下來,n0
的左側子節點n3
為左下密集堆積樹的根,所以區塊b3
被擺置在左下角落,由於節點n3
並無左側子節點,所以接著處理節點n4
,並依此類推,在此範例中,所有子密集堆積樹的處理順序為左下密集堆積樹、左上密集堆積樹、右上密集堆積樹、右下密集堆積樹,當所有的節點經過處理後,巨集擺置便如第5B圖所示。
此外擺置問題的難度可使用巨集的分群群組來加以簡化,在設計階層架構(design hierarchy)中,相同群組內具有相同高度/寬度的巨集可形成群組,這些巨集通常具有密切的關聯,使用巨集的分群群組不僅可更有效地利用面積,也可以將密切關聯的巨集更緊密地進行擺置,只有不會有面積被浪費的群組維度(cluster dimension),第6圖為有四個區塊的群組的範例,其有三種可能的群組矩陣:1×4、2×2與4×1。
當去群組化(declustering)時,區塊便依據現有的群組矩陣來擺置,同時分支界限(branch and bound)方法則被使用來依據擺置成本(placement cost)決定區塊的最佳排序。
使用者會定義一些擺置擋塊(placement blockage),任何巨集都不得與這些擋塊有所重疊,在進行密集堆積時,加入一新的巨集區塊時,需同時確認是否與擋塊有所重疊,假若有重疊,則區塊的y軸座標需移動到不會重疊的位置,第7圖為一範例,一新的區塊b2
被加入,而且會與擺置擋塊重疊,因此區塊b2
上移以避免重疊發生,而輪廓也依據區塊b2
的位置重新更新,預先放置巨集(pre-placed macro)會被視為擺置擋塊,因此不會有對應的節點產生於多向密集堆積樹中,如此可確保預先放置巨集的位置。
角落巨集如後所述,類比區塊同常被固定在角落作為角落巨集,對應於角落區塊的節點會固定為子密集堆積樹的根,如此,角落巨集便固定在角落。
方矩形巨集如後所述,針對樹狀平面規劃(tree-based floorplanning),一已知的方法(可見G.-M.Wu,Y.-C.Chang,and Y.-W.Chang等人於2003年ACM Trans.on Design Automation of Electronic Systems的188-202頁發表的Rectilinear block placement using B*-treeS)可被採用來處理方矩形巨集,一方矩形巨集可被切割為數個矩形區塊,依據樹狀拓樸(tree topology)產生位置限制(簡寫為LC),進行密集堆積時,未對齊(misalignment)的狀況會被修正以維持方矩形區塊的形狀,如第8圖的範例所示,方矩形區塊被切割為三個矩形區塊,且節點n1
、n2
與n3
維持了位置限制的關係。
多向密集堆積樹的運算如下所述,多向密集堆積樹可藉由下列的運算進行擾動而得到另一多向密集堆積樹:運算1:將區塊(群組)旋轉;運算2:將群組進行尺寸調整;運算3:將子密集堆積樹內的一節點移動到另一處;運算4:將一或兩株子密集堆積樹的兩節點互換;運算5:將兩株子密集堆積樹互換。
運算1將一節點的區塊(群組)旋轉,運算2使得一群組的群組尺寸改變,運算1與運算2不會改變多向密集堆積樹的結構,運算3使得一子密集堆積樹內的一節點被選定並被移動到相同或相異子密集堆積樹的另一處,運算4使一或兩株子密集堆積樹的兩節點被選定並互換,運算5使兩株子密集堆積樹互換,也使得兩株子密集堆積樹進行密集堆積的順序互換,需注意的是多向密集堆積樹的幹結構是固定的,且不受任一種運算的影響。
巨集擺置的評估如後所述,為了分辨出巨集擺置結果的品質,巨集擺置的成本F定義如後:Φ=αA+βW+γD+δO+εT,其中A為巨集擺置的面積,W為總線長,D為總巨集位移,O為垂直重疊長度,且α、β、γ以及δ為使用者定義的權重參數(weighting parameter),巨集擺置的面積、線長、巨集位移以及垂直重疊長度會在後續段落說明。
巨集擺置的面積為下方輪廓以下的面積加上上方輪廓以上的面積,如第9A圖所示,輪廓以粗的虛線描繪,而對應的巨集擺置面積如第9B圖所示,將巨集擺置面積最小化可以必免產生太多被巨集包圍的島狀標準單元區域,這種區域的繞線很難繞往晶片的中央,其因為巨集區塊上有取多繞線的擋塊,抑或者繞線會變得較為壅塞,再者,這種區域內的標準單元需要使用較長的繞線路徑方能連接到位於晶片中央的標準單元,而使得速度劣化。
有關線長的部分,由於在擺置時只有巨集被考慮到,電路的繞線表(netlist)無法直接使用,而使用設計階層,且產生在同一設計階層群組中的巨集區塊之間的虛擬網(pseudo net),因此,將總線長加以最短化可以使得同一設計階層群組中的巨集區塊更加緊密。
巨集擺置受到全面擺置(global placement)結果的導引,全面擺置並不需要完全無誤,當已知巨集的位置被萃取出來後,巨集的位移被加入成本函數的負指標,使得可以得到有最小巨集位移的最佳巨集擺置。
多向密集堆積樹表示法可以確保上方與下方密集堆積樹之間沒有重疊,但是在上方輪廓和下方輪廓之間可能有重直的重疊,將重直的重疊加入成本函數的負指標可以導引模擬退火找到沒有重疊的擺置方案。
第10圖所示為一巨集擺置流程範例圖,當LEF/DEF格式的檔案被讀取後,位於相同設計階層且具有相同高度與寬度的巨集先分群群組,群組的尺寸係以最接近方形的尺寸作為初始值,而最後的尺寸則在模擬退火的最佳化過程中選定。
然後便產生一具有已知數目的子密集堆積樹的多向密集堆積樹,每一巨集/群組對應至一子密集堆積樹的一節點,當有了初步的巨集擺置,初步的子密集堆積樹依據巨集最近的角落而對應至其所屬節點,否則,所屬節點之初步的子密集堆積樹便隨機設定,每一子密集堆積樹都初始化為一完整的二元樹。
模擬退火被用來找尋最佳的巨集擺置,而藉由前述的運算可以對一多向密集堆積樹進行擾動並得到另一多向密集堆積樹,在擾動之後,設計者可以修正樹狀結構以滿足已知的巨集擺置限制條件、將多向密集堆積樹進行密集堆積、評估巨集擺置、並依據巨集擺置品質的差異以及模擬退火的現行溫度決定新的擺置方案是否可以接受,其後,多向密集堆積樹再度被擾動,模擬退火再次繼續直到擺置方案夠好或只沒有更佳的擺置方案出現,然後所有的區塊/群組的位置就此決定。
當所有的區塊/群組的位置決定後,在一群組內的區塊位置可以依據群組的矩陣尺寸來計算而得。
最後修正巨集間的間隔,假若兩巨集間的繞線資源需求較兩巨集間的原始間隔高,則巨集間的間隔加大,反之,巨集間的間隔可以縮小以使巨集擺置面積更小,巨集的方向也可以透過水平或垂直翻轉而決定,使得大部分的腳位較接近晶片的中心,然後,所有巨集的狀態便固定下來,並輸出最終的巨集擺置。
兩組測試電路被使用來對多尺寸混合巨集擺置進行比對驗證,測試電路分別為S.N.Adya於2005年在ACM Transactions on Design Automation of Electronic Systems提出的智原(Faraday)以及五種最近的大型實際設計組成的mchip套件,表I所示為智原(Faraday)的統計數據,要注意的是,DMA電路由於沒有巨集在內而未進行比對驗證,在每一數位信號處理(DSP)以及精簡指令集計算(RISC)電路中各有兩個以及七個巨集,在這些測試電路中,巨集的面積從佔總晶片面積的6.96%到41.99%。
表II所示為風水5.1、Capo9.4、本發明之多向密集堆積巨集擺置器與Capo的整合方案、mPL5、APlace2.0以及本發明之多向密集堆積巨集擺置器與APlace的整合方案對智原(Faraday)測試電路進行多尺寸混合擺置以及繞線的結果,一先進的商用繞線器被用來對所有的擺置方案進行繞線,所有的擺置器係於具有2GB容量的隨機存取記憶體的3.2GHz之Pentium 4處理器的Linux工作站上執行,半週線長(half perimeter wirelength)與繞線線長(routing wirelength)以資料庫單位(database unit)報出,Viol則為繞線方案的違規數,由於巨集的數量不多,多向密集堆積巨集擺置器只需數秒鐘便可完成,而單獨進行巨集擺置的執行時間則未有數據報導,表II中的星號*
代表擺置的結果有許多重疊,或者區塊已經落於擺置區域外且無法無誤地進行擺置,表II中的NR則代表由於沒有可接受的擺置所以沒有擺置結果。
從這些結果可知,最小切割的擺置器風水產生出有許多巨集/單元落在晶片區域外的結果,儘管mPL5並未聲稱是多尺寸混合擺置器,但mPL5對於具有大量多尺寸混合巨集以及標準單元的IBM-MS/IBM-MSw Pins測試電路可產生出高品質的擺置方案,因此,mPL5對智原(Faraday)測試電路進行擺置的結果亦作為參考,結果mPL5可以找到可接受的擺置方案,但其品質則不甚理想,此外,APlace在DSP1、RISC1與RISC2之間產生許多重疊,且無法提供無誤的擺置方案,因此,只有其全面擺置方案的半週線長數據報導,最少切割的平面規劃擺置器Capo可找到無誤的擺置方案,且其半週線長較風水與mPL5為佳。
使用本發明一實施例之多向密集堆積巨集擺置器的兩階段多尺寸混合擺置方法可以對所有的電路找到可接受的擺置方案,相較於單獨使用Capo,與Capo整合的多向密集堆積巨集擺置器平均可縮短半週線長達8%以及繞線線長達12%,尤其,與APlace整合的多向密集堆積巨集擺置器可以對所有的電路產生可行的擺置方案,且其品質較所有的多尺寸混合擺置器都好,相較於mPL5、風水與Capo,其半週線長分別縮短了63%、35%與15%,再者,相較於mPL5、風水與Capo,其繞線線長分別縮短了62%、68%與15%,同時可發現,當巨集的面積增加時,使用本發明一實施例之多向密集堆積巨集擺置器的擺置流程縮短半週線長的成效更加顯著,線長縮短的成效總結於表III,其說明了多向密集堆積巨集擺置器的效能。
表IV顯示mchip測試電路套件的統計數據,單元的數量由540k至1320k不等,且巨集的數量由50至380不等,已知只有Capo能對多巨集的多尺寸混合擺置決定出可接受的高品質擺置方案,因此只針對Capo來進行巨集擺置的比較,實驗於雙Opteron 2.6GHz之機器上執行,並先分別以多向密集堆積巨集擺置器以及Capo來決定巨集的位置,其後,巨集位置固定,且標準單元則以一商用的壅塞度導向(congestion-driven)的擺置器以快速原型模式(fast prototyping mode)來擺置,一商用繞線器則進行全面的繞線,為了公平比照起見,標準單元係以相同的擺置器進行擺置。
表V所示為半週線長、繞線線長(WL)、GRC溢位(overlow)以及最大溢位,GRC溢位為全面繞線單元(global routing cell;GRC)有溢位的比例,其值越高,則擺置上越壅塞,最大溢位提供了被賦予有最大溢位的全面繞線單元的額外軌道數,表V中的NR表示由於Capo中的程式記憶體區段錯誤(segmentation fault)而無法獲得擺置結果。
對五組mchip測試電路而言,多向密集堆積巨集擺置器總是較Capo的巨集擺置可以獲得更佳的線長(半週線長與繞線線長),且對五組mchip測試電路而言,使用Capo會發生程式記憶體區段錯誤且找不到擺置方案,再者,Capo的擺置結果會產生較多的GRC溢位以及最大溢位,並比多向密集堆積巨集擺置器需要更多單元擺置與繞線的執行時間。
本發明提供一種多向密集堆積巨集擺置器,其可將巨集擺置在一擺置區域的邊界附近,並將中央區域保留給標準單元,此多向密集堆積巨集擺置器僅需要攤銷式線性時間(amortized linear time)將多向密集堆積樹轉換成對應的巨集擺置,因此在運算上以及將二元樹進行密集堆積都很迅速,於是,藉由模擬退火可有效率地找尋到巨集擺置方案,使得多向密集堆積巨集擺置器可進行有巨大的巨集以及多量巨集的多尺寸混合擺置,由於巨集的方向與巨集間的間隔已被考慮,多向密集堆積巨集擺置器可產生比傳統多尺寸混合擺置器更短的線長且也不會過度擁擠,多向密集堆積巨集擺置器可輕易地在不同的擺置限制條件(如:預先放置區塊、角落區塊以及擺置擋塊)下正常工作,多向密集堆積巨集擺置器也可與當前的標準單元擺置器結合,並根據兩階段的多尺寸混合擺置流程得到較佳的多尺寸混合擺置方案。
n0
、n1
、n2
、n3
、nk
...節點
b0
、b1
、b2
、b3
、bk
...區塊
T0
、T1
、T2
、T3
、Tk
...子密集堆積樹
第1圖所示為一多尺寸混合擺置流程圖。
第2圖所示為一密集堆積樹以及其所對應的四種型式的擺置。
第3圖所示為一般的多向密集堆積樹。
第4圖所示為一具有左下密集堆積樹與右下密集堆積樹的多向密集堆積樹進行密集堆積的範例。
第5A圖所示為具有4株子密集堆積樹的多向密集堆積樹。
第5B圖所示為具有4株子密集堆積樹的多向密集堆積樹,當所有的節點經過處理後,其巨集擺置之示意圖。
第6圖所示為群組矩陣的三種尺寸。
第7圖所示為處理擺置擋塊的流程。
第8圖所示為切割為數個矩形區塊的方矩形區塊。
第9A圖所示為巨集擺置的結果以及其上方輪廓與下方輪廓。
第9B圖所示為對應至第9A圖的巨集擺置面積。
第10圖所示為巨集擺置的流程圖。
Claims (20)
- 一種半導體晶片,包括:第一群巨集,往半導體晶片的一第一方向進行最密堆積;第二群巨集,往半導體晶片的一第二方向進行最密堆積;以及該第一或第二群巨集包括一巨集群組,該巨集群組包括複數個位於相同設計階層群組且具有相同高度與寬度的巨集。
- 如申請專利範圍第1項所述之之半導體晶片,更包括一擺置擋塊或預先放置巨集為於該無重疊的第一或第二群巨集中。
- 一種半導體晶片,包括:第一群巨集,往半導體晶片的一第一邊緣進行最密堆積;第二群巨集,往半導體晶片的一第二邊緣進行最密堆積;以及該第一或第二群巨集包括一巨集群組,該巨集群組包括複數個位於相同設計階層群組且具有相同高度與寬度的巨集。
- 如申請專利範圍第3項所述之之半導體晶片,更包括一擺置擋塊或預先放置巨集為於該無重疊的第一或第二群巨集中。
- 一種半導體晶片,包括: 第一群巨集,往半導體晶片的一第一角落進行最密堆積;第二群巨集,往半導體晶片的一第二角落進行最密堆積;以及該第一或第二群巨集包括一巨集群組,該巨集群組包括複數個位於相同設計階層群組且具有相同高度與寬度的巨集。
- 如申請專利範圍第5項所述之半導體晶片,更包括一擺置擋塊或預先放置巨集為於該無重疊的第一或第二群巨集中。
- 如申請專利範圍第5項所述之半導體晶片,其中該該第一與第二群巨集分別對應至一二元子密集堆積樹,該等二元子密集堆積樹各包括一角落巨集位於其根部。
- 一種巨集擺置的方法,包括:產生一k階二元多向密集堆積樹;以及將每一子密集堆積樹的巨集在一擺置區域中進行密集堆積;其中,該k階二元多向密集堆積樹包括k個分支節點以及k+1株子密集堆積樹,每一分支節點皆對應至多向密集堆積樹的一階,且每一子密集堆積樹對應至一分支節點並包括一組巨集。
- 如申請專利範圍第8項所述之巨集擺置的方法,其中每一子密集堆積樹的巨集往該擺置區域的一方向密 集堆積,且每一子密集堆積樹對應的該方向與其他子密集堆積樹不同。
- 如申請專利範圍第8項所述之巨集擺置的方法,其中每一子密集堆積樹的巨集往該擺置區域的一邊緣密集堆積,且每一子密集堆積樹對應的該邊緣與其他子密集堆積樹不同。
- 如申請專利範圍第8項所述之巨集擺置的方法,其中每一子密集堆積樹的巨集往該擺置區域的一角落密集堆積,且每一子密集堆積樹對應的該角落與其他子密集堆積樹不同。
- 一種多向密集堆積巨集擺置器,包括:讀取LEF/DEF格式的輸入檔案;產生k階二元多向密集堆積樹以及k+1子密集堆積樹,其中,該k階二元多向密集堆積樹包括k個分支節點以及k+1株子密集堆積樹,每一分支節點皆對應至多向密集堆積樹的一階,且每一子密集堆積樹對應至一分支節點並包括一組巨集;將多向密集堆積樹依據密集堆積的結果予以最佳化;以及產生DEF格式的輸出檔案。
- 如申請專利範圍第12項所述之多向密集堆積巨集擺置器,更包括在進行巨集的密集堆積後,調整巨集之間的間隔。
- 如申請專利範圍第12項所述之多向密集堆積巨 集擺置器,更包括在讀取LEF/DEF格式的輸入檔案後,將位於相同設計階層群組且具有相同高度與寬度的巨集予以分群群組,並於產生DEF格式的輸出檔案前,將該等巨集去群組化。
- 如申請專利範圍第14項所述之多向密集堆積巨集擺置器,其中將該多向密集堆積樹予以最佳化包括重覆進行模擬退火迴圈,該模擬退火迴圈包括對該多向密集堆積樹進行擾動、將該多向密集堆積樹內的巨集進行密集堆積、評估密集堆積的巨集擺置以及接受或者拒絕該巨集擺置。
- 如申請專利範圍第15項所述之多向密集堆積巨集擺置器,其中該模擬退火迴圈更包括將該多向密集堆積樹的結構依據已知巨集擺置之限制條件加以修正。
- 如申請專利範圍第15項所述之多向密集堆積巨集擺置器,其中當一密集堆積方案為可接受時,或者沒有更佳的密集堆積方案時,該模擬退火迴圈的重覆進行便結束。
- 如申請專利範圍第15項所述之多向密集堆積巨集擺置器,其中對該多向密集堆積樹進行擾動包括旋轉一巨集區塊或一巨集群組、將巨集群組進行尺寸調整、將子密集堆積樹內的一節點移動到另一處、將一或兩株子密集堆積樹的兩節點互換以及將兩株子密集堆積樹互換或前述組合。
- 一種多尺寸混合擺置設計方法,包括: 讀取LEF/DEF格式的輸入檔案;以一傳統的巨集擺置器進行初步的巨集擺置;以如申請專利範圍第12項所述之多向密集堆積巨集擺置器進行細部的巨集擺置;以及產生DEF格式的輸出檔案。
- 如申請專利範圍第19項所述之多尺寸混合擺置設計方法,更包括於產生DEF格式的輸出檔案前,進行標準單元的擺置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US75595406P | 2006-01-03 | 2006-01-03 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200727453A TW200727453A (en) | 2007-07-16 |
TWI390707B true TWI390707B (zh) | 2013-03-21 |
Family
ID=38251406
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW096100036A TWI390707B (zh) | 2006-01-03 | 2007-01-02 | 半導體晶片、巨集擺置的方法、多向密集堆積巨集擺置器與多尺寸混合擺置設計方法 |
Country Status (4)
Country | Link |
---|---|
US (2) | US20070157146A1 (zh) |
JP (1) | JP4474404B2 (zh) |
CN (1) | CN1996318B (zh) |
TW (1) | TWI390707B (zh) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8261223B2 (en) * | 2008-07-07 | 2012-09-04 | Springsoft Inc. | Hierarchy-based analytical placement method capable of macro rotation within an integrated circuit |
TWI381282B (zh) * | 2008-11-13 | 2013-01-01 | Mstar Semiconductor Inc | 防止壅塞配置方法及裝置 |
US8656332B2 (en) * | 2009-02-26 | 2014-02-18 | International Business Machines Corporation | Automated critical area allocation in a physical synthesized hierarchical design |
US8219957B1 (en) * | 2010-02-02 | 2012-07-10 | Xilinx, Inc. | Global placement legalization for complex packing rules |
US8332798B2 (en) * | 2011-03-08 | 2012-12-11 | Apple Inc. | Using synthesis to place macros |
TWI623844B (zh) * | 2013-07-05 | 2018-05-11 | 國立成功大學 | 適用於混合模組之平面規劃方法 |
GB2522102B (en) * | 2013-11-19 | 2020-11-18 | Advanced Risc Mach Ltd | A computer implemented system and method for generating a layout of a cell defining a circuit component |
US9659125B2 (en) | 2014-01-28 | 2017-05-23 | Arm Limited | Computer implemented system and method for generating a layout of a cell defining a circuit component |
US10083269B2 (en) * | 2013-11-19 | 2018-09-25 | Arm Limited | Computer implemented system and method for generating a layout of a cell defining a circuit component |
US9940422B2 (en) * | 2015-01-08 | 2018-04-10 | Mediatek Inc. | Methods for reducing congestion region in layout area of IC |
US9436796B2 (en) | 2015-02-11 | 2016-09-06 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Method and apparatus for determining common node logical connectivity |
US9892226B2 (en) * | 2015-05-11 | 2018-02-13 | Mediatek Inc. | Methods for providing macro placement of IC |
US9697320B2 (en) | 2015-09-24 | 2017-07-04 | Qualcomm Incorporated | Rectilinear macros having non-uniform channel spacing |
US9495501B1 (en) * | 2016-01-29 | 2016-11-15 | International Business Machines Corporation | Large cluster persistence during placement optimization of integrated circuit designs |
US10372861B2 (en) * | 2016-11-28 | 2019-08-06 | Ncku Research And Development Foundation | Method of macro placement and a non-transitory computer readable medium thereof |
DE102017127276A1 (de) | 2017-08-30 | 2019-02-28 | Taiwan Semiconductor Manufacturing Co., Ltd. | Standardzellen und abwandlungen davon innerhalb einer standardzellenbibliothek |
US10741539B2 (en) | 2017-08-30 | 2020-08-11 | Taiwan Semiconductor Manufacturing Co., Ltd. | Standard cells and variations thereof within a standard cell library |
US11227084B2 (en) * | 2018-11-14 | 2022-01-18 | Taiwan Semiconductor Manufacturing Company Ltd. | Multi-bit standard cell |
US10769341B1 (en) * | 2019-04-22 | 2020-09-08 | Ncku Research And Development Foundation | Method of placing macro cells and a simulated-evolution-based macro refinement method |
FR3113963B1 (fr) * | 2020-09-10 | 2023-06-30 | Thales Sa | Chaine de confiance avancee en aeronautique domaine de l'invention |
CN113919275A (zh) | 2020-09-21 | 2022-01-11 | 台积电(南京)有限公司 | 用于优化集成电路的布局的方法 |
CN112511629B (zh) * | 2020-11-30 | 2022-11-11 | 上海简苏网络科技有限公司 | 一种mpt结构的账户树的数据压缩方法及系统 |
WO2023061408A1 (en) * | 2021-10-12 | 2023-04-20 | Mediatek Inc. | Macro placement using artificial intelligence approach |
WO2023179498A1 (en) * | 2022-03-25 | 2023-09-28 | Mediatek Inc. | Action masks for macro placement based on density map calculations |
KR102602254B1 (ko) * | 2023-01-25 | 2023-11-14 | 주식회사 마키나락스 | 반도체 설계와 관련하여 데드 스페이스를 제거하는 방법 |
KR102597811B1 (ko) * | 2023-01-25 | 2023-11-03 | 주식회사 마키나락스 | 매크로 소자로부터의 거리 정보를 고려하여 반도체 소자를 배치하는 방법 |
KR102597328B1 (ko) * | 2023-01-25 | 2023-11-02 | 주식회사 마키나락스 | 반도체 소자의 배치를 평가하기 위해 2중 클러스터링을 수행하는 방법 |
KR102597210B1 (ko) * | 2023-01-26 | 2023-11-02 | 주식회사 마키나락스 | 매크로 셀들을 그룹화하는 것에 기초하여 반도체를 설계하는 방법 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4300019A (en) * | 1979-01-09 | 1981-11-10 | Victor Company Of Japan, Limited | Method and apparatus for multiplying an electrical signal |
US4630219A (en) * | 1983-11-23 | 1986-12-16 | International Business Machines Corporation | Element placement method |
US4815003A (en) * | 1987-06-19 | 1989-03-21 | General Electric Company | Structured design method for high density standard cell and macrocell layout of VLSI chips |
JPH02297672A (ja) | 1989-05-11 | 1990-12-10 | Nec Corp | マイクロコンピュータ |
JPH0521760A (ja) | 1991-07-09 | 1993-01-29 | Ricoh Co Ltd | シーオブゲート対応フロアプラン作成方法及び作成装置 |
US5661663A (en) * | 1995-03-24 | 1997-08-26 | Lsi Logic Corporation | Physical design automation system and method using hierarchical clusterization and placement improvement based on complete re-placement of cell clusters |
US5815398A (en) * | 1996-01-16 | 1998-09-29 | Massachusettes Institute Of Technology | Method and apparatus for placing parts in a bounded region |
US5930499A (en) * | 1996-05-20 | 1999-07-27 | Arcadia Design Systems, Inc. | Method for mixed placement of structured and non-structured circuit elements |
US6002857A (en) * | 1996-11-14 | 1999-12-14 | Avant! Corporation | Symbolic constraint-based system for preroute reconstruction following floorplan incrementing |
JP3063828B2 (ja) * | 1997-03-27 | 2000-07-12 | 日本電気株式会社 | 集積回路の自動概略配線方法 |
JP3389875B2 (ja) * | 1999-03-12 | 2003-03-24 | 株式会社トッパンエヌイーシー・サーキットソリューションズ | 自動部品配置システム並びに自動部品配置プログラムを記録した記録媒体 |
JP2000276518A (ja) | 1999-03-29 | 2000-10-06 | Nec Ic Microcomput Syst Ltd | 論理セルブロックの自動動配置方法 |
JP4386498B2 (ja) * | 1999-06-23 | 2009-12-16 | 株式会社ルネサステクノロジ | 差動増幅回路 |
US6308309B1 (en) * | 1999-08-13 | 2001-10-23 | Xilinx, Inc. | Place-holding library elements for defining routing paths |
CN1258729C (zh) * | 2003-11-14 | 2006-06-07 | 清华大学 | 基于虚拟模块的大规模混合模式布图方法 |
CN100347709C (zh) * | 2004-07-09 | 2007-11-07 | 清华大学 | 基于最小自由度优先原则的非线性规划布局方法 |
US7308666B1 (en) * | 2004-12-16 | 2007-12-11 | Cadence Design Systems, Inc. | Method and an apparatus to improve hierarchical design implementation |
US7665054B1 (en) * | 2005-09-19 | 2010-02-16 | Cadence Design Systems, Inc. | Optimizing circuit layouts by configuring rooms for placing devices |
-
2006
- 2006-12-08 US US11/608,417 patent/US20070157146A1/en not_active Abandoned
- 2006-12-20 JP JP2006342348A patent/JP4474404B2/ja not_active Expired - Fee Related
- 2006-12-31 CN CN2006101565940A patent/CN1996318B/zh not_active Expired - Fee Related
-
2007
- 2007-01-02 TW TW096100036A patent/TWI390707B/zh not_active IP Right Cessation
-
2009
- 2009-10-01 US US12/571,576 patent/US8661388B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP4474404B2 (ja) | 2010-06-02 |
CN1996318B (zh) | 2010-09-08 |
US20100023910A1 (en) | 2010-01-28 |
TW200727453A (en) | 2007-07-16 |
CN1996318A (zh) | 2007-07-11 |
US20070157146A1 (en) | 2007-07-05 |
US8661388B2 (en) | 2014-02-25 |
JP2007188488A (ja) | 2007-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI390707B (zh) | 半導體晶片、巨集擺置的方法、多向密集堆積巨集擺置器與多尺寸混合擺置設計方法 | |
US8984470B2 (en) | Method and apparatus for performing redundant via insertion during circuit design | |
US20230401373A1 (en) | Pin access hybrid cell height design and system | |
US7934188B2 (en) | Legalization of VLSI circuit placement with blockages using hierarchical row slicing | |
US10831972B2 (en) | Capacity model for global routing | |
TWI472938B (zh) | 在積體電路的電力網路中自動降低堆疊通孔的方法 | |
US20090294981A1 (en) | Methods for Defining and Using Co-Optimized Nanopatterns for Integrated Circuit Design and Apparatus Implementing Same | |
US11893334B2 (en) | Method for optimizing floor plan for an integrated circuit | |
US11574106B2 (en) | Method, system, and storage medium of resource planning for designing semiconductor device | |
US8539416B1 (en) | Methods, systems, and articles of manufacture for creating a hierarchical output for an operation in an electronic design | |
US9165103B1 (en) | Methods, systems, and articles of manufacture for tessellating and labeling routing space for routing electronic designs | |
US9183343B1 (en) | Methods, systems, and articles of manufacture for implementing high current carrying interconnects in electronic designs | |
US8910107B1 (en) | Methods, systems, and articles of manufacture for generating multi-layer local maximal orthogonal routing paths in fractured space | |
US9038010B2 (en) | DRC format for stacked CMOS design | |
US8132141B2 (en) | Method and apparatus for generating a centerline connectivity representation | |
US11176303B2 (en) | Constrained cell placement | |
JP3433025B2 (ja) | モジュール配置方法 | |
US20230267261A1 (en) | Design system, design method and method of manufacture of semiconductor device | |
US20230237236A1 (en) | Method of designing layout of semiconductor integrated circuit, method of designing and manufacturing semiconductor integrated circuit using the same, and design system performing same | |
US20230061120A1 (en) | Routing of high-speed, high-throughput interconnects in integrated circuits | |
US20180137230A1 (en) | Method and system for partitioning circuit cells | |
Sharma et al. | COMPARISON OF COMPACTION TECHNIQUES IN VLSI PHYSICAL DESIGN |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |