EDA 中的 DRC 检测 —— 基本概念与基本检测规则
EDA 中的 DRC 检测 —— 基本概念与基本检测规则
EDA(电子设计自动化)中的DRC(设计规则检查)是确保芯片设计符合制造要求的关键步骤。本文将详细介绍DRC检测的基本概念、相关术语以及具体的检测规则,帮助读者更好地理解这一重要环节。
基本概念
EDA 名词解释
- Synthesis:综合,用更好的逻辑组合实现网表功能
- Technology mapping:工艺映射,使用指定的工艺库实现网表功能
- Floorplan:布局规划,放置芯片的宏单元模块,在总体上确定各种功能电路的摆放位置,如IP模块,RAM,I/O引脚等等
- Place:布局,确定每个具体单元的位置,保证满足设计规则约束
- Route:布线,确定单元之间连线的方式
- P&R:布局布线
- STA:static timing analysis,静态时序分析,不实际运行电路,得到电路的时序信息,验证时序是否符合要求,指导其它步骤做出符合要求的结果
- CTS:clock tree synthesis,时钟树综合,在时钟树上插入 buffer
- OPT:optimization,通过微调网表提升整体性能,可以在 EDA 流程的各个阶段使用,包含很多具体算法
- CCD OPT:concurrent clock and data optimization,同时对时钟路径和数据路径进行优化
- Logic design:逻辑设计,将 RTL(寄存器传输级)描述映射到电路门和门在网表级的连接的过程。结果通常是单元或其他基本电路元件和连接的网表
- Physical design:物理设计,决定单元(或者其他电路元件)和它们的连接在集成电路版图中几何布置的过程
- Physical verification:物理验证,检查版图设计的正确性,包括下述的版图验证:
- 遵守所有的技术需求——设计规则检验
- 是否和原始网表一致——版图和原理图一致性检验
- 没有天线效应——天线规则检验
- 遵守所有的电器需求——电气规则检验
- DRC: design rule check,设计规则检验
- DFM:design for manufacture,面向制造设计
- LVS: layout versus schematic,版图和原理图一致性检验
- ERC: electrical rule check,电气规则检验
数字后端名词解释
macro:宏单元,分为 hard macro 和 soft macro。hard macro 包括 memory、PLL 等各种 IP,其逻辑在本身内部已经集成好了,对于 core 是不可见的;而 soft macro 通常是 P&R 之后,包含特定逻辑的部分。Macro 有他自己单独的lef,里面会定义它的形状以及pin的位置等等信息。black box 类似 hard macro,内部的东西完全不清楚,但是可以被改变形状,被分配 pin 和分割出去。
box:Box,即设计区域,也就是在做 design planning 时,确定的 floorplan 的 box。整个 Box 又可以划分为三个区域: Die box,IO box, Core box。整个芯片的核心区域是 Core box,用来放置 std cell 、hard macro 等功能单元,从 core box 向外稍微扩展一些区域就是 IO box,这里没有任何实际的限制。在 IO box 外会放置一些 IO 单元,所有 IO 单元都需要在 Die box(Chip)内,IO 单元在不违反物理规则的情况下,可以放到 core box。
cell
standard cell:standard cell,std cell,标准单元,也是芯片设计的基本逻辑单元。std cell 的时序信息记录在 lib 文件内,物理信息记录在 lef 文件内。std cell 通常是 site 的整数倍高度和宽度。site 是最小的布局单位,在 lef 中定义,SITE的方向通常有 X,Y,R90 三个参数。X 代表可以沿X轴翻转,Y 代表可以沿Y轴翻转,R90 代表可以任意翻转。
track:Track 是指走线轨道,可以约束走线器的走线方向。信号线通常必须走在 track 上。Std Cell的高度通常用 metal2 track pitch 来表示,常用的 std cell 库有 7T /9T /12T,就是以 track 来区分的, 9T 就是说 std cell 的高度范围内可以走九条线。每条 track 之间的间距称为 pitch,第一条 track 偏离起始点的距离是 offset。每层的 track 有两个方向,一个是 pref direction track,一个是 non pref dirction track。np track 走线的 wire 相比其他正常走线的 wire 会更宽,占用更多绕线资源,所以一般不使用 np track wire。
row:row 是 floorplan 横向排列的一个网格,对 std cell 的摆放起约束作用,由 site 组成。一般我们只允许创建整数倍高的 row,而在 Voltage island 中,我们允许创建非整数倍高的 Row,比如默认电压区域用的是 9T 单元,而在 Voltage island 中我们使用了 12T 的 cell,这时候就需要创建非整数倍高度的 row。
physical cells:在后端物理设计中,除了与,非,或等一些常见的标准单元外,还有一些特殊的物理单元( physical cell ),它们通常没有逻辑电路,不存在于 netlist 当中,但是对整个芯片的运行,稳定却起着举足轻重的作用。这些特殊的物理单元包括:
boundary cell,即 endcap cell,拐角单元,主要加在 row 的结尾,memory 或者其他 block 的周围包边。
tap cell,即 welltap cell,是只包含 well contact 的 cell,将衬底接到电源和地网络,避免衬底悬浮。主要防止 CMOS 器件的寄生闩锁效应(latch-up)。一般 tap cell 的作用范围是30~40um, 即每隔 60um 左右放置一个 tap cell,具体的数据要参考工艺商给的 document。welltap cell一般交错摆放,类似棋盘分布。
filler:filler cell 通常是单元库中与逻辑无关的填充物,可以分为 IO filler 和普通的 std cell filler。IO filler 也叫做 pad filler,通常用来填充 IO 单元之间的空隙。standard cell filler,也是为了填充 std cell 之间的空隙。主要是把扩散层连接起来满足 DRC 规则和设计需求,并形成 power rails。这个在 route 之前,之后加都可以。Decap cell,去耦单元,这是一种特殊的 filler cell。当电路中大量单元同时翻转时会导致冲放电瞬间电流增大,使得电路动态供电电压下降或地线电压升高,引起动态电压降,俗称 IR-drop。为了避免 IR-drop 对电路性能的影响,通常在电源和地线之间放置由 MOS 管构成的电容,这种电容被称为去耦电容或者去耦单元,它的作用是在瞬态电流增大,电压下降时向电路补充电流以保持电源和地线之间的电压稳定,防止电源线的电压降和地线电压的升高。Decap cell 是带有 metal 层的,为了不影响工具 routing resource,一般建议是最后 routing 全部结束后再加,加完之后再添加普通的不带 metal 的 filler。
Blockage:blockage 包括 obstruct, area density,macro blockage,routing blockage, fill blockage, trim blockage。
- Obstruct:显示 hard 和 soft blockage。
- Area Density:显示 partial blockage.
- Macro blkg:显示 macro-only blockage
- Routing blkg:显示普通的 routing blockage.
- Fill blkg:显示 metal fill 的blockage
- Trim blockage:显示 trim metal 上的 blockage
方向的表示:方向 旋转角度 图示
N R0
S R180
W R90
E R270
FN MY
FS MX
FW MXR90
FE MYR90
N,S,W,E 就是 North, South, West, East 等缩写,分别等价于 Rotate 0,Rotate 180,Rotate 90,Rotate 270。每个标准单元默认都放置于左下角,也就是 R0 位置,逆时针旋转 90 度就是 R90 位置,依次类推。而 FN,FS,FW,FE 则代表 Flip North,Flip South,Flip West, Flip East,表示反转以后的方向,对应着 Mirror Y(沿Y轴翻转),Mirror X(沿X轴翻转),Mirror XR90,Mirror YR90,这些也都是以 N 方向为基础进行翻转、或者翻转+旋转。
基本检测规则
相比较传统工艺,先进 FinFET 工艺平台对设计规则提出了更复杂更严格的要求,以 7nm 工艺为例,设计规则可以分为以下几类:
- 宽度和长度检查-Width/Length:via 的大小、wire 的线宽等约束;
- 间距检查-Space:via 之间的 space、wire 和 via 之间的 space 、wire 和 wire 之间的 space 等约束;
- 面积检查-Area:wire 的最小面积约束;
- 包含关系检查-Enclosure:via 上下层 wire 大小的约束;
- Mask拆分奇数环检查-ORCS:不同 color 的 via/wire 的 space 约束。
基本概念
net:Net 是一个逻辑概念,存在于 verilog 语言中。net 用于对结构化器件之间的物理连线进行建模,描述器件之间的连线关系。如器件的管脚,模块的端口,与门或门的输入输出等等,都需要用 net 来描述。在 Verilog HDL 中,一共有 11 种类型的 net 信号,分别是:wire、tri、wor、trior、wand、triand、trireg、tri1、tri0、supply0、supply1,其中最常用的就是 wire 型 net,在绝大部分设计中都可以只用 wire 来定义 net 信号。
wire:后端工具里面的 wire 并不是指 verilog 网表里的 wire 线型。它是将 net 物理化的概念,每一条 net 在后端工具里面是由许多小段的 wire 组成,每一小段 wire 我们称之为 wire segment。wire 按照类型可以分为 Regular Wire(信号线),Special Wire(电源线),Patch Wire(补丁线)。Regular Wire 就是我们平常见到的信号连线,连接各个 Signal Pin 的金属线段。每层金属层上的 Regular wire 默认的宽度都是一样的。Special Wire就是电源接地线,平常我们所见到的 power ring,stripes,power rail 等都是 Special Wire。一般用高层金属走线。Patch Wire,我们称之为补丁线。这是先进工艺中的一种走线,用于修复 Min Area,Min Step 等 DRC,不属于任何 net。
via:芯片的连线有不同层的金属互连线相互连接。而Via的作用就是连接这些不同层的金属。一个完整的通孔是由三层组成的,包括两个互连层和一个cut层,cut层可以理解为连接两层互连线的接口。Via 的种类也分好多种,按照功能划分,可以分成 regular via(信号线通孔)和 power via(电源线通孔)。信号线之间的连接用 regular via,通常比较小一点;电源线之间的连接使用 power via,通常会大一点。按照 cut 的形状,可以分为 square(正方形)和 Rectangle(长方形)via。
Pin:Pin,中文名叫做引脚。在一个芯片中,Pin 的种类分为好几种。Instance Pin: 器件上的输入输出引脚,负责信号的传送。IO pin:模块的输入输出端口,也称为 IO port,负责外部信号的传递输送。Physical Pin: Physical Pin 是 IO pin 具体物理化的信息,该引脚用于底层模块与上层模块拼接时的接口,类似一个纽扣一样,定义模块走线的起点和终点。它也是有具体的金属层参数信息,和普通wire一样。Partition Pin: 切分模块的引脚。用于在顶层模块未切分时,定义 physical pin 的位置,这个阶段的 physical pin,我们称之为 partition pin。和 Physical Pin 一样,他具有实际的金属层参数信息。
PRL
Corner
Long side(side edge) & short side(end edge)
CutMetal 的引入
在 7nm 工艺及更先进工艺中,引入了 CutMetal/TrimMetal 层,可以放宽 drc 检测中的 space(eol space)、area 和 enclosure 检测约束。
Benefits of Cut Metal Layer:
2. Helps to maintain the shorter standard cell height (CM1A and CM1B)
4. It helps to reduce the distance (Left and Right) between the two standard cells due to CM2
6. More M1 Routing resources availability
8. The Cut Metal helps for EOL (shrinking the end-to end-spacing) and MAR (Min Area) and Enclosure violations.
参考文献
- A Heuristic Approach to Fix Design Rule Check (DRC) Violations in ASIC Designs @7nm FinFET Technology
By Swati Chavan, Jayesh Prajapati, and Akash Verma (eInfochips – An Arrow Company) - https://blog.csdn.net/Tao_ZT