热门问题
时间线
聊天
视角
放置 (積體電路)
来自维基百科,自由的百科全书
Remove ads
放置(英語:placement)是電子設計自動化中的一個重要步驟,屬於物理設計流程的一部分,在這過程中會把電路元件安置在指定面積的晶片上。如果電路的布局沒有設計好,那麼積體電路晶片的效能將會受到影響甚至部份失靈或出現嚴重的故障,而且會因為奈米級別的微電路連線設計得不到優化(對連線的組態稱為布線),導致晶片的製造效率降低甚至增加了不良品的比率。因此,電路的布局人員必須考慮到對多個參數的最佳化,以使電路成品能夠符合預定的效能要求。IC設計中的放置與布線步驟通常合稱為「放置與布線」。
放置器(placer)以給定的已綜合電路網表和製程庫為輸入,生成一個合法的放置布局。該布局會根據上述目標進行最佳化,並為單元尺寸調整與加緩衝做好準備——這是滿足靜態時序分析和訊號完整性所必需的步驟。隨後進行時鐘樹綜合和布線,完成物理設計過程。在許多情況下,物理設計流程的部分或全部會迭代若干次,直到實現設計收斂。
Remove ads
應用細節
在特定應用積體電路(ASIC)的情況下,晶片核心布局區域由若干固定高度的行組成,行與行之間可能有間隔也可能相鄰。每一行由多個可被電路組件占據的站位(sites)構成。未被任何組件占據的站位稱為空閒站位。電路組件通常為標準單元、大區塊或 I/O 焊盤。[1]標準單元的高度固定,等於行的高度,但寬度可變,且其寬度為站位數的整數倍。
相比之下,大區塊通常比標準單元大,且高度可變,可跨越多行。[1]有些大區塊可能已有預先分配的位置(例如來自之前的布圖規劃),此時放置器只需為標準單元分配位置,這類大區塊通常稱為固定大區塊(fixed blocks)。另外,也存在部分或全部大區塊未預先定位的情形,此時需要與標準單元一起進行放置,這通常稱為混合模式放置(mixed-mode placement)。
除了ASIC外,放置在門陣列結構(如現場可程式化邏輯閘陣列FPGA)中也非常重要。在FPGA中,預製的邏輯單元通常按行(或「陣列」)排列,行間以布線通道隔開。[2]放置的任務是將電路的子電路對映到可程式化的FPGA邏輯單元中,保證後續布線階段能夠完成。
Remove ads
目標與約束
放置問題被表述為有約束的最佳化問題。晶片的時鐘周期由其最長路徑的延遲決定,該最長路徑通常稱為關鍵路徑。在給定效能規範下,放置器必須確保不存在延遲超過最大允許值的路徑。
其他主要約束包括:
- 避免電路組件之間的重疊(即網表中的實例互不重疊)。
- 將電路組件放置到預定的站位上。
通常存在多個最佳化目標,包括:
- 匯流排長度(Total wire length):設計中所有互連線長度的總和。
- 布線擁塞(Routing congestion):局部擁塞定義為某一區域所需布線長度與該區域可用布線軌道長度之間的差值;局部擁塞值可用若干方式聚合,例如加總前10%最大的值。
- 功耗(Power):動態開關功耗依賴於布 線長度,而布線長度又受組件位置影響。
此外,放置過程能快速完成也是一個重要的期望。
在大多數現有放置器中,匯流排長度通常是首要目標,並作為其它最佳化的先導——例如功耗與延遲往往隨匯流排長度增大而增大。匯流排長度決定了布線需求以及該需求能否被可用的布線軌道(布線供給)滿足。然而,將線儘可能縮短有時會導致局部布線需求超過該處的布線供給。這類情況常需布線繞行,從而增加線長和訊號延遲。因此,在對匯流排長度做初步最佳化之後,處理布線擁塞也非常重要。
在功耗最小化方面,通常會辨識出切換活動因子較高的訊號並優先縮短這些訊號的布線。當大量「熱」(活動量大的)組件被放置在相近位置時,可能形成熱點並導致有害的溫度梯度。在這種情況下,可通過將組件適當分散來緩解。
Remove ads
基本技術
放置分為「全域放置」和「詳細放置」。全域放置通過在全域尺度上將所有實例分配到合適的位置來引入顯著變化,允許存在少量重疊;詳細放置則把每個實例移動到附近的合法位置,布局變化很小。放置結果與整體設計品質最密切相關,尤其取決於全域放置的表現。
早期的積體電路放置技術可歸類為組合最佳化。對於含數千或數萬個組件的IC設計,基於類比退火的方法(如TimberWolf[3])通常能給出最佳結果。[4]隨著IC設計擴充到數百萬組件,放置開始利用超圖劃分[5],採用諸如Capo的巢狀劃分框架。[6]組合方法能直接避免組件重疊,但在大規模互連最佳化上存在困難;它們通常具有隨機性,多次執行同一輸入可能產生截然不同的結果。
用於全域放置的解析方法將互連長度用連續函式建模,並在組件密度約束下直接最小化該函式。與組合方法相比,這類別方法執行更快、擴充性更好,但不能防止組件重疊,因此需要用組合方法進行後處理以完成詳細放置。二次放置(Quadratic placement)是早期的一種解析方法:它用二次函式來建模互連長度,並採用高效能的二次最佳化技術。該方法在提出時既展示了有競爭力的結果品質,也表現出比組合方法更穩定的特性。GORDIAN[7]將線長代價表述為二次函式,同時通過遞迴劃分實現單元的分散。另有演算法[8]將放置密度作為一個線性項加入二次代價函式中,並通過純二次規劃來求解放置問題。常見的改進如按上一迭代中每條網線長度的倒數對該網線加權;在該過程收斂時,這會最小化關於線長的線性目標[9]。大多數現代二次放置器(如KraftWerk[10]、FastPlace[11]、SimPL[12])遵循這一框架,但在確定線性密度力的啟發式方法上各有差異。
非線性放置則用指數(非線性)函式建模線長,並用局部分段二次函式建模密度,以期獲得更高的建模精度和更好的結果品質。[13]後續的學術工作包括APlace[14]和NTUplace[15]等演算法。
ePlace[16]是一種先進的全域放置演算法。它通過類比靜電場使實例相互遠離,從而將品質開銷降到最低並取得良好的效能。
在 2021 年,谷歌大腦報道了將人工智慧技術(特別是強化學習)應用於放置問題並獲得良好結果的研究。[17]然而,該結果頗具爭議:論文中未與現有放置器做直接的一對一對比,且由於包含專有
相關
延伸閱讀
下列學術期刊提供了有關電子設計自動化的更多資訊:
- IEEE Transactions On Computer-Aided Design Of Integrated Circuits And Systems
- ACM Transactions On Design Automation
下列學術文獻解釋了用於元件布局多對象(功率、延遲、面積和連線長度)最佳化的元啟發式演算法:
- Fast Fuzzy Force-Directed/Simulated Evolution Metaheuristic for Multiobjectice VLSI Cell Placement
- Electronic Design Automation For Integrated Circuits Handbook, by Lavagno, Martin, and Scheffer, ISBN 0-8493-3096-3 A survey of the field of Electronic Design Automation. The above summary was derived, with permission, from Volume II, Chapter 5, Digital Layout -- Placement by Andrew Kahng and Sherief Reda.
Remove ads
參考
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads