1. 课程导入与LVS验证全景
在IC设计的物理实现流程中,版图完成后能否与原始设计意图保持一致,是决定流片成败的关键一环。Calibre nmLVS(Layout Versus Schematic)正是承担这一职责的核心工具:它把版图提取出的器件与连接关系,与原理图网表进行逐点比对,判断两者是否在器件类型、参数、连接拓扑上完全等价。理解它在整个设计流程中的位置、输入输出以及典型失败模式,是后续所有实操的基础。
一、LVS在IC设计流程中的位置
一个典型的数字或混合信号设计流程大致为:RTL设计 → 逻辑综合 → 布局布线(P&R)→ 版图完成 → 物理验证 → 签核(Signoff)→ 流片。物理验证通常包含DRC(设计规则检查)、LVS(版图一致性验证)、ERC(电学规则检查)和天线检查等。其中DRC回答“版图能否被制造”,LVS回答“版图是否等于设计”。两者缺一不可:DRC通过但LVS失败,意味着制造出来的芯片在电学上并非设计者想要的那颗芯片。
Calibre nmLVS属于Mentor(现Siemens EDA)Calibre平台,与Calibre nmDRC共享同一套规则文件语法与运行框架。它通常在P&R工具导出GDSII之后运行,是进入最终签核前的强制关卡。对于模拟电路,LVS往往与参数提取(如Calibre xACT)配合;对于数字电路,则常与形式验证、时序签核并行推进。
二、LVS验证的目标与判定标准
LVS的核心目标可以概括为一句话:证明版图提取出的网表与原理图网表在电学上等价。这里的“等价”包含三个层面:
- 器件等价:版图中识别出的每个器件(MOS管、电阻、电容、二极管等)在原理图中都有对应,且类型一致。例如版图中提取出的是NMOS,原理图中不能是PMOS。
- 参数等价:器件的关键参数(MOS的W/L/M、电阻的阻值、电容的容值)在允许误差范围内一致。Calibre nmLVS通常允许通过规则文件设置容差,例如W/L误差在0.5%以内视为匹配。
- 连接等价:器件之间的连接关系(网络拓扑)完全一致。这包括所有端口、电源地、内部节点的连接,不允许出现多余的短路或开路。
判定结果通常有三种:CORRECT(完全匹配)、INCORRECT(存在不匹配)、TRANSIENT(运行异常或未完成)。只有CORRECT才允许进入签核阶段。
三、输入输出文件类型
Calibre nmLVS的运行依赖三类输入:
| 文件类型 | 典型格式 | 作用 |
|---|---|---|
| 版图文件 | GDSII / OASIS | 包含所有几何图形与层次结构,是提取器件的物理来源 |
| 原理图网表 | CDL / SPICE / Verilog | 描述设计者期望的器件与连接关系,作为比对基准 |
| 规则文件 | SVRF / Calibre规则 | 定义器件识别层、提取参数、比对容差、层次处理方式 |
输出方面,最核心的是LVS报告文件(通常命名为*.lvs.rep),其中会列出匹配的器件数量、不匹配的器件清单、网络差异、端口差异等。此外还会生成提取网表(*.ext.sp或*.sp),可用于后续寄生参数提取或仿真。若启用错误数据库,还会生成*.err或RVE可读的数据库文件,便于在版图编辑器中定位错误位置。
四、典型验证流程
一个完整的LVS验证流程通常包含以下步骤:
- 准备规则文件:确认使用的Calibre规则文件与工艺节点匹配,检查其中定义的器件识别层(如
poly、diff、nwell)是否与当前版图一致。 - 导出网表:从原理图工具(如Virtuoso、Custom Compiler)导出CDL或SPICE网表,确保器件命名、端口顺序与规则文件要求一致。
- 运行LVS:通过
calibre -lvs命令或图形界面启动,指定版图、网表、规则文件及输出目录。 - 查看报告:打开
*.lvs.rep,首先确认总体状态是CORRECT还是INCORRECT。若为INCORRECT,定位到具体的不匹配项。 - 调试与修复:根据报告中的器件名、网络名,在版图或原理图中定位差异,修正后重新运行,直至CORRECT。
-hier层次化模式快速定位问题,确认无误后再切换到扁平化模式进行最终签核。层次化模式速度更快,但可能掩盖某些跨层次的连接问题。
五、常见失败模式与初步排查
LVS失败的原因多种多样,但初学者遇到的多数问题集中在以下几类:
- 电源地命名不一致:版图中用
VDD,原理图中用VCC,导致全局网络无法匹配。解决方法是统一命名或在规则文件中设置别名。 - 器件参数提取错误:例如MOS管的W/L因提取层定义偏差而计算错误,导致参数比对失败。需要检查规则文件中
MEASURE语句的层定义。 - 端口顺序或名称不匹配:原理图导出的网表中端口名与版图标签不一致,常见于大小写敏感或特殊字符处理。
- 衬底连接缺失:版图中未明确绘制衬底接触,导致提取出的器件缺少B端连接,而原理图中已连接。
- 层次结构冲突:版图与原理图的层次划分不同,例如版图中将某模块打平,而原理图中保持层次化,导致比对时器件数量不一致。