Calibre DRC/LVS Tips
Calibre DRC/LVS使用完全指南
Mentor Graphics(现Siemens EDA)的Calibre是IC版图验证的行业标准工具。本文将详细介绍Calibre DRC和LVS的完整工作流程,包括rule file结构、常用命令、调试技巧和批量运行方法,帮助版图工程师高效完成版图验证。
Calibre工具概述
Calibre主要包括三个验证模块:DRC(Design Rule Check)检查版图的几何规则,LVS(Layout vs. Schematic)比对版图与原理图的一致性,ERC(Electrical Rule Check)检查电气连接规则。通常的工作流程是先跑DRC clean,再跑LVS clean,最后进行寄生提取(PEX)。
Rule File结构(SVRF - Standard Verification Rule Format)
Calibre使用SVRF格式的rule file,主要包含以下几个部分:
// ============================================
// Calibre DRC Rule File Example (TSMC 180nm)
// ============================================
// 1. 输入层定义(Input Layers)
LAYER MAP 1 DATATYPE 0 1 // GDS layer mapping
LAYER nwell 41
LAYER active 42
LAYER poly 43
LAYER contact 44
LAYER metal1 45
LAYER via1 46
LAYER metal2 47
// 2. 派生层定义(Derived Layers)
nactive = active AND nwell // N-type active in N-well
pactive = active NOT nwell // P-type active outside N-well
gate = poly AND active // Gate region
// 3. DRC检查规则(DRC Checks)
WIDTH metal1 < 0.230 "M1.W"
SPACE metal1 < 0.230 "M1.S"
ENC metal1 contact < 0.060 "CT.EN_M1"
WIDTH poly < 0.180 "PO.W"
SPACE poly < 0.240 "PO.S"
LVS Rule File结构
LVS rule file在DRC的基础上增加了器件识别和netlist比较的规则:
// LVS Rule File片段
// 器件识别(Device Recognition)
LVS RECOGNIZE PMOS GATE poly SOURCE pactive DRAIN pactive BULK nwell
LVS RECOGNIZE NMOS GATE poly SOURCE nactive DRAIN nactive BULK substrate
// 端口定义(Port Assignment)
LVS PORT GATE poly
LVS PORT SOURCE active
LVS PORT DRAIN active
// 网表比较选项(Netlist Comparison Options)
LVS COMPARE CASE YES
LVS COMPARE PORTS YES
LVS FILTER UNUSED OPTION BIDIRECTIONAL
常用Calibre命令和选项
以下是在Calibre rule file中常用的命令和选项:
| 命令 | 功能 | 示例 |
|---|---|---|
| WIDTH | 检查层的最小宽度 | WIDTH metal1 < 0.23 |
| SPACE | 检查同层最小间距 | SPACE metal1 < 0.23 |
| ENC | 检查包围尺寸 | ENC metal1 via1 < 0.06 |
| AREA | 检查最小面积 | AREA metal1 < 0.0529 |
| EXT | 检查不同层间距 | EXT poly active < 0.05 |
| INTERNAL | 检查内部间距 | INTERNAL metal1 < 0.23 |
| DENSITY | 检查层密度 | DENSITY metal1 < 0.30 |
Calibre交互式运行(Calibre Interactive)
Calibre Interactive是GUI界面,通过以下步骤运行DRC/LVS:
- Step 1:在Virtuoso CIW中启动Calibre - Run DRC/LVS/PEX
- Step 2:设置Rule File路径,指向Foundry提供的DRC或LVS rule deck
- Step 3:设置Input文件,包括GDS文件路径或直接从Virtuoso stream out
- Step 4:配置Run Options,如并行线程数、error limit等
- Step 5:点击Run开始验证,结果通过Calibre RVE查看
批量运行模式(Batch Mode)
在CI/CD流程或大规模验证中,通常使用命令行批量运行Calibre:
# DRC batch run
calibre -drc -hier drc_rules.svrf
# LVS batch run
calibre -lvs -hier lvs_rules.svrf
# PEX batch run
calibre -pex -hier pex_rules.svrf
# 指定GDS输入文件
calibre -drc -hier drc_rules.svrf -gds input.gds
# 指定并行线程数
calibre -drc -hier drc_rules.svrf -turbo 8
DRC Debug技巧
当DRC报错时,以下技巧可以帮助快速定位和修复问题:
- 使用RVE(Results Viewing Environment):RVE可以直接在Virtuoso版图窗口中高亮显示DRC violation的位置,点击错误条目即可跳转到对应位置
- 过滤错误类型:使用RVE的filter功能,按规则名称或错误类型过滤,先处理最严重的violation
- 查看marker形状:DRC marker的形状通常指示violation的类型和位置,理解marker含义有助于快速定位问题
- Incremental DRC:只对修改区域进行DRC检查,加快调试速度。在Calibre Interactive中选择"Run on selected cells"选项
- DRC waiver:对于已知且可接受的violation,可以在rule file中添加waiver规则,避免每次检查都报错
LVS Debug技巧
LVS比DRC更难调试,因为LVS错误涉及电路连接关系。以下是常用的LVS调试方法:
- 查看LVS report:Calibre生成的.lvs.report文件详细列出了不匹配的net、device和pin,是debug的主要依据
- Net-by-net比对:在RVE中逐个检查不匹配的net,确认版图和原理图的连接是否一致
- 检查port定义:LVS错误常由missing port或wrong port name引起,确认所有IO端口都正确定义
- 器件数量比对:如果版图和原理图的器件总数不匹配,检查是否有short或open导致器件被合并或拆分
- Short/Open定位:使用RVE的short finder功能定位short circuit,使用net highlight定位open circuit
常见Calibre错误及解决方案
| 错误类型 | 原因 | 解决方案 |
|---|---|---|
| LVS Net Mismatch | 版图和原理图的net连接不一致 | 检查metal连接、via是否缺失 |
| LVS Device Mismatch | 器件参数不匹配 | 检查W/L、multiplier、finger数量 |
| DRC Width | 金属线宽不足 | 加宽金属线或调整routing |
| DRC Space | 金属间距不足 | 增大间距或调整走线路径 |
| ERC Floating | 节点悬空未连接 | 添加连接或tie-high/tie-low |
掌握Calibre DRC/LVS的完整工作流程和调试技巧,是版图工程师的核心技能。建议在日常工作中积累rule file的理解和debug经验,建立团队内部的best practice文档,持续优化验证流程的效率。熟练使用Calibre工具可以将版图验证时间缩短50%以上,显著提升tape-out效率。
#180nm
#Calibre
#DRC
#ERC
#LVS
#Metal Spacing
#TSMC
#Via规则
#Virtuoso
#匹配策略
#寄生参数
#版图设计
#电迁移
#经验分享
#衬底噪声