1. 课程导入与验证全景

在数字芯片从RTL设计走向量产硅片的整个链条中,门级仿真(Gate-Level Simulation,GLS)是少数几个能够同时暴露"功能正确性"与"物理实现副作用"的验证环节。RTL仿真验证的是设计意图,而门级仿真验证的是经过综合、布局布线、时钟树综合、扫描链插入之后,真正要被流片的那一版网表。两者之间隔着的,正是量产前最危险的一段距离。

一、门级仿真到底在验证什么

门级仿真使用综合后的门级网表(通常为Verilog结构网表)加上标准单元库的仿真模型(.db对应的仿真库,如TSMC 28nm的tcbn28hpcplusbwp30p140等),再叠加SDF(Standard Delay Format)反标文件,把每条单元延迟、每根互连线的延迟、建立/保持时间约束注入仿真。它要回答的问题可以归纳为四类:

  • 功能等价性:综合与优化是否改变了逻辑功能,尤其是被优化掉的冗余逻辑、被重定时(retiming)搬移的寄存器。
  • 时序相关功能:在真实延迟下,异步复位释放、时钟门控、多周期路径、跨时钟域握手是否仍然正确。
  • X态传播:上电未初始化寄存器、未驱动总线、多驱动冲突产生的X,是否会在真实延迟下传播到关键输出。
  • DFT逻辑:扫描链、压缩逻辑、MBIST、边界扫描在功能模式与测试模式下是否都能正常工作。

这四类问题中,只有第一类在RTL阶段能被形式验证或等价性检查覆盖,其余三类几乎只能在门级暴露。这就是门级仿真不可替代的根本原因。

二、量产前验证全景中的位置

把量产前验证看作一条从RTL到GDSII再到硅片的流水线,门级仿真处在"网表已定、时序已签、但尚未流片"的窗口期。它上游承接综合与DFT插入,下游对接形式验证、静态时序分析(STA)和物理验证。它与STA是互补关系:STA证明时序余量,GLS证明时序余量下的功能行为;STA无法覆盖的异步路径、复位路径、X态传播,正是GLS的主战场。

量产前验证全景:门级仿真的定位 RTL 设计 功能验证 / UVM 逻辑综合 DC / 网表生成 DFT 插入 扫描链 / MBIST 布局布线 CTS / 布线 / SDF 流片 Tapeout 门级仿真(GLS)核心验证窗口 网表 + 标准单元仿真库 + SDF 反标 + 测试激励 功能等价 · 时序功能 · X态传播 · DFT逻辑 VCS / Verdi / PrimeTime / Formality 协同 网表+SDF 形式验证 Formality 等价性 静态时序分析 PrimeTime 签核 物理验证 DRC / LVS 低功耗验证 UPF / 电源域 问题反馈修正 设计实现阶段 门级仿真核心 签核验证阶段 问题反馈回路

三、Synopsys 工具链概览

本课程围绕 Synopsys 量产前验证工具链展开,核心工具及其在门级仿真中的角色如下:

工具在门级仿真中的角色关键输入/输出
VCS门级仿真引擎,支持SDF反标、X态传播、混合语言仿真输入:网表、仿真库、SDF、testbench;输出:波形、日志
Verdi波形与原理图调试,支持nWave、nSchema、FSM视图输入:FSDB/VCD;输出:信号追踪、X态溯源
Design Compiler逻辑综合,生成门级网表与约束输入:RTL、.db库、SDC;输出:网表、SDF
PrimeTime静态时序分析,生成签核SDF输入:网表、SPEF、SDC;输出:SDF、时序报告
FormalityRTL与网表等价性检查输入:RTL、网表;输出:等价/不等价点
DFT Compiler / TetraMAX扫描链插入与ATPG,生成测试模式输入:网表;输出:扫描网表、测试向量

典型门级仿真命令如下,展示了VCS加载网表、仿真库与SDF的基本方式:

vcs -full64 -sverilog +v2k \
    -debug_access+all -kdb \
    -timescale=1ns/1ps \
    -y $STD_CELL_LIB/verilog \
    +libext+.v \
    +define+GATE_LEVEL \
    -top tb_top \
    -l compile.log

# 仿真时反标SDF
./simv +sdf_verbose +neg_tchk \
    -sdf max:tb_top.u_dut:./dut.sdf \
    +fsdb+all -l sim.log

其中 +neg_tchk 启用负时序检查,-sdf max:... 指定最大延迟反标,+fsdb+all 生成Verdi可读的FSDB波形。这些参数在后续章节会逐一展开。

四、学习路径与实战目标

本课程按"环境搭建→网表与库→SDF反标→X态调试→DFT模式→低功耗→签核"的主线推进,共30章。学习路径可以概括为三个阶段:

  1. 基础阶段(第1–8章):理解门级仿真定位、搭建VCS+Verdi环境、掌握标准单元仿真库与网表结构、完成第一次SDF反标仿真。
  2. 进阶阶段(第9–20章):深入X态传播机制、异步复位/跨时钟域检查、扫描链与MBIST仿真、UPF低功耗门级仿真、SDF corner选择与负时序检查。
  3. 签核阶段(第21–30章):门级仿真与Formality/PrimeTime的协同、回归策略与覆盖率、量产前签核清单、典型故障案例复盘。
实战目标:完成本课程后,你应当能够独立搭建一套可复用的门级仿真环境,对给定网表与SDF完成功能模式与扫描模式的仿真,定位X态来源,判断时序违例是否影响功能,并输出可用于签核的门级仿真报告。
常见误区:门级仿真不是"再跑一遍RTL仿真"。它的激励往往需要针对网表特性调整(如复位释放时刻、时钟门控使能顺序),直接复用RTL testbench经常得到大量假失败。第3章会专门讨论激励适配问题。

门级仿真的价值不在于"跑通",而在于"跑出问题并解释清楚"。一个干净通过的门级仿真如果没有任何X态检查、没有时序违例分析、没有DFT模式覆盖,它的签核意义是有限的。本课程后续每一章都会围绕"如何让门级仿真真正具备签核说服力"展开。