標準單元

在半導體設計中，標準單元方法（standard-cell methodology）是指一種特定應用積體電路（ANSI）的設計方法。標準單元方法屬於設計抽象的實例：將低級的超大規模積體電路版圖通過邏輯綜合封裝為抽象的邏輯表示（例如NAND）。

一個標準單元是指一系列由電晶體和連線結構組成的具有布爾邏輯功能或者觸發功能的數字單元。

基於單元的方法使得設計者可以專注於數字設計的高級（邏輯功能）方面，而另一個設計者則專注於實現（物理）方面。隨著半導體器件製造的進步，標準單元方法幫助設計師將ASIC從相對簡單的單功能IC（數千門級）擴展到複雜的數百萬門級的片上系統（SoC）設備。

## 構成

標準單元是一組電晶體和互連結構，提供布爾邏輯功能（例如AND、OR、XOR、XNOR、反相器）或存儲功能（觸發器或鎖存器）。最簡單的單元是基本的NAND、NOR、XOR布爾函數的直接表示，儘管通常也使用複雜得多的單元（例如2位加法器或帶多路復用的D輸入觸發器）。單元的布爾邏輯功能稱為其邏輯視圖：組合邏輯的功能行為以真值表或布爾代數方程表示；時序邏輯以狀態轉移表表示。

通常，標準單元的初始設計在電晶體級別進行，以電晶體網表或原理圖（schematic）視圖的形式存在。網表是對電晶體、它們之間連接以及對外埠（引腳）的節點描述。可用多種電腦輔助設計（CAD）或電子設計自動化（EDA）程序通過圖形使用者界面生成該網表。設計者使用諸如SPICE的CAD程序對網表進行電學行為仿真，給出輸入激勵（電壓或電流波形），計算電路的時域（模擬）響應。仿真用於驗證網表是否實現了預期功能，並預測功耗或信號傳播延遲等相關參數。

由於邏輯視圖和網表視圖僅對抽象（代數）仿真有用，而不用於器件製造，因此必須設計標準單元的物理表示，也稱為版圖視圖，這是常見設計實踐中最低級別的設計抽象。從製造角度看，標準單元的VLSI版圖是最重要的視圖，因為它最接近標準單元的實際「製造藍圖」。版圖按基底層（base layers）組織，基底層對應電晶體器件的不同結構；並有互連布線層（interconnect wiring layers）和通孔層（via layers），用於連接電晶體結構的埠。互連布線層通常編號，並具有特定的通孔層表示每一相鄰層之間的特定連接。布局中還可能存在用於設計自動化的非製造層，但許多專門供放置與布線（PNR）CAD程序使用的層通常包含在一個單獨但類似的抽象視圖中。抽象視圖的資訊通常遠少於完整版圖，常以庫交換格式（LEF）文件或等價格式表示。

在創建版圖之後，通常使用額外的CAD工具執行若干常見驗證。進行設計規則檢查（Design rule check，DRC）以驗證設計是否滿足代工廠和其他版圖要求。然後執行寄生提取（parasitic extraction，PEX），從版圖生成具有寄生屬性的PEX-網表。接著通過電路佈局驗證（layout vs schematic，LVS）程序將該網表的節點連接與原理圖網表進行比較，以驗證連通性模型是否等價。

由於PEX網表包含寄生屬性，因此可以對其再次進行仿真以獲得更精確的時序、功耗和噪聲模型。這些模型通常以Synopsys Liberty格式進行表徵（characterized），但也可使用其他Verilog相關格式。

最後，放置與布線（place and route，PNR）工具可用於將所有內容整合，並從更高級別的設計網表與晶片平面自動生成（綜合）VLSI版圖。

此外，還可使用若干其它CAD工具驗證單元視圖和模型的其它方面，並產生支持各種工具使用標準單元的多種其它文件。為支持所有這些標準單元變體而創建的所有文件統稱為標準單元庫（standard-cell library）。

對於典型的布爾函數，存在許多功能等價的電晶體網表。同樣，對於典型網表，也存在許多符合網表性能參數的不同版圖。設計者的挑戰是儘量降低標準單元版圖的製造成本（通常通過最小化電路的晶片面積），同時滿足單元的速度和功耗性能要求。因此，儘管存在輔助的設計工具，積體電路版圖仍然是一項勞動密集型的工作。

## 庫

標準單元庫是低級電子邏輯代數功能（如與、或、非、觸發器、鎖存器和緩衝器等）的集合。這些單元實現為定高、可變寬的全定製單元。該類庫的關鍵特徵是單元具有固定高度，使其能按行放置，從而簡化自動化數字版圖的過程。單元通常為經過優化的全定製版圖，以最小化延遲和面積。

典型的標準單元庫包含兩個主要組成部分：

- 庫資料庫：包含若干視圖，通常包括版圖、原理圖、符號、抽象和其它邏輯或仿真視圖。從這些視圖可捕獲多種格式的資訊，包括Cadence LEF格式和Synopsys Milkyway格式，它們包含關於單元版圖的簡化資訊，足以供自動化放置與布線工具使用。
- 時序抽象：通常為Liberty（EDA）格式，提供每個單元的功能定義、時序、功耗和噪聲資訊。

標準單元庫還可能包含下列附加組件：

- 單元的完整版圖
- 單元的SPICE器件模型
- Verilog模型或VHDL-VITAL模型
- 寄生提取模型
- 設計規則檢查規則集

例如，一個簡單的XOR邏輯門可以由OR、NOT與AND門構成。

## 應用

標準單元通常可以應用在數字電路設計中的綜合和布局布線階段。

嚴格來說，2輸入的NAND或NOR功能足以構成任意布爾函數集合。但在現代ASIC設計中，標準單元方法通常配合較大的單元庫（或多庫）使用。庫通常包含同一邏輯函數的多個實現，面積與速度各不相同。這種多樣性可提升自動綜合、放置與布線（SPR）工具的效率；並間接賦予設計者在實現權衡（面積 vs. 速度 vs. 功耗）上更大的自由。完整的一組標準單元描述通常稱為工藝庫（technology library）。

商業化的電子設計自動化（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）都是驗證流程。在現代深亞微米工藝（0.13 μm及以下）下，可靠的器件製造要求嚴格遵守電晶體間距、金屬層厚度和功率密度等規則。DRC將物理網表與代工廠提供的一組「代工廠設計規則」進行逐條比較，並標記任何觀測到的違例項。

LVS流程確認版圖與對應的原理圖結構相同；這通常是版圖流程的最後一步。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）。

## 外部連結

- 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 — 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