2. Virtuoso ADE环境搭建
在完成 Virtuoso 启动与库路径准备之后,真正决定仿真能否跑通、结果是否可信的,是 ADE(Analog Design Environment)环境的搭建。本节围绕 ADE L、ADE XL 与 ADE Assembler 三种工作模式的定位差异,讲清仿真器选择、模型库与工艺库加载、PVT 变量设置的具体做法,并给出一个可直接参考的配置示例。
一、先分清 ADE L / XL / Assembler 的职责边界
三者共用同一套仿真引擎与设计数据库,差别在于“管理仿真的方式”。ADE L 是单点仿真环境:一个 state 对应一组设计、一组激励、一组分析,适合调试单个电路、验证某个 corner 下的直流工作点或瞬态波形。ADE XL 在 ADE L 之上引入“多测试(Test)+ 多 corner + 多参数扫描”的批量管理能力,用一张数据视图同时跑几十甚至上百个组合,适合做 PVT 扫描与蒙特卡洛。ADE Assembler 则面向“多测试、多模块、多检查”的验证流程,支持把不同测试、不同 DUT、不同检查项组织成一个可复用的验证计划,并输出 pass/fail 汇总,适合可靠性验证与回归。
选择原则很直接:单点调试用 ADE L;需要批量 corner 与扫描用 ADE XL;需要跨测试、跨模块的验证计划与结果汇总用 Assembler。三者之间可以互相导入 state,因此常见做法是先在 ADE L 调通一个测试,再导入 XL 或 Assembler 扩展成批量验证。
二、仿真器选择:Spectre、APS 与 Spectre X
在 ADE 的 Setup → Simulator/Directory/Host 中指定仿真器。常用选项有三类:spectre 是标准精度引擎,适合小规模电路与最终签核;aps(Accelerated Parallel Simulator)在多核下对大规模后仿网表有明显加速,精度与 spectre 基本一致;spectre X 面向超大规模与高并行场景,适合大模块后仿。选择时先看电路规模与是否带寄生:前仿小电路用 spectre 即可;后仿几万到几十万节点用 aps;更大规模或需要分布式并行时用 spectre X。
同时要设置仿真目录与主机。建议为每个项目单独指定 Simulation Directory,避免不同项目结果互相覆盖;主机可选本地或远程,远程时需保证模型库路径在远端可见。仿真精度相关选项如 reltol、abstol、vntol 默认即可,只有在收敛困难或需要更高精度时才调整,并记录调整原因。
三、模型库与工艺库加载
工艺库通过 Setup → Model Libraries 加载。典型做法是:先加载工艺厂提供的模型文件(如 models/spectre/xxx.scs),再按 section 选择所需工艺角。模型库条目一般写成“文件路径 + section 名”,例如:
# Model Library 示例(示意,非真实工艺)
/home/pdk/xxx/models/spectre/xxx.scs section=tt
/home/pdk/xxx/models/spectre/xxx.scs section=ff
/home/pdk/xxx/models/spectre/xxx.scs section=ss
/home/pdk/xxx/models/spectre/xxx.scs section=fs
/home/pdk/xxx/models/spectre/xxx.scs section=sf
工艺库(Tech Library)则通过 Setup → Technology Library 或库管理器绑定,决定版图与器件参数。注意区分:模型库影响仿真电气行为,工艺库影响版图与器件定义,两者路径不要混用。加载后建议在 ADE 中打开 Model Libraries 面板核对 section 是否与目标 corner 一致,避免“选了 ff 却仍加载 tt”的低级错误。
四、PVT 变量设置方法
PVT 即 Process、Voltage、Temperature。在 ADE 中通常用设计变量(Design Variables)承载 V 与 T,用模型 section 承载 P。具体做法:在 ADE L 的 Variables 面板中定义 vdd、temp 等变量,并在原理图中以变量名引用;温度也可通过 Setup → Temperature 直接设置。进入 ADE XL 后,把这些变量加入 Corners 的扫描维度,即可一次跑完全部组合。
一个可参考的 PVT 组合示例如下(示例参数,实际以项目规格为准):
| 维度 | 取值 | 说明 |
|---|---|---|
| Process | tt / ff / ss / fs / sf | 通过模型 section 切换 |
| Voltage | 1.62 V / 1.80 V / 1.98 V | ±10% 电源波动 |
| Temperature | -40 ℃ / 25 ℃ / 125 ℃ | 工业级温度范围 |
组合总数 = 5 × 3 × 3 = 45 个 corner。在 ADE XL 中把这三维加入 Corners 后,点击 Run 即可批量执行。结果查看时重点关注最差 corner:例如低压 ss 高温下的增益、带宽与相位裕度,以及高压 ff 低温下的功耗与可靠性指标。若某个 corner 不收敛,先回到 ADE L 用相同变量单独复现,确认是模型、初始条件还是收敛设置问题,再决定是否调整 cmin、gmin 或初始节点电压。