2. Cadence Virtuoso ADE与Spectre仿真环境搭建
在完成原理图绘制之后,真正让电路“动起来”的关键一步,是把 Virtuoso 原理图编辑器、ADE 仿真控制台与 Spectre 仿真引擎三者正确衔接起来。本节围绕这一衔接过程展开:从原理图编辑器中确认设计对象,到 ADE 中配置仿真类型与激励,再到加载工艺模型库、运行 Spectre 并查看波形与结果。理解这条链路,比记住某个菜单的位置更重要。
一、原理图编辑器:确认“仿真对象”
Virtuoso Schematic Editor 是设计的入口。仿真前需要确认三件事:电路是否已通过 Check and Save(无悬空节点、无重复实例名)、顶层单元名是否与后续 ADE 中引用的 cell 一致、以及关键节点是否已用 wire label 命名。对于 ADC/DAC 这类混合信号电路,建议把模拟核心、时钟输入、数字控制分别用不同颜色的 wire 标注,便于在波形窗口中快速定位。
一个常被忽略的细节是:ADE 仿真的是“当前打开的 cellview”,而不是整个库。因此若顶层是 ADC_top,就必须在原理图窗口中打开 ADC_top/schematic,再通过 Launch → ADE L 进入仿真环境。若从子模块启动 ADE,仿真对象就会变成子模块,导致激励与负载全部错位。
二、ADE 仿真器配置:从设计变量到分析类型
ADE L 窗口左侧是设计变量(Design Variables),右侧是输出(Outputs),中间是分析类型(Analyses)。典型配置顺序如下:
- 设置设计变量:把电源电压、偏置电流、采样电容等参数写成变量,例如
vdd=1.2、ibias=10u、cs=1p,而不是在原理图中写死数值。这样后续做参数扫描时无需改图。 - 选择分析类型:ADC/DAC 常用
tran(瞬态,看采样保持与建立过程)、dc(看静态工作点与传输曲线)、ac(看运放环路增益与相位裕度)、noise(看输出噪声谱密度)。 - 设置仿真精度:Spectre 的
errpreset可选conservative、moderate、liberal。对 ADC 的建立精度评估建议用conservative,对大规模数字混合仿真可先用moderate提速。
以 12 位、100 MS/s 的 SAR ADC 为例,一个合理的瞬态设置是:stop=10u、step=10n、errpreset=conservative、maxstep=1n。其中 maxstep 限制最大时间步长,避免 Spectre 在时钟跳变沿附近跨过关键建立区间。
三、模型库加载:让 Spectre 认识器件
原理图中的 MOS、电阻、电容只是符号,Spectre 需要对应的模型文件才能计算。模型库通过 ADE 的 Setup → Model Libraries 加载,通常包含工艺角(TT/FF/SS)、温度与电压条件。加载时要注意三点:
- 路径与 section:模型文件常带
section参数,如tt、ff,需在 Model Libraries 中显式指定,否则 Spectre 可能只读默认段。 - 模型与符号的对应:符号名、模型名、CDF 参数必须一致,否则会报 “model not found”。
- 多库顺序:若同时加载 PDK 模型与自定义子电路模型,注意顺序,后加载的同名模型会覆盖前者。
四、运行 Spectre 与波形查看
点击 Netlist and Run 后,ADE 会先生成网表,再调用 Spectre 求解。若网表生成失败,优先检查原理图是否已 Check and Save、模型库路径是否有效、变量是否全部赋值。仿真完成后,结果自动送入 ViVA(Waveform Viewer)。
在 ViVA 中,常用操作包括:用 Direct Plot 直接绘制节点电压或支路电流、用 Calculator 对波形做差分、积分、FFT 等运算、用 Marker 读取特定时刻的值。对 ADC 而言,最关键的观察量是采样节点电压在时钟沿后的建立误差,以及输出码的跳变时刻。判断建立是否充分,可以看波形在下一个时钟沿前是否已进入目标精度带(例如 1/2 LSB 对应的电压窗口)。
五、常见问题与排查思路
环境搭建阶段最常遇到三类问题。第一类是“网表生成失败”,通常源于原理图未保存、变量未赋值或模型库路径含空格。第二类是“仿真不收敛”,可尝试降低 errpreset 精度、增加 maxstep 限制、或给关键节点加初始条件 ic。第三类是“波形为空”,需检查 Outputs 是否已勾选、分析类型是否与输出量匹配(例如 dc 分析不会产生瞬态波形)。
六、可复用的配置检查清单
| 检查项 | 典型值/操作 | 判断依据 |
|---|---|---|
| 顶层 cellview | ADC_top / schematic | 与 ADE 引用一致 |
| 设计变量 | vdd=1.2, ibias=10u, cs=1p | 变量表中无未赋值项 |
| 分析类型 | tran: stop=10u, step=10n | 覆盖完整采样周期 |
| 精度设置 | errpreset=conservative, maxstep=1n | 建立过程可分辨 |
| 模型库 | PDK path + section=tt | 无 model not found |
| 输出量 | vout, clk, vin | ViVA 中可绘制 |
| 结果判读 | 1/2 LSB = Vref/8192 | 建立误差在窗口内 |
把上述配置保存为 ADE state 后,后续每次仿真只需调用 state、修改少量变量即可运行。这样既保证了仿真条件的一致性,也让“改一个参数、看一次波形”的迭代过程变得可控。环境搭建的价值,正在于让设计者把注意力从“软件怎么用”转移到“电路行为是否符合预期”上。