3、仿真环境搭建:Cadence Spectre/ADS仿真器设置、PDK库加载与工艺角选择

好了,咱们正式开始动手干活。这一章我带你把仿真环境搭起来。别小看这一步,我见过太多人花了两周调电路,最后发现仿真器设置错了,白忙一场。

说白了,仿真环境就是你的“虚拟实验室”。仪器不准,测出来的数据全是废的。咱们今天就把这个实验室校准好。

本章核心目标: 完成 Cadence Spectre 与 ADS 双平台仿真环境配置,正确加载 PDK 库,并理解工艺角选择的工程意义。

3.1 仿真器选择:Spectre 还是 ADS?

我个人习惯,做 LNA 设计时两个工具都会用到。但分工不同:

工具 优势场景 我的用法
Cadence Spectre 晶体管级仿真、工艺角扫描、后仿 主力工具,90% 的仿真在这里完成
ADS (PathWave) 匹配网络优化、EM 仿真、系统级验证 做匹配网络调优和版图前验证

你想想看,Spectre 对 PDK 的支持更原生,跑 Monte Carlo 也快。ADS 强在它的优化引擎和 EM 仿真。我一般先用 Spectre 把核心电路调好,再到 ADS 里精调匹配网络。

小技巧: 两个工具可以协同工作。我在 Spectre 里导出 S 参数,再导入 ADS 做匹配优化。这样既利用了 Spectre 的晶体管精度,又用上了 ADS 的优化能力。

3.2 Cadence Spectre 环境配置

嗯,这里要注意。Spectre 的配置其实就三步,但每一步都有坑。

3.2.1 启动与初始化

我习惯用命令行启动,这样能看到完整的启动日志,方便排查问题。

# 设置 Cadence 环境变量(根据你的安装路径调整)
export CDS_ROOT=/opt/cadence/IC618
export PATH=$CDS_ROOT/tools/bin:$PATH
export CDS_LIC_FILE=5280@license_server

# 启动 Virtuoso
virtuoso &

启动后,在 CIW (Command Interpreter Window) 里检查一下版本信息。我曾经遇到过因为环境变量没设对,导致调用了旧版本的仿真器,结果跑出来的噪声系数差了 0.5 dB。

3.2.2 仿真器设置

在 ADE L/XL 里,需要指定仿真器类型。我建议你直接选 spectre,别用 spectreAPS 除非你跑大电路。

# 在 ADE 的 Setup -> Simulator/Directory/Host 里设置:
Simulator: spectre
Project Directory: ./simulation
避坑指南: 项目目录不要用中文路径!我曾经有个学生,项目名带了中文,结果仿真器死活不认,报了一堆莫名其妙的错。后来改成全英文路径,一次通过。

3.2.3 精度设置

做 LNA 仿真,精度设置很关键。我一般这样配:

参数 推荐值 说明
reltol 1e-3 相对误差,LNA 仿真够用
abstol 1e-6 绝对误差,电流精度
vabstol 1e-6 电压精度
maxstep 1e-12 最大步长,保证收敛
# 在 ADE 的 Setup -> Simulation Options -> Analog 里添加:
options reltol=1e-3 abstol=1e-6 vabstol=1e-6 maxstep=1e-12

3.3 ADS 仿真环境配置

ADS 的配置相对简单,但要注意 PDK 的加载方式跟 Spectre 不同。

3.3.1 启动与库设置

# 启动 ADS
ads &

# 在 Main Window 里:
File -> Open Project -> 选择或新建项目

我个人习惯在 ADS 里单独建一个 LNA 项目,把原理图和仿真数据分开存放。

3.3.2 仿真器设置

ADS 里做 LNA 仿真,主要用 Harmonic Balance (HB) 仿真器。设置如下:

参数 推荐值 说明
Freq 1.0 GHz 中心频率
Order 5 谐波阶数,LNA 一般 3-5 够用
Sweep Plan Log 频率扫描方式
经验之谈: ADS 的 HB 仿真器对非线性分析很准。我调 LNA 的 P1dB 和 IP3 时,基本都在 ADS 里做。Spectre 的 PSS 仿真也能做,但 ADS 的收敛性更好。

3.4 PDK 库加载——最容易出问题的一步

说实话,PDK 加载是我见过最多人卡住的地方。咱们分两个平台说。

3.4.1 Cadence 中加载 PDK

PDK 加载有两种方式:

  1. 直接加载 .cds 文件:适合小工艺
  2. 通过工艺厂商提供的安装脚本:推荐方式
# 以 TSMC 28nm 为例
# 方式一:手动加载
Library Manager -> File -> New -> Library
Name: tsmc28nm
Technology File -> Attach to an existing technology library
选择 tsmc28N_tech

# 方式二:运行安装脚本
cd /path/to/pdk
./install_tsmc28.sh
我曾经踩过的坑: 有一次我加载 PDK 后,发现所有晶体管的模型都显示“undefined”。查了半天,原来是 .cdsinit 文件里没有加载模型库。解决方案是在 CIW 里手动加载:
load("/path/to/pdk/models/spectre/tsmc28nm.scs")

3.4.2 ADS 中加载 PDK

ADS 的 PDK 加载稍微麻烦一点,需要生成 Design Kit。

# 在 ADS 中加载 PDK
Main Window -> DesignKit -> Install Design Kit
选择 PDK 安装包路径
按照向导完成安装

# 验证加载
DesignKit -> List Design Kits
确认 PDK 出现在列表中

3.5 工艺角选择——工程决策的关键

工艺角,说白了就是芯片制造过程中的“公差范围”。你想想看,晶圆厂不可能把每一颗芯片都做得一模一样。

3.5.1 标准工艺角

工艺角 含义 对 LNA 的影响
TT 典型 NMOS + 典型 PMOS 设计基准
FF 快 NMOS + 快 PMOS 增益偏高,功耗偏大
SS 慢 NMOS + 慢 PMOS 增益偏低,噪声可能恶化
FS 快 NMOS + 慢 PMOS 偏置点偏移
SF 慢 NMOS + 快 PMOS 偏置点偏移

3.5.2 我的工艺角选择策略

做 LNA 设计,我一般这样选工艺角:

  1. 初调阶段:只用 TT 角,快速收敛设计
  2. 优化阶段:跑 TT、FF、SS 三个角,确保性能在范围内
  3. 最终验证:跑全部五个角 + 温度扫描(-40°C ~ 125°C)
关键指标检查: 在 FF 角下检查功耗是否超标,在 SS 角下检查噪声系数是否满足指标。这两个角是最容易出问题的。

3.6 知识体系总览

下面这张图,是我自己总结的仿真环境搭建流程。你照着走,基本不会漏掉什么。

仿真环境搭建知识体系 仿真环境搭建全流程 工具选择 Cadence Spectre ADS (PathWave) Spectre 配置 • 仿真器选择 • 精度参数设置 ADS 配置 • HB 仿真器设置 • 频率扫描计划 PDK 库加载 工艺角选择

3.7 常见问题与排查

最后,我把自己这些年遇到过的环境问题整理了一下。你遇到类似情况,可以直接对照排查。

问题现象 可能原因 解决方案
仿真器报“license not found” 环境变量未设置 检查 CDS_LIC_FILE 变量
PDK 器件显示“undefined” 模型库未加载 手动加载 .scs 文件
仿真不收敛 maxstep 太大 减小 maxstep 到 1e-12
ADS 找不到 PDK Design Kit 未安装 重新运行安装向导
我的习惯: 每次新建项目,我都会先跑一个简单的 DC 仿真,确认环境没问题。就像开车前先热车一样,花不了几分钟,但能避免后面的大麻烦。