標準單元

在半導體設計中,標準單元方法(standard-cell methodology)是指一種特定應用積體電路(ANSI)的設計方法。標準單元方法屬於設計抽象的實例:將低級的超大型積體電路版圖通過邏輯合成封裝為抽象的邏輯表示(例如NAND)。
一個標準單元是指一系列由電晶體和連線結構組成的具有布林邏輯功能或者觸發功能的數位單元。
基於單元的方法使得設計者可以專注於數位設計的高級(邏輯功能)方面,而另一個設計者則專注於實現(物理)方面。隨著半導體元件製造的進步,標準單元方法幫助設計師將ASIC從相對簡單的單功能IC(數千門級)擴展到複雜的數百萬門級的片上系統(SoC)設備。
構成
[編輯]標準單元是一組電晶體和互連結構,提供布林邏輯功能(例如AND、OR、XOR、XNOR、反相器)或存儲功能(正反器或閂鎖)。[1]最簡單的單元是基本的NAND、NOR、XOR布林函數的直接表示,儘管通常也使用複雜得多的單元(例如2位加法器或帶多路復用的D輸入正反器)。單元的布林邏輯功能稱為其邏輯視圖:組合邏輯的功能行為以真值表或布林代數方程表示;序向邏輯以狀態轉移表表示。
通常,標準單元的初始設計在電晶體級別進行,以電晶體網表或原理圖(schematic)視圖的形式存在。網表是對電晶體、它們之間連接以及對外埠(引腳)的節點描述。可用多種計算機輔助設計(CAD)或電子設計自動化(EDA)程式通過圖形用戶界面生成該網表。設計者使用諸如SPICE的CAD程式對網表進行電學行為仿真,給出輸入激勵(電壓或電流波形),計算電路的時域(類比)響應。仿真用於驗證網表是否實現了預期功能,並預測功耗或訊號傳播延遲等相關參數。
由於邏輯視圖和網表視圖僅對抽象(代數)仿真有用,而不用於元件製造,因此必須設計標準單元的物理表示,也稱為版圖視圖,這是常見設計實踐中最低級別的設計抽象。從製造角度看,標準單元的VLSI版圖是最重要的視圖,因為它最接近標準單元的實際「製造藍圖」。版圖按基底層(base layers)組織,基底層對應電晶體元件的不同結構;並有互連布線層(interconnect wiring layers)和通孔層(via layers),用於連接電晶體結構的埠。[1]互連布線層通常編號,並具有特定的通孔層表示每一相鄰層之間的特定連接。布局中還可能存在用於設計自動化的非製造層,但許多專門供放置與布線(PNR)CAD程式使用的層通常包含在一個單獨但類似的抽象視圖中。抽象視圖的信息通常遠少於完整版圖,常以庫交換格式(LEF)文件或等價格式表示。
在創建版圖之後,通常使用額外的CAD工具執行若干常見驗證。進行設計規則檢查(Design rule check,DRC)以驗證設計是否滿足代工廠和其他版圖要求。然後執行寄生提取(parasitic extraction,PEX),從版圖生成具有寄生屬性的PEX-網表。接著通過電路佈局驗證(layout vs schematic,LVS)程式將該網表的節點連接與原理圖網表進行比較,以驗證連通性模型是否等價。[2]
由於PEX網表包含寄生屬性,因此可以對其再次進行仿真以獲得更精確的時序、功耗和雜訊模型。這些模型通常以Synopsys Liberty格式進行表徵(characterized),但也可使用其他Verilog相關格式。
最後,放置與布線(place and route,PNR)工具可用於將所有內容整合,並從更高級別的設計網表與晶片平面自動生成(綜合)VLSI版圖。
此外,還可使用若干其它CAD工具驗證單元視圖和模型的其它方面,並產生支持各種工具使用標準單元的多種其它文件。為支持所有這些標準單元變體而創建的所有文件統稱為標準單元庫(standard-cell library)。
對於典型的布林函數,存在許多功能等價的電晶體網表。同樣,對於典型網表,也存在許多符合網表性能參數的不同版圖。設計者的挑戰是儘量降低標準單元版圖的製造成本(通常通過最小化電路的晶片面積),同時滿足單元的速度和功耗性能要求。因此,儘管存在輔助的設計工具,積體電路版圖仍然是一項勞動密集型的工作。
庫
[編輯]標準單元庫是低級電子邏輯代數功能(如與、或、非、正反器、閂鎖和緩衝器等)的集合。這些單元實現為定高、可變寬的全定製單元。該類庫的關鍵特徵是單元具有固定高度,使其能按行放置,從而簡化自動化數位版圖的過程。單元通常為經過優化的全定製版圖,以最小化延遲和面積。
典型的標準單元庫包含兩個主要組成部分:
- 庫資料庫:包含若干視圖,通常包括版圖、原理圖、符號、抽象和其它邏輯或仿真視圖。從這些視圖可捕獲多種格式的信息,包括Cadence LEF格式和Synopsys Milkyway格式,它們包含關於單元版圖的簡化信息,足以供自動化放置與布線工具使用。
- 時序抽象 :通常為Liberty(EDA)格式,提供每個單元的功能定義、時序、功耗和雜訊信息。
標準單元庫還可能包含下列附加組件:[3]
- 單元的完整版圖
- 單元的SPICE元件模型
- Verilog模型或VHDL-VITAL模型
- 寄生提取模型
- 設計規則檢查規則集
例如,一個簡單的XOR邏輯閘可以由OR、NOT與AND門構成。
應用
[編輯]標準單元通常可以應用在數位電路設計中的綜合和布局布線階段。
嚴格來說,2輸入的NAND或NOR功能足以構成任意布林函數集合。但在現代ASIC設計中,標準單元方法通常配合較大的單元庫(或多庫)使用。庫通常包含同一邏輯函數的多個實現,面積與速度各不相同。[3]這種多樣性可提升自動綜合、放置與布線(SPR)工具的效率;並間接賦予設計者在實現權衡(面積 vs. 速度 vs. 功耗)上更大的自由。完整的一組標準單元描述通常稱為製程庫(technology library)。[3]
商業化的電子設計自動化(EDA)工具使用製程庫來自動執行數位ASIC的綜合、放置與布線。製程庫由代工廠運營商(foundry operator)開發和分發。該庫(以及一種設計網表格式)是各階段SPR流程之間交換設計信息的基礎。
綜合
[編輯]利用製程庫中單元的邏輯視圖,邏輯合成工具將ASIC的暫存器傳輸級(RTL)描述數學地轉換為與製程相關的網表。此過程類似於軟體編譯器將高級C程式轉換為與處理器相關的彙編語言。
網表是ASIC設計的標準單元表示(邏輯視圖級)。它由標準單元庫門的實例及門之間的埠連通性構成。適當的綜合技術可確保綜合得到的網表與原始RTL描述在數學上等價。網表中不應包含未映射的RTL語句或聲明。
高級綜合工具將C級模型(如SystemC、ANSI C/C++)轉換為與製程相關的網表。
放置
[編輯]放置(placement)工具啟動ASIC的物理實現。在ASIC設計者提供的二維晶片平面(floorplan)基礎上,放置器為網表中的每個門分配位置。生成的「已放置門」網表包含網表中每個標準單元的物理位置,但仍保留門埠之間布線的抽象描述。
通常標準單元在至少一個維度上具有恆定尺寸,使它們可以在積體電路上排列成行。晶片由大量行組成(每行旁邊為電源和地軌),每行填充構成實際設計的各種單元。放置工具遵守若干規則:每個門被分配唯一(獨占)的晶片位置;一個門只能放置一次,且不得占用或與其它門重疊。
布線
[編輯]在使用布局級網表和單元級庫版圖,布線工具可以增加訊號連接線和電源線。完全布線後的物理網表包含綜合階段的門清單、放置階段每個門的位置以及布線階段繪製的互連。
DRC/LVS
[編輯]設計規則檢查(Design rule check,DRC)和電路佈局驗證(layout versus schematic,LVS)都是驗證流程。[2] 在現代深亞微米製程(0.13 μm及以下)下,可靠的元件製造要求嚴格遵守電晶體間距、金屬層厚度和功率密度等規則。DRC將物理網表與代工廠提供的一組「代工廠設計規則」進行逐條比較,並標記任何觀測到的違例項。
LVS流程確認版圖與對應的原理圖結構相同;這通常是版圖流程的最後一步。[2]LVS工具以原理圖和版圖提取視圖為輸入,分別從兩者生成網表並進行比較。比較內容包括節點、埠和元件尺寸等。如果一致,則LVS通過,設計者可繼續後續工作。LVS通常將電晶體指(finger)視為加寬電晶體等價。因此,4個並聯的1 μm寬電晶體、一個4指1 μm的電晶體,或一個4 μm寬的電晶體,在LVS工具看來均相同。.lib文件的功能性將從SPICE模型中獲取並作為屬性添加到.lib文件中。 在半導體設計中,標準單元須滿足DRC和LVS合規性。這種合規性顯著提高了設計流程的效率,縮短了設計者的周轉時間。通過確保這些單元滿足關鍵的驗證標準,設計者能夠更順利、更快速地將這些組件集成到更大的晶片設計中。
其它方法
[編輯]「標準單元」屬於更一般的稱為基於單元設計(cell-based design)的設計自動化流程類。結構化ASIC(Structured ASICs)、現場可程式化邏輯閘陣列與複雜可程式化邏輯裝置(CPLD)是基於單元設計的變體。從設計者角度來看,三者具有相同的前端輸入:設計的RTL描述。然而,這三種技術在SPR流程(綜合、放置與布線)和物理實現的細節上有顯著差異。
複雜度度量
[編輯]對於數位標準單元設計(例如在CMOS中),一種常見的與製程無關的複雜度度量是門等效(gate equivalents,GE)。
參考資料
[編輯]- ^ 1.0 1.1 A. Kahng et al.: "VLSI Physical Design: From Graph Partitioning to Timing Closure", Springer (2022), doi:10.1007/978-3-030-96415-3, ISBN 978-3-030-96414-6, pp. 11-13.
- ^ 2.0 2.1 2.2 A. Kahng et al.: "VLSI Physical Design: From Graph Partitioning to Timing Closure", Springer (2022), doi:10.1007/978-3-030-96415-3, ISBN 978-3-030-96414-6, p. 9.
- ^ 3.0 3.1 3.2 D. Jansen et al. "The Electronic Design Automation Handbook", Springer (2003), doi:10.1007/978-0-387-73543-6, ISBN 978-14-020-7502-5, pp. 398-420.
外部連結
[編輯]- VLSI Technology (頁面存檔備份,存於網際網路檔案館)— This site contains support material for a book that Graham Petley is writing, The Art of Standard Cell Library Design
- Oklahoma State University Portuguese Web Archive的存檔,存檔日期2016-05-17— This site contains support material for a complete System on Chip standard cell library that utilizes public-domain and Mentor Graphics/Synopsys/Cadence Design System tools
The standard cell areas in a CBIC are build-up of rows of standard cells, like a wall built-up of bricks
- Virginia Tech (頁面存檔備份,存於網際網路檔案館)— This is a standard cell library developed by the Virginia Technology VLSI for Telecommunications (VTVT)
- ChipX (頁面存檔備份,存於網際網路檔案館) - Interesting overview of Standard Cell as well as metal layer configurable chip options.
- Low Power Standard Cell Design (頁面存檔備份,存於網際網路檔案館)
- Excellent Book on Standard Cell Characterization and Modeling (頁面存檔備份,存於網際網路檔案館)