3. Virtuoso 仿真环境与噪声分析引擎配置

在 Cadence Virtuoso 中,噪声分析并不是一个孤立的按钮,而是由 ADE 仿真环境、Spectre 引擎的噪声算法、以及输出定义三者共同决定的。很多初学者在 ADE L 中勾选了 noise 分析、点击运行后,却只看到一条曲线,既不知道它代表什么,也不知道积分带宽在哪里设置。本节把这条链路拆开:先讲 ADE L 与 ADE XL 中噪声分析的配置入口,再讲输出噪声与输入参考噪声的定义差异,最后讲频率扫描与积分带宽的设置方法。

一、ADE L 与 ADE XL 中的 noise 分析设置

在 ADE L 中,噪声分析通过 Analyses → Choose 打开分析选择窗口,勾选 noise。此时会出现几个关键字段:Sweep Variable(扫描变量,通常选频率)、Sweep Range(扫描范围)、Sweep Type(扫描类型,如 Logarithmic)、Points Per Decade(每十倍频程点数)、Output Noise(输出噪声节点对)、Input Noise(输入参考源)、以及 Noise Integration 相关的积分上下限设置。

ADE XL 的噪声配置与 ADE L 基本一致,区别在于 ADE XL 面向多测试、多工艺角、多参数的批量仿真。在 ADE XL 中,噪声分析通常作为某个 Test 的一个分析项存在,可以在 Data View 中把不同 Corner、不同参数扫描下的噪声曲线叠加对比。工程上常见的做法是:在 ADE L 中先把噪声分析调通、确认输出定义正确,再把它导入 ADE XL 做 Corner 与 Monte Carlo 批量验证。

需要特别注意的是,Spectre 的噪声分析默认是小信号线性化噪声分析:它在直流工作点处对电路做线性化,然后计算各噪声源(热噪声、闪烁噪声、散粒噪声等)到输出的传递函数,再按功率叠加。因此噪声分析前必须先有一个正确的直流工作点,否则结果没有意义。

二、输出噪声与输入参考噪声的定义

噪声分析窗口中的 Output Noise 需要指定一个输出端口,通常写成 V(out) 或某个节点对。它计算的是该节点上由电路内部所有噪声源贡献的总输出噪声功率谱密度,单位是 V²/Hz 或 V/√Hz。这是“电路在这个节点上实际输出多少噪声”的绝对量。

Input Noise 需要指定一个输入参考源,通常写成 Vin 或某个电压源名。它计算的是:把输出噪声除以该输入源到输出的增益,折算回输入端,得到等效输入参考噪声,单位同样是 V²/Hz 或 V/√Hz。它回答的是“这个电路等效于在输入端叠加了多少噪声”。

两者的关系可以写成:

V_in,noise(f) = V_out,noise(f) / |A_v(f)|

其中 A_v(f) 是输入源到输出节点的电压增益。
若用功率谱密度表示,则:
S_in(f) = S_out(f) / |A_v(f)|²

这个关系决定了输入参考噪声在低频段可能被增益放大或压缩。例如一个增益为 10 的放大器,输出噪声为 100 nV/√Hz,则输入参考噪声约为 10 nV/√Hz。如果增益在某个频段下降,输入参考噪声在该频段会相应上升,这也是为什么输入参考噪声曲线常常在高频段翘起。

选择输入参考源时,必须选一个实际存在的独立电压源或电流源,且它确实是信号的输入端口。如果选错,输入参考噪声会失去物理意义。

三、频率扫描与积分带宽设置

噪声是频率的函数,因此频率扫描设置直接决定曲线的分辨率和覆盖范围。在 ADE 中,Sweep Range 通常设为从 1 Hz 或 10 Hz 到 1 GHz 或更高,具体取决于电路的工作频段。Sweep Type 选 Logarithmic,Points Per Decade 一般取 10~100。点数太少会漏掉窄带噪声峰,点数太多则仿真时间显著增加。

积分带宽设置是噪声分析中最容易被忽略的部分。Spectre 的 noise 分析支持在输出中直接给出积分噪声,需要在分析设置中指定积分下限 f_start 和上限 f_stop。积分噪声的单位是 V² 或 V(RMS),它表示在指定频带内对噪声功率谱密度积分后的总噪声功率或总 RMS 噪声。

V_rms = sqrt( ∫[f_start, f_stop] S_out(f) df )

若 S_out(f) 在带内近似平坦,则:
V_rms ≈ sqrt( S_out × (f_stop - f_start) )

例如,某运放输出噪声在 10 Hz~100 kHz 内近似为 20 nV/√Hz,则积分 RMS 噪声约为 20 nV/√Hz × √(100k - 10) ≈ 20 nV × 316 ≈ 6.3 μV。这个量级可以直接和输出信号摆幅比较,判断噪声是否可接受。

积分带宽的选择必须与实际应用匹配。音频电路常用 20 Hz~20 kHz,传感器前端可能用 0.1 Hz~10 Hz,射频电路则可能只关心某个信道的带宽。如果积分带宽设得比实际系统带宽宽,会高估噪声;设得窄,会低估噪声。

四、配置流程与结果判读

一个完整的噪声分析配置流程如下:先确认电路直流工作点正常,再在 ADE L 中打开 noise 分析,设置频率扫描范围与点数,指定输出节点和输入参考源,设置积分上下限,运行仿真。在 Results 中可以直接绘制输出噪声谱、输入参考噪声谱,以及积分噪声随频率的累积曲线。

判读结果时,重点看三件事:第一,输出噪声谱在低频段是否呈现 1/f 趋势,高频段是否趋于平坦;第二,输入参考噪声是否在增益下降的频段出现翘起;第三,积分噪声是否随积分上限增加而收敛。如果积分噪声曲线在某个频率后不再明显上升,说明该频段之后噪声贡献很小,积分带宽已经足够。

Virtuoso 噪声分析配置链路与输出定义 ADE L Analyses → noise Sweep: freq, Log Output / Input Noise Integration limits ADE XL Test + Corner 多工艺角批量 Monte Carlo 噪声 Data View 叠加对比 Spectre 噪声引擎 DC 工作点线性化 热噪声 / 闪烁噪声 散粒噪声 传递函数 → 输出 功率叠加 输出噪声 S_out(f) V(out) 节点总噪声 单位: V²/Hz 或 V/√Hz 绝对量,与增益无关 输入参考噪声 S_in(f) S_out / |A_v(f)|² 等效到输入源 与增益频响相关 积分带宽与 RMS 噪声 f (Hz, log) 1/f 段 平坦段 f_start f_stop V_rms = √(∫ S_out df) 输出噪声谱 S_out(f) 积分上下限 f_start / f_stop 积分区间(贡献 RMS 噪声)

图中把 ADE L / ADE XL 的配置入口、Spectre 噪声引擎的处理过程、输出噪声与输入参考噪声的定义关系,以及积分带宽与 RMS 噪声的计算方式放在同一条链路上。可以看到,输出噪声是绝对量,输入参考噪声是折算量,两者通过增益联系起来;积分带宽则决定了最终 RMS 噪声的数值。

五、常见配置错误与检查要点

第一类错误是输入参考源选错。如果选了一个与信号路径无关的电源,输入参考噪声会完全失真。检查方法是:确认该源确实是信号输入端口,且其到输出的增益在仿真频段内合理。

第二类错误是积分带宽设置过宽或过窄。过宽会把系统根本不关心的频段噪声计入,导致 RMS 噪声偏大;过窄则低估噪声。检查方法是:把积分上限逐步提高,观察积分噪声曲线是否收敛。

第三类错误是频率扫描点数不足。如果 Points Per Decade 只有 5,可能漏掉窄带噪声峰。建议至少 20 点/十倍频程,对窄带电路可提高到 100。

第四类错误是忽略直流工作点。噪声分析依赖线性化工作点,如果电路偏置错误,噪声结果没有参考价值。运行噪声分析前,先单独跑一次 DC 分析,确认关键节点电压在预期范围内。

噪声分析不会自动检查电路是否处于正常放大状态。如果器件工作在截止区或饱和区边缘,噪声结果可能看起来“正常”,但实际没有物理意义。务必先确认 DC 工作点。