热门问题
时间线
聊天
视角
放置 (集成電路)
来自维基百科,自由的百科全书
Remove ads
放置(英語:placement)是電子設計自動化中的一個重要步驟,屬於物理設計流程的一部分,在這過程中會把電路元件安置在指定面積的晶片上。如果電路的布局沒有設計好,那麼集成電路芯片的性能將會受到影響甚至部份失靈或出現嚴重的故障,而且會因為納米級別的微電路連線設計得不到優化(對連線的配置稱為布線),導致晶片的製造效率降低甚至增加了不良品的比率。因此,電路的布局人員必須考慮到對多個參數的優化,以使電路成品能夠符合預定的性能要求。IC設計中的放置與布線步驟通常合稱為「放置與布線」。
放置器(placer)以給定的已綜合電路網表和工藝庫為輸入,生成一個合法的放置布局。該布局會根據上述目標進行優化,並為單元尺寸調整與加緩衝做好準備——這是滿足靜態時序分析和信號完整性所必需的步驟。隨後進行時鐘樹綜合和布線,完成物理設計過程。在許多情況下,物理設計流程的部分或全部會迭代若干次,直到實現設計收斂。
應用細節
在特定應用積體電路(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