ALIGN:自动化模拟布局的系统
摘要
ALIGN(“Analog Layout, Intelligently Generated from Netlists”)是一種用于模擬電路的開源自動版圖生成流程。 ALIGN 將輸入 SPICE 網表轉換為輸出 GDSII 布局,特定于給定技術,由一組設計規則指定。 該流程首先自動檢測電路網表中的層次結構,并將布局綜合轉換為分層塊組裝問題。 在最低級別,參數化單元是使用設計規則的抽象生成的; 然后在幾何和電氣約束下組裝這些塊以構建電路布局。 ALIGN 已被應用于為各種模擬電路系列生成布局:低頻模擬塊、有線電路、無線電路和供電電路。
背景
ALIGN (Analog Layout, Intelligently Generated from Netlists) 是一款用于模擬電路的開源版圖生成器,目前正在開發中。 軟件流程的第 1 版已于 2020 年 8 月發布。ALIGN 項目聘請了一個聯合學術/行業團隊將 SPICE 級網表轉換為物理布局,24 小時周轉且無人參與。 ALIGN 流程輸入已選擇拓撲和晶體管尺寸的網表、規格和工藝設計套件 (PDK),并輸出 GDSII。
ALIGN 的理念是通過首先識別網表中的布局層次結構,然后在最低層次結構生成正確的構造布局,最后在布局和布線過程中在每個層次結構層次組裝塊來組合綜合布局。 因此,ALIGN 的一個關鍵步驟是識別這些層次結構以識別設計的構建塊。 在此過程中,ALIGN 模仿了人類設計師,他們識別已知塊,將它們布置出來,然后分層構建整體布局。 在這個層次結構的最低層是一個單獨的晶體管。 然后將這些晶體管組合成更大的基本原語 [例如,差分對、電流鏡],然后是模塊 [例如,運算跨導放大器 (OTA)],通過幾個層次結構到系統級別 [例如,射頻 ( RF) 收發器]。 ALIGN 使用算法技術、模板驅動設計和機器學習 (ML) 的組合來創建專業設計師級別的布局。
晶體管 -> 基本原語 -> 模塊
與由少量構建塊組成的數字設計不同,模擬電路傾向于使用多種結構。 其中每一個都有自己的限制和要求,傳統上只有專業設計人員才能構建能夠提供高性能的電路。 ALIGN 針對各種模擬設計,包括bulk和 FinFET 技術,涵蓋四大類功能:
? 低頻組件,包括模數轉換器 (ADC)、放大器和濾波器。
? 包括時鐘/數據恢復、均衡器和相位內插器的有線組件。
? 實現發射器、接收器等的射頻/無線組件。
? 電力傳輸組件包括基于電容器和電感器的DC-DC 轉換器。
每個類別的特點是相似的構建塊可能具有相似的性能參數集,盡管應該提到的是,即使在每個類別中也存在相當大的差異。 圖 1 總結了每個類別中重要的因素。
調研
在自動化模擬布局合成方面已經有一些先前的努力 [1]-[7],但這些方法并不廣泛部署在工具中。 一些方法解決了有限類別的設計; 其他人無法調整以處理同一設計類的足夠廣泛的變體集。 此外,人們普遍認為,現有的模擬布局自動化方法無法與專業設計人員相匹敵,無論是在理解和實施專業布局技巧的能力方面,還是在具有特定電路約束的拓撲的數量和種類方面。 模擬布局綜合的最終目標是達到手工設計的質量。
近年來,形勢發生了多種變化,使得自動化布局解決方案具有吸引力。 首先,在納米級技術中,具有固定間距和單向布線的受限設計規則限制了舊技術中可用的布局自由度,從而減少了布局期間要探索的設計空間,降低了人類專家的優勢。 其次,如今集成系統需要比以前更多的模擬模塊,其中一些模塊需要正確的功能和適度的性能。 增加模擬內容與放寬規范相結合,為模擬自動化創造了一個甜蜜點。 即使對于高性能模塊,自動版圖生成器也可以顯著減少電路優化和版圖之間的迭代,其中版圖生成是主要瓶頸。 第三,ML 的出現為以以前不可能的方式解決模擬布局問題提供了希望,并為非人工在環設計奠定了基礎。
本文概述了 ALIGN 的技術細節,并展示了如何使用 ALIGN 將模擬電路網表轉換為布局。 核心 ALIGN 引擎可以在沒有人參與的情況下運行,由執行通常由人執行的功能的 ML 算法啟用,例如,在自動注釋期間識別電路中的層次結構,或為布局生成對稱約束。 ML 算法還有助于創建快速的電氣約束檢查器,以驗證候選布局/布線解決方案是否滿足性能約束,并使用它來引導布局布線引擎達到滿足所有規范的最佳狀態。 更深入的細節,讀者可以參考[8]-[11]中的詳細描述,并關注我們小組正在進行的工作的新出版物。
核心技術
ALIGN 流程由五個模塊組成,如圖 2 所示: (1) 網表自動注釋創建輸入網表的多級層次表示,并識別網表中的結構對稱性。 這是用于分層構建電路布局的關鍵步驟。 (2) 設計規則捕獲將專有的 PDK 抽象為一個簡化的網格,根據需要附加布爾約束,在布局期間的所有步驟都必須遵守。 (3) 約束生成識別要滿足的性能約束,并將其轉換為布局約束,例如最大允許凈長度,或基于自動注釋期間識別的結構信息的匹配/公共質心等約束。 (4) 參數化圖元單元生成自動為圖元構建布局,圖元是 ALIGN 層次結構中的最低級別塊。 基元通常包含少量晶體管結構(每個都可以使用多個鰭和/或指來實現)。 在此步驟中,網表中原語的參數化實例會自動轉換為 GDSII 布局。 (5) 分層塊組件在滿足幾何和電氣約束的同時,對分層電路結構進行布局和布線。 該流程在開源代碼和專有數據之間建立了分離。 專有 PDK 模型必須轉換為布局生成器使用的抽象。 部分流程由 ML 模型驅動:流程為在專有數據上訓練這些模型提供了基礎設施。
整個 ALIGN 流程旨在支持無人參與的設計。 然而,流程是模塊化的并且支持多個入口點:例如,自動注釋模塊可以被設計者注釋替換,并且可以使用該注釋來執行流程的其余部分。 流程對用戶輸入很靈活:例如,用戶可以指定新的圖元,它們將被注釋模塊以及流程中的布局生成器使用。
網表自動注釋
此步驟將輸入網表中的晶體管和無源器件分組為一組分層的構建塊,并確定每個塊布局的約束。 ALIGN 的輸入是轉換為圖形表示的 SPICE 網表。 接下來,識別圖形的特征??,并創建電路層次結構。 如果將輸入網表劃分為子電路,則在識別過程中會使用此類信息,但 ALIGN 不計入網表層次結構。 相反,層次結構會被自動識別和注釋。 需要注意的是,最好的布局層次有時可能不同于邏輯網表層次。 因此,ALIGN 可以扁平化網表層次結構以構建高質量的布局。 模擬設計人員通常從大量變體中選擇每個設計模塊,例如,在教科書和研究論文之間,有超過 100 種廣泛使用的各種類型的 OTA 拓撲(例如,伸縮式、折疊級聯、米勒補償)。 先前的方法是基于庫的(即,它們將電路與預先指定的模板匹配)[4] 或基于知識的(即,它們使用一組編碼規則確定塊功能)[1],或兩者兼而有之 [12]。 基于庫的方法需要一個大型庫,而基于規則的方法必須得到詳盡的知識庫的支持,這兩者都難以構建和維護。 ALIGN 使用兩種方法來注釋電路塊,均基于使用圖形表示來表示電路連通性 基于ML 基于圖遍歷
設計規則提取
ALIGN 布局工具由確保設計規則正確性的過程特定設計規則指導。 設計規則的復雜性在最近幾代工藝中顯著增加。 先前已經提出了為流程規則構建通用抽象的努力(例如,[13])。 ALIGN 使用更有效的設計規則抽象機制,在 FEOL 和 BEOL 層中創建固定網格結構,如圖 4 所示。主要網格(粗線)表示路線的中心線,而次要網格(虛線)對應于停靠點 對于功能。 網格結構和基本流程信息被抽象為 JSON 文件。 對于 BEOL 層,這包括:
我們的抽象允許不同的網格結構,可以在層與層之間變化,并使用表示線間距、線懸垂的主要/次要網格線,以及通過布爾約束通過規則合并的能力。 我們的方法將嵌入在設計規則手冊中的數千條規則中的復雜條件集簡化為一個大大簡化且小得多的集合,通過選擇網格來實施一些限制。 通過與手工設計的比較發現,這導致版圖質量的降級最小或為零。 先進的商業工藝節點(22nm、10nm、7nm 等)已被抽象為這種簡化形式。 該抽象使布局工具能夠理解 PDK 功能,例如規則和不規則寬度和間距網格(針對每一層)、最小端到端間距設計規則(同一軌道中的金屬之間)、最小長度設計規則和強制停止點網格 . 為方便起見,JSON 文件還對金屬層和通孔的每單位寄生參數進行編碼
為了促進進一步的布局研究,我們發布了 1 條基于公共域信息的 Mock PDK 設計規則,以抽象 14nm FinFET 節點 [14] 和 65nm 體節點 [15] 的布局規則。 雖然它們不代表真正的技術,但它們是現實的。 設計驗證這些 PDK 上的工具可以自由共享,有助于軟件開發過程。
約束生成 (識別約束 對稱 匹配 共質心 )
生成兩種類型的約束來指導布局:
(1) 幾何約束:當自動注釋步驟識別已知塊或數組結構時,它將幾何要求與這些塊相關聯,例如對稱、匹配和共質心 約束。 例如,圖 3 顯示了 OTA 結構中的對稱線,在布局期間必須遵守這些對稱線。 這些約束是作為自動注釋的一部分自然提取的。 與基于模擬密集型靈敏度分析 [16] 或基于圖遍歷與模板的精確匹配 [4] 的現有方法相比,ALIGN 方法 [9] 中的方法將圖遍歷方法與基于機器學習的方法相結合,并且計算效率高 ,即使在近似匹配下也能夠找到分層嵌套的對稱約束。
(2) 電氣約束:ALIGN 基于固定網表生成版圖,性能變化由從網表級估計到版圖后值的寄生參數變化驅動。 因此,ALIGN 將電氣約束轉換為限制電路任何節點處的最大寄生參數。 例如,電氣約束可以轉化為連接兩個節點的導線電阻的最大限制,這反過來又對應于對最大長度、平行金屬軌道的數量和路徑上的通孔數量的約束 連接這些節點。 此功能目前正在 ALIGN [10]、[11] 中實現,并且正在進行中。 基本思想是開發一個快速的 ML 推理引擎,該引擎在迭代布局器的內部循環中運行,并且對于每個布局器配置,確定其電氣約束是否得到滿足。 這些約束被傳遞到布局生成引擎,以指導所有層次結構級別的布局。
參數化基元布局生成 (重點)
ALIGN 為用戶提供了一個預定義的可參數化基元庫,如圖 5 所示。每個基元由少量晶體管或無源單元組成; 然而,每個這樣的單元可以由多個復制結構組成,例如多鰭/多指晶體管,或電阻/電容陣列。
原始單元布局遵循設計規則定義的網格化抽象,單元生成可以根據單元單元和單元單元的數量進行參數化,如圖 6 所示。對于晶體管,單元單元可以參數化 FinFET 技術中的鰭片數量; 對于電容器,參數化可能對應于單位電容器的大小。 此外,原始布局可以通過其縱橫比、布局樣式(共質心與叉指晶體管)、柵極長度、單元中關鍵線的有效寬度等參數化。
識別基元和創建參數化布局的實用程序在于使 ALIGN 能夠創建包含適當幾何約束(例如對稱或公共質心)的布局。 原則上,可以使用“晶體管海”構建布局,其中基元對應于單個晶體管,但這種方法在晶體管基元之外強制執行對稱要求將具有挑戰性。 用于原始布局生成的先前方法 [17]-[20] 通常不像 ALIGN 方法那樣模塊化或可擴展。
分層塊組裝
給定所有基元的布局和電路的分層塊級結構,在自動注釋期間提取,布局和布線步驟執行服從前面描述的幾何和電氣約束的分層塊組裝。 層次結構中的每個布局塊可以有多個布局選項,每個模塊生成不同的形狀。 例如,可以通過縱橫比對圖元進行參數化,并且可以為其他塊生成多個縱橫比。 靈活的形狀驅動類似于布局規劃的布局算法,在約束生成步驟傳遞給它們的電氣和幾何約束下提供緊湊的布局。 路由集成到每個層級中,考慮到網絡長度/寄生約束、屏蔽和對稱性要求,并符合嵌入到 PDK 抽象中的設計規則。 放置器基于使用序列對方法 [6] 的先前工作,并且可以處理一般幾何約束,例如對稱、匹配和對齊。 布線期間支持對稱、屏蔽和電阻約束布線。
ALIGN 流程可以使用兩個詳細路由器之一: (a) 使用整數線性規劃公式和 A* 算法的構造路由器; 這對于更稀疏的設計特別有效。 (b) 英特爾發布的基于 SAT 的詳細路由器 1,非常適合擁塞設計。
目標
總結
以上是生活随笔為你收集整理的ALIGN:自动化模拟布局的系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 盘点软件测试中那些必不可少的“用例集”
- 下一篇: 高校公寓管理系统的设计与实现