第2章:仿真环境搭建——Cadence Spectre/ADS仿真器设置与谐波平衡(HB)仿真基础
各位同学,咱们直接进入正题。做LNA的1dB压缩点和线性度仿真,说白了就是两件事:选对工具、设对仿真器。这一章我就带大家把Cadence Spectre和ADS这两个主流仿真器的环境搭起来,再把谐波平衡(HB)仿真的底子打牢。
我个人习惯是:原理图级验证用Spectre,系统级或需要快速迭代时用ADS。但不管用哪个,HB仿真的核心逻辑是一样的。咱们先看HB到底在干什么。
2.1 谐波平衡(HB)仿真到底在算什么?
你想想看,一个LNA输入一个单音信号,输出除了基波,肯定还有二次谐波、三次谐波……这些谐波就是非线性失真的来源。1dB压缩点就是基波增益掉1dB的那个点,而线性度(比如IIP3)跟这些谐波的幅度直接相关。
传统的SPICE瞬态仿真要算到稳态,得跑很多个周期,尤其是高频电路,慢得让人抓狂。HB仿真不一样——它直接在频域把问题解了。
HB的核心思想:把电路分成线性子网络和非线性子网络。线性部分用频域矩阵算,非线性部分用时域算,然后通过迭代让两个子网络的端口电流/电压一致。说白了,就是“频域+时域来回折腾,直到收敛”。
我在项目中遇到过好几次:HB不收敛,结果全是乱码。后来发现,很多时候是谐波次数设少了,或者初始猜测给得太离谱。嗯,这些坑咱们后面都会讲到。
2.2 Cadence Spectre中的HB仿真设置
在Cadence IC617/618里,HB仿真藏在Analog Design Environment (ADE) → Analyses → Choose → hb。点进去之后,你会看到一堆参数。别慌,核心就几个:
| 参数名 | 推荐值(LNA单音测试) | 说明 |
|---|---|---|
| Fundamental Frequency | 你的工作频率(如2.4 GHz) | 基波频率,HB会以此为基础生成所有谐波 |
| Number of Harmonics | 5 ~ 7 | 谐波次数。测1dB压缩点5次够用,测IIP3建议7次 |
| Oversampling Factor | 2 ~ 3 | 时域采样倍数,防止混叠。我一般设3 |
| Sweep Variable | port (或 pwr) | 扫描输入功率,从-30 dBm到+10 dBm |
| Output | 选择输出节点电压或功率 | 记得选dBm格式,方便直接读1dB压缩点 |
我的小技巧:第一次跑HB时,先设Number of Harmonics = 3,快速验证电路是否起振或自激。确认没问题后,再改成5或7跑正式结果。这样能省不少时间。
设置好之后,在ADE里跑hb + pac(谐波平衡+周期交流分析),就能同时得到1dB压缩点和IIP3。我个人习惯把pac的频偏设成1 MHz,这样IIP3的仿真结果比较稳定。
2.3 ADS中的HB仿真设置
ADS的HB仿真更直观一些。从Palette → Simulation-HB → HBSimulation拖出来,双击设置:
- Freq[1]:填基波频率,比如2.4 GHz
- Order[1]:谐波次数,同样建议5~7
- Sweep Plan:选Linear,起始-30 dBm,终止+10 dBm,步进0.5 dBm
ADS有个好处:它自带1dB压缩点测量模板。你可以在Data Display里直接拖P1dB控件,它会自动从仿真数据里把1dB压缩点标出来。省得自己写公式。
注意:ADS的HB仿真默认使用Krylov子空间迭代器。如果你的电路有强非线性(比如功率放大器),这个迭代器可能不收敛。这时候可以改成Direct Solver,虽然慢一点,但稳。LNA一般非线性不强,默认设置就够用。
2.4 HB仿真参数选择的避坑指南
我曾经因为谐波次数设得太低,导致IIP3仿真结果偏大3个dB。后来查了半天才发现,三次谐波的能量被截断了,交调产物算不准。所以:
- 测1dB压缩点:谐波次数≥5
- 测IIP3:谐波次数≥7
- 测IIP2或更高阶交调:谐波次数≥9
另外,Oversampling Factor这个参数容易被忽略。设小了,时域采样点不够,HB迭代时非线性模型会失真;设大了,仿真时间翻倍。我一般取3,平衡速度和精度。
2.5 本章知识体系:HB仿真流程总览
下面这张图把HB仿真的完整流程画出来了。从设置仿真器到提取1dB压缩点,每一步都离不开。
这张图把HB仿真的主干流程串起来了。你从左边或右边开始都行,最终都要汇聚到参数设置这一步。参数设对了,仿真结果才有意义。
2.6 本章小结
这一章我们干了三件事:
- 搞懂了HB仿真到底在算什么——频域迭代解非线性电路
- 学会了Cadence Spectre和ADS的HB仿真器设置
- 知道了谐波次数、过采样因子这些参数怎么选