TWI797713B - 佈局方法、電腦程式產品與非暫態電腦可讀取儲存媒體 - Google Patents
佈局方法、電腦程式產品與非暫態電腦可讀取儲存媒體 Download PDFInfo
- Publication number
- TWI797713B TWI797713B TW110129658A TW110129658A TWI797713B TW I797713 B TWI797713 B TW I797713B TW 110129658 A TW110129658 A TW 110129658A TW 110129658 A TW110129658 A TW 110129658A TW I797713 B TWI797713 B TW I797713B
- Authority
- TW
- Taiwan
- Prior art keywords
- group
- layout
- grid
- indicates
- bounding box
- Prior art date
Links
Images
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/394—Routing
-
- 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
-
- 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/394—Routing
- G06F30/3947—Routing global
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Geometry (AREA)
- Evolutionary Computation (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Architecture (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Auxiliary Devices For Music (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本發明提出一種積體電路設計的佈局方法。每個連線被視為可移動軟模組,當連線覆蓋更多的壅塞區域時,此連線會收到更多懲罰。因此,可以更容易的把連線從壅塞的區域移開。此外,為了解決局部壅塞,本揭露提出了新的膨脹方法,藉此根據一個群內部連線強度以及此群所佔據的佈線壅塞程度來增加群的面積。藉此,可以得到更佳的可佈線性以及線路長度。
Description
本揭露是有關於積體電路設計的佈局方法,可以解決全局佈線壅塞以及局部佈線壅塞。
在現代超大規模積體(very-large-scale integration,VLSI)設計中,單元佈局(cell placement)仍然是物理設計中最重要的階段。佈局結果會直接影響晶片的線長、可佈線性(routability)和時序性。儘管在過去的幾十年裡已經開發了許多演算法,但佈局仍然是最具挑戰性的問題,並且有很大的空間改進。
為了降低設計複雜度,許多研究將佈局劃分為三個階段,分別包括全局佈局(global placement,GP)、合法化(legalization,LG)和詳細佈局(detailed placement,DP)。全局佈局的目標是在放置區域上放置標準單元,同時優化一些特定的問題,例如線長和可佈線性,其結果對其餘階段具有關鍵影響。佈線壅塞(routing congestion)是當代全局佈局演算法的主要考量,因為佈局品質對佈線期間的可佈線性有直接影響。然而,在佈局中考慮可佈線性是相當複雜的,因為佈線壅塞可能來自不同的來源,稱為全局(global)佈線壅塞和局部(local)佈線壅塞。圖1繪示了一個範例來說明不同原因引起的佈線壅塞。每一種情境110、120、130繪示了在區域中有25個繞線網格(g-cell),每個繞線網格中可能會產生繞線壅塞,而一個繞線壅塞區域可能包含一個或多個壅塞的繞線網格。具體來說,情境110包含四個產生繞線壅塞的繞線網格(用點狀的背景來表示),情境120包含三個產生繞線壅塞的繞線網格,並且情境130包含兩個產生繞線壅塞的繞線網格。我們將情境110和120視為局部佈線壅塞,因為它們可以通過將單元從壅塞區域移開來解決。然而,情境130中的壅塞不能通過移動單元來消除,這被認為是全局佈線壅塞。為了能夠解決佈局期間的佈線壅塞,我們必須分別處理全局和局部佈線壅塞。
本揭露的實施例提出一種積體電路設計的佈局方法,用於電腦系統。佈局區域被劃分為多個網格,多個單元組成多個連線,每一個連線連接至少兩個單元。此佈局方法包括:將單元當作多個群,並且從下至上在多個層級中的每一個層級合併群;進行初始化的佈局;以及從上至下在每一個層級中解開群並執行第一佈局程序。第一佈局程序包括:為每一個連線建立一個包圍盒,包圍盒覆蓋第一網格;對於每一個連線,根據包圍盒與第一網格的重疊面積以及第一網格的溢出值計算一繞線壅塞懲罰;以及根據連線的繞線壅塞懲罰建立第一目標函數並決定群的位置使得第一目標函數有極值。
在一些實施例中,合併群的步驟包括:產生一新群以包含第一群與第二群;以及至少將第一群的內部連線強度、第二群的內部連線強度以及第一群與第二群之間的一分數相加以得到新群的內部連線強度,其中分數與第一群以及第二群之間的連線的分支數負相關。
在一些實施例中,當第一群或第二群屬於層級中的一最低層級時,對應的內部連線強度為0。上述的分數也與第一群的面積以及第二群的面積負相關。
在一些實施例中,第一佈局程序還包括:更新每一個網格的溢出值;以及對於每一個群,取得網格中與群有最大重疊的第二網格,根據第二網格的溢出值以及群的內部連線強度計算膨脹比例,並根據膨脹比例調整群的大小。
在一些實施例中,第一佈局程序還包括:在計算膨脹比例時,將對應的群的內部連線強度乘上一權重,此權重與目前層級正相關。
其中
l表示目前層級,
表示在目前層級的第i個群,
表示第i個群
的膨脹比例,
表示層級的數目。
、
、
以及
為預設的實數。
表示第i個群
所對應的第二網格的溢出值,
表示第i個群
的內部連線強度,
為網格中的最大溢出值,
表示群的最大內部連線強度。
在一些實施例中,佈局方法還包括:在第一佈局程序之前執行第二佈局程序。第二佈局程序包括:對於每一個群,計算群的膨脹比例,並根據膨脹比例調整群的大小;以及建立第二目標函數並決定群的位置使得第二目標函數有極值,其中第二目標函數不包括繞線壅塞懲罰。
其中
表示連線中第i個連線的繞線壅塞懲罰,
表示第i個連線所對應的包圍盒,
表示網格所形成的集合,
表示網格中被包圍盒
所覆蓋的網格。
表示網格
與包圍盒
之間的重疊面積與包圍盒
的面積之間的比例,
表示網格
的溢出值。
以另一個角度來說,本揭露的實施例提出一種電腦程式產品,由電腦系統載入並執行以完成上述的佈局方法。
以另一個角度來說,本揭露的實施例提出一種非暫態電腦可讀取儲存媒體,用以儲存多個指令,這些指令用以被執行以完成上述的佈局方法。
關於本文中所使用之「第一」、「第二」等,並非特別指次序或順位的意思,其僅為了區別以相同技術用語描述的元件或操作。
圖2是根據一實施例說明單元與連線的示意圖。圖2繪示了四個單元201~204,這些單元201~204組成了連線(net)211~214。每個連線用以連接單元201~204上的接腳(pin),每個連線會連接至少兩個單元。例如,連線211用以連接單元201的一個輸入接腳與單元202的一個輸出接腳,以此類推。在此,連線的分支數定義為所連接的接腳數,例如連線211的分支數為2,而連線214的分支數為3。在此實施例中單元201~204為邏輯閘,但在其他實施例中也可以為正反器或其他任意合適的電路。
在此提出的佈局方法,是要在一個佈局區域中散佈所有的單元,也就是決定每個單元的位置。圖3是根據一實施例繪示佈局方法的流程圖。請參照圖3,在此提出的佈局方法是基於多層級的框架,共包括了三個步驟301~303。步驟301亦稱為粗化(coarsening),用以把所有的單元當作多個群(cluster),並且從下至上在每個層級中合併這些群。在步驟302中,進行初始化的佈局,在此可以採用任意習知的做法,例如任意的二次佈局(quadratic placement)演算法。步驟303亦稱為去粗化(uncoarsening)或細化(refinement),用以從上至下在每個層級中解開群並決定每個群的位置。以下將舉實施例詳細說明。
圖4繪示了步驟301的詳細流程圖。在步驟401,建立設計階層樹(Design Hierarchy Tree,DHT),此步驟可以參照論文Lin, Jai-Ming, Szu-Ting Li, and Yi-Ting Wang. "Routability-driven Mixed-size Placement Prototyping Approach Considering Design Hierarchy and Indirect Connectivity Between Macros." Proceedings of the 56th Annual Design Automation Conference 2019。在此用
l來表示層級,此層級被初始化為0。在層級0,每個單元被當作一個群,表示為
。
其中
表示群
的面積,
表示群
的面積。
表示所有群的平均面積。
為預設(可由使用者決定)的實數。
表示連接群
以及群
的連線所形成的集合。
表示連接群
以及群
的其中一個連線。
表示連線
的分支數。較大的分數
表示群
有較小的面積以及比較強的連接強度(數學式1中的第二個項次)。在此,分數
與群
的面積負相關。特別的是,分數
與連線的分支數
負相關,這是因為如果一個連線的分支數比較小,則表示對應的兩個群只依靠比較少的線路連接,因此兩者之間的連接強度比較強;相反的如果連線的分支數比較大,表示對應的兩個群可以透過多條線路連接,因此兩者之間的連接強度比較弱。
其中
表示新群
的內部連線強度,
表示群
的內部連線強度,
表示群
的內部連線強度。以另一個角度來說,將群
的內部連線強度、群
的內部連線強度以及這兩個群之間的分數
相加可得到新群的內部連線強度。當群屬於最低層級(
l=0)時,群的內部連線強度為0,也就是
。值得注意的是,較大的分數
會產生較大的內部連線強度
。
在步驟404,判斷是否停止合併。在一些實施例中由於群的數目會越來越小,因此可以根據群的數目來判斷是否要繼續合併。例如,可以判斷
是否成立,其中
為群在層級
l的初始數目,
為群的目前數目,
為使用者決定的實數(例如為1.7),如果上述不等式成立則停止合併(進行步驟408),否則繼續合併(進行步驟405)。
在步驟405中,判斷是否沒有合適的群可以進行合併,基於設計階層樹的演算法,在此只會挑選設計階層樹中同一個階層的群。如果步驟405的結果為是,在步驟406中修改設計階層樹,接著進行步驟407,處理設計階層樹中新的階層。如果步驟405的結果為否,則回到步驟402。關於步驟405~407的詳細內容可以參照設計階層樹的論文,在此不再詳細贅述。
在步驟408中,判斷是否停止建立新的層級。在一些實施例中也可以根據群的數目來判斷是否要停止,例如可以判斷
是否成立,其中
為使用者決定的實數,在此實施例中
。如果此不等式的結果為是,則結束流程,否則進行步驟409,進行下一個層級,也就是
l=
l+1。
在此實施例是採用設計階層樹來合併群,但在其他實施例中也可以採用任意的演算法來合併群,只要在每個層級計算群的內部連線強度都符合本揭露的精神。換言之,在合併群時也可以採用不同於數學式1的其他分數計算。除此之外,在合併群時所採用的分數以及計算內部連線強度時所採用的分數也可以不相同,在計算內部連線強度時只要分數
與兩個群之間的連線強度正相關就符合本揭露的精神。更進一步來說,在上述的實施例是用連線的分支數來表示連線強度,而連線的分支數與連線強度負相關,本領域具有通常知識者當根據上述揭露而設計出不同的分數
。
接下來要進行去粗化,在一些習知技術中為了避免局部佈線壅塞會使用膨脹(inflation)的技術來增加單元的大小,藉此單元可能會從壅塞的區域中移出,這樣的作法需要仰賴壅塞圖(congestion map),壅塞圖是根據網格的溢出值(overflow)來決定。然而,在高層級的壅塞圖並不準確。圖5是根據一實施例繪示高層級與低層級的佈局結果以及對應的壅塞圖。請參照圖5,佈局區域510繪示了在高層級的佈局結果,壅塞圖520也是在高層級計算的結果。此外,佈局區域530是在低層級的佈局結果,壅塞圖540是在低層級計算的結果。從圖5可以看出壅塞圖520與壅塞圖540有很大的差異,這是因為在群內部的壅塞是不可知的。在此實施例中,是根據壅塞圖以及群的內部連線強度來執行膨脹,藉此可以減少局部佈線壅塞。
圖6是根據一實施例繪示了步驟303的詳細流程圖。在步驟601,更新壅塞圖,此壅塞圖包含了每個網格的溢出值,溢出值是定義為一個網格所需要的線路數目減去此網格所能提供的線路數目,溢出值越大則表示此網格越壅塞,每個網格的溢出值都會根據目前的佈局而被更新。本領域具有通常知識者當可理解壅塞圖,在此不詳細贅述。
其中
表示群
的膨脹比例。由於群
可能會重疊多個網格,在此僅考慮和群
有最大重疊的網格,表示為
g,而
表示網格
g的溢出值。
表示正規化的溢出值,
表示所有網格中最大的溢出值。
表示群
的內部連線強度,
表示正規化的內部連線強度,
表示所有群中最大的內部連線強度。此外,
、
、
、
為預設(可由使用者決定)的實數,
表示所有層級的數目。在一些實施例中是限制膨脹比例介於1至2之間,因此可設定
,
。在一些實施例中,
為在目前層級
l中所有群的內部連線強度的平均的兩倍。
值得注意的是,數學式3中的
為一權重,此權重與目前層級
l正相關,由於在去粗化的過程中目前層級
l是逐漸減少,因此權重
是從最高層級的1一直遞減到最低層級的0(因為在最低層級時每個群只包含一個單元)。權重
被設定為遞減是因為在高層級的時候一個群具有更多的內部連線強度,且溢出值並不準確。相反的,在較低層級時一個群具有較少的內部連線強度,而溢出值較準確。在計算膨脹比例
以後,便可以根據此膨脹比例來調整群
的大小(即在佈局區域中所佔據的面積)。
在此實施例中,佈局區域被分為多個槽(bin),槽的大小可以大於、等於或小於網格的大小。
表示線路的總長。
表示在槽
b中的單元的面積總和。
表示在槽b中所允許的最大單元面積。
與
為使用者定義的實數。上述數學式6的詳細內容可以參照論文Chen, Tung-Chieh, et al. "NTUplace3: An analytical placer for large-scale mixed-size designs with preplaced blocks and density constraints." IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems 27.7 (2008): 1228-1240,在此不詳細贅述。
在步驟605中,判斷是否已經足夠分散。若是的話則進行步驟606,否則回到步驟604。在一些實施例中,可以計算每個槽的溢出面積,定義為槽中所有單元(群)的面積總和減去槽的面積,當溢出面積越小則表示壅塞的程度較低。將所有槽的溢出面積總和除以所有可移動模塊(群)的面積總和則會得到一面積溢出比例,如果此面積溢出比例小於一預設值(例如為0)則判斷已經足夠分散。
在步驟606中,更新每個網格的溢出值。在步驟607中,對於每個群,根據網格的溢出值以及群的內部連線強度計算膨脹比例,並根據此膨脹比例調整群的大小,此步驟607可參照步驟603,在此不重複贅述。
在步驟608,執行以可佈線性所驅動的佈局方法。由於只考慮線路長度時無法解決全局壅塞的問題,在此將每個連線視為可移動且形狀可改變的包圍盒。圖7是根據一實施例繪示連線與包圍盒的示意圖。請參照圖7,連線710連接了接腳721~724,而包圍盒730是能夠涵蓋所有接腳721~724的最小矩形。在此實施例中,根據每個連線所佔據的區域可以給予一個懲項,當包圍盒730涵蓋更多個壅塞區域時對應的連線會得到更多的懲罰。如此一來,包圍盒730的位置與形狀都會自動的改變,將連線移動到低壅塞的區域。圖8是根據一實施例繪示連線與壅塞區域的示意圖。請參照圖8,情境810繪示了習知作法的佈局結果,情境810包含了三個壅塞區域821~823與三個連線831~833。透過此揭露所提出的方法,連線可改變形狀與位置,結果如情境820所示,連線831~833的形狀可改變,並且會移動到低壅塞的區域。
其中
表示連線
的繞線壅塞懲罰。G表示所有網格所形成的集合。
表示包圍盒
所覆蓋的網格,
表示網格
的溢出值。
表示網格
與包圍盒
之間的重疊面積與包圍盒
的面積之間的比例。舉例來說,圖9是根據一實施例繪示包圍盒與網格重疊的示意圖。請參照圖9,其中繪示了四個網格901~904,其中網格901的溢出值為1.41,網格902的溢出值為1.02,網格903的溢出值為0.9,而網格904的溢出值為0.89。包圍盒910重疊於網格901~904,包圍盒910有15%的面積重疊於網格901,有22%的面積重疊於網格902,有28%的面積重疊於網格903,有35%的面積重疊於網格904。因此,包圍盒910所對應的連線
的繞線壅塞懲罰為
。當連線
覆蓋更多的壅塞區域時,它會得到更多的懲罰。換言之,在此實施例中是用繞線壅塞懲罰來表示可佈線性,當繞線壅塞懲罰越大表示可佈線性越低。為了將上述數學式7表示為單元的座標,可將數學式7轉換為以下數學式8。
[數學式8]
其中
為包圍盒
與網格
之間的重疊區域的寬度,
為包圍盒
與網格
之間的重疊區域的高度。由於
與
不可微分,可根據鐘型函數(bell-shaped potential function)來將他們替換為
與
,如以下數學式10、11所示。
可根據類似的方式來計算。
[數學式10]
[數學式11]
其中
表示包圍盒
的中心與網格
的中心之間在X軸上的距離。
表示包圍盒
的寬度。
表示網格
的寬度。為了計算距離
,需要取得包圍盒
的中心座標,表示為(
,
),由以下數學式12所計算。而寬度
由以下數學式13所計算。
[數學式12]
[數學式13]
在一些實施例中,為了讓單元平均的分佈在佈局區域,
以及
是固定的,而
可在每次迭代中增加(例如乘以2)。在一些實施例中,數學式14可透過共軛梯度(conjugate gradient,CG)方法來計算出每個群的座標x、y,藉此讓目標函數有極值(在此例子中為最小值),但本揭露並不限制用什麼方法來求解數學式14。
在步驟609,判斷是否為最低層級,若是的話結束流程,否則進行步驟610,進行更低的層級,也就是
l=
l-1。
步驟603~605可以合稱為第二佈局程序620,步驟606~608可以合稱為第一佈局程序630。在此實施例中,在步驟608中的目標函數包含繞線壅塞懲罰
,但步驟604的目標函數則沒有包含繞線壅塞懲罰,這是因為在佈局初始階段所有的群會擠在一起,此時無法考慮繞線壅塞懲罰,必須先考慮線路長度將這些群分散開來。然而,本揭露並不限於圖6的流程圖,在其他實施例中步驟604可以採用任意的目標函數,或者第二佈局程序620可省略。此外,本揭露也不限於上述數學式14的目標函數,任意合適的目標函數只要包含了繞線壅塞懲罰
都符合本揭露的精神。
以另外一個角度來說,本發明也提出了一電腦程式產品,此產品可由任意的程式語言及/或平台所撰寫,當此電腦程式產品被載入至電腦系統並執行時,可執行上述的佈局方法。本發明也提出一種非暫態電腦可讀取儲存媒體,例如為隨機存取記憶體、唯讀記憶體、快閃記憶體、軟碟、硬碟、光碟、隨身碟、磁帶、可由網路存取之資料庫等,此儲存媒體中儲存有多個指令,當這些指令被執行時可完成上述的佈局方法。
本揭露至少有三個特點。第一,我們在多層級的框架下採用不同的策略來解決全局壅塞以及局部壅塞的問題。第二,我們提出了一個以壅塞作為連線懲罰的模型來減少全局壅塞。第三,我們提出了新的膨脹技術,同時考慮一個群的內部連線強度以及此群所佔據的壅塞值,藉此減輕局部壅塞。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
110,120,130:情境
201~204:單元
211~214:連線
301~303,401~409,601~610:步驟
510,530:佈局區域
520,540:壅塞圖
710:連線
721~724:接腳
730:包圍盒
810,820:情境
821~823:壅塞區域
831~833:連線
901~904:網格
910:包圍盒
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖示作詳細說明如下。
圖1繪示了一個範例來說明不同原因引起的佈線壅塞。
圖2是根據一實施例說明單元與連線的示意圖。
圖3是根據一實施例繪示佈局方法的流程圖。
圖4繪示了步驟301的詳細流程圖。
圖5是根據一實施例繪示高層級與低層級的佈局結果以及對應的壅塞圖。
圖6是根據一實施例繪示了步驟303的詳細流程圖。
圖7是根據一實施例繪示連線與包圍盒的示意圖。
圖8是根據一實施例繪示連線與壅塞區域的示意圖。
圖9是根據一實施例繪示包圍盒與網格重疊的示意圖。
810,820:情境
821~823:壅塞區域
831~833:連線
Claims (10)
- 一種積體電路設計的佈局方法,用於一電腦系統,其中一佈局區域被劃分為多個網格,多個單元組成多個連線,每一該些連線連接該些單元的至少其中之二,該佈局方法包括: 將該些單元當作多個群,並且從下至上在多個層級中的每一個層級合併該些群; 進行初始化的佈局;以及 從上至下在每一該些層級中解開該些群並執行一第一佈局程序,該第一佈局程序包括: 為每一該些連線建立一包圍盒,該包圍盒覆蓋該些網格中的至少一第一網格; 對於每一該些連線,根據該包圍盒與該至少一第一網格的重疊面積以及該至少第一網格的溢出值計算一繞線壅塞懲罰;以及 根據該些連線的該些繞線壅塞懲罰建立一第一目標函數並決定該些群的位置使得該第一目標函數有一極值。
- 如請求項1所述之佈局方法,其中合併該些群的步驟包括: 產生一新群以包含該些群中的第一群與第二群;以及 至少將該第一群的內部連線強度、該第二群的內部連線強度以及該第一群與該第二群之間的一分數相加以得到該新群的內部連線強度,其中該分數與該第一群以及該第二群之間的該些連線的分支數負相關。
- 如請求項2所述之佈局方法,其中當該第一群或該第二群屬於該些層級中的一最低層級時,對應的該內部連線強度為0, 該分數也與該第一群的面積以及該第二群的面積負相關。
- 如請求項3所述之佈局方法,其中該第一佈局程序還包括: 更新每一該些網格的溢出值;以及 對於每一該些群,取得該些網格中與該群有最大重疊的一第二網格,根據該第二網格的該溢出值以及該群的該內部連線強度計算一膨脹比例,並根據該膨脹比例調整該群的大小。
- 如請求項4所述之佈局方法,其中該第一佈局程序還包括: 在計算該膨脹比例時,將對應的該群的該內部連線強度乘上一權重,該權重與該些層級中的一目前層級正相關。
- 如請求項6所述之佈局方法,還包括: 在該第一佈局程序之前執行一第二佈局程序,其中該第二佈局程序包括: 對於每一該些群,計算該群的該膨脹比例,並根據該膨脹比例調整該群的大小;以及 建立第二目標函數並決定該些群的位置使得該第二目標函數有極值,其中該第二目標函數不包括該些繞線壅塞懲罰。
- 一種電腦程式產品,由一電腦系統載入並執行以完成請求項1所述之積體電路設計的佈局方法。
- 一種非暫態電腦可讀取儲存媒體,用以儲存多個指令,該些指令用以被執行以完成請求項1所述之積體電路設計的佈局方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110129658A TWI797713B (zh) | 2021-08-11 | 2021-08-11 | 佈局方法、電腦程式產品與非暫態電腦可讀取儲存媒體 |
US17/455,013 US11861283B2 (en) | 2021-08-11 | 2021-11-15 | Placement method and non-transitory computer readable storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110129658A TWI797713B (zh) | 2021-08-11 | 2021-08-11 | 佈局方法、電腦程式產品與非暫態電腦可讀取儲存媒體 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202307719A TW202307719A (zh) | 2023-02-16 |
TWI797713B true TWI797713B (zh) | 2023-04-01 |
Family
ID=85178135
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110129658A TWI797713B (zh) | 2021-08-11 | 2021-08-11 | 佈局方法、電腦程式產品與非暫態電腦可讀取儲存媒體 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11861283B2 (zh) |
TW (1) | TWI797713B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108846187A (zh) * | 2018-05-25 | 2018-11-20 | 福州大学 | 基于广义增广拉格朗日的集成电路全局布局优化方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6085032A (en) * | 1996-06-28 | 2000-07-04 | Lsi Logic Corporation | Advanced modular cell placement system with sinusoidal optimization |
US6480991B1 (en) * | 2001-04-11 | 2002-11-12 | International Business Machines Corporation | Timing-driven global placement based on geometry-aware timing budgets |
US7117468B1 (en) * | 2002-01-22 | 2006-10-03 | Cadence Design Systems, Inc. | Layouts with routes with different spacings in different directions on the same layer, and method and apparatus for generating such layouts |
US8863062B2 (en) * | 2012-04-30 | 2014-10-14 | Taiwan Semiconductor Manufacturing Company, Ltd. | Methods and apparatus for floorplanning and routing co-design |
CN107526860B (zh) * | 2017-03-31 | 2019-12-31 | 福州大学 | 基于电场能建模技术的vlsi标准单元布局方法 |
US11675333B2 (en) * | 2020-06-26 | 2023-06-13 | Autodesk, Inc. | Generative design shape optimization with singularities and disconnection prevention for computer aided design and manufacturing |
-
2021
- 2021-08-11 TW TW110129658A patent/TWI797713B/zh active
- 2021-11-15 US US17/455,013 patent/US11861283B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108846187A (zh) * | 2018-05-25 | 2018-11-20 | 福州大学 | 基于广义增广拉格朗日的集成电路全局布局优化方法 |
Also Published As
Publication number | Publication date |
---|---|
US11861283B2 (en) | 2024-01-02 |
US20230046865A1 (en) | 2023-02-16 |
TW202307719A (zh) | 2023-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101187957B (zh) | 设计集成电路的公共时钟域中的多个锁存器的布图的系统和方法 | |
US7266796B1 (en) | Fastplace method for integrated circuit design | |
Hsu et al. | Routability-driven analytical placement for mixed-size circuit designs | |
US7484199B2 (en) | Buffer insertion to reduce wirelength in VLSI circuits | |
US7934188B2 (en) | Legalization of VLSI circuit placement with blockages using hierarchical row slicing | |
US11853676B2 (en) | Layout context-based cell timing characterization | |
US7401313B2 (en) | Method and apparatus for controlling congestion during integrated circuit design resynthesis | |
US7296252B2 (en) | Clustering techniques for faster and better placement of VLSI circuits | |
Huang et al. | Detailed-routing-driven analytical standard-cell placement | |
Lin et al. | Routability-driven global placer target on removing global and local congestion for VLSI designs | |
Murali et al. | ART-3D: Analytical 3D placement with reinforced parameter tuning for monolithic 3D ICs | |
TW202409879A (zh) | 具有人類專家質量的基於學習的宏安置 | |
TWI797713B (zh) | 佈局方法、電腦程式產品與非暫態電腦可讀取儲存媒體 | |
US9594859B1 (en) | Apparatus and associated methods for parallelizing clustering and placement | |
US12079558B2 (en) | On-the-fly multi-bit flip flop generation | |
US6557144B1 (en) | Netlist resynthesis program based on physical delay calculation | |
WO2023130434A1 (zh) | 用于设计布局的方法、装置、设备、介质以及程序产品 | |
US11704467B2 (en) | Automated balanced global clock tree synthesis in multi level physical hierarchy | |
Chang et al. | Flexible multiple-objective reinforcement learning for chip placement | |
US10970452B2 (en) | System for designing semiconductor circuit and operating method of the same | |
US9177090B1 (en) | In-hierarchy circuit analysis and modification for circuit instances | |
CN115705458A (zh) | 布局方法与计算机系统 | |
Pandini et al. | Global and local congestion optimization in technology mapping | |
Zang et al. | ATLAS: A two-level layer-aware scheme for routing with cell movement | |
Zhu et al. | High-performance 3D Placement Engine with Physical-aware Incremental Partitioning |