标准单元

在半导体设计中，**标准单元方法**（**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）的设计自动化流程类。（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