2.1dB压缩点仿真:PSS+PAC环境搭建与实操

1dB压缩点,说白了就是LNA线性度的“及格线”。

我刚开始做射频设计那会儿,总觉得这个指标就是走个过场。直到有一次流片回来,测试发现LNA在-10dBm输入时就明显饱和了,跟仿真差了整整5个dB。后来一查,原来是PSS+PAC的设置出了问题。嗯,从那以后我再也不敢小看这个仿真了。

2.1 为什么要用PSS+PAC?

很多人会问:直接用AC仿真看增益不行吗?

不行。AC仿真本质是小信号分析,它假设电路始终工作在线性区。但LNA在大信号下会进入非线性区,增益开始压缩。这时候必须用PSS(周期稳态分析)先把大信号工作点算准,再用PAC(周期AC分析)扫小信号增益。

核心逻辑:PSS建立大信号偏置 → PAC提取小信号增益 → 逐点扫描输入功率 → 找到增益下降1dB的点。

2.2 PSS+PAC仿真流程

我个人习惯把流程拆成三步,每一步都有坑,咱们一个一个说。

  1. 设置PSS分析:确定基频、谐波阶数、精度参数
  2. 设置PAC分析:选择扫频范围、输入端口、输出端口
  3. 参数扫描:将输入功率设为变量,循环跑PSS+PAC

2.3 PSS设置的关键参数

参数 推荐值 说明
Fundamental Frequency LNA工作频率 例如2.4GHz
Number of Harmonics 5~7 太少精度不够,太多仿真慢
Accuracy Defaults moderate 初次用moderate,收敛后再调高
Output harmonics 1 只关心基波增益

我的经验:Number of Harmonics设到7基本够用。有一次我为了省时间只设了3,结果P1dB差了0.8dB。谐波阶数不够,PSS算出来的工作点就不准,后面全白搭。

2.4 PAC设置的关键参数

PAC其实就是在PSS算好的大信号工作点上,叠加一个小信号扫频。你想想看,这跟AC仿真很像,但基础工作点不同。

参数 推荐值 说明
Sweep Type Absolute 扫绝对频率
Sweep Range 0.1×f0 ~ 2×f0 覆盖带宽范围
Input Port port0 信号源端口
Output Port port1 负载端口

注意:PAC的输入功率必须与PSS的输入功率一致。我见过有人PSS设了-30dBm,PAC又单独设了-20dBm,结果算出来的增益完全是错的。这两个功率必须同步。

2.5 参数扫描脚本

手动改功率跑仿真太累了。我习惯用Ocean脚本或者ADE的参数扫描功能。下面是一个简单的Ocean脚本示例:

; P1dB扫描脚本
simulator( 'spectre )
design( "./LNA_netlist.scs" )
resultsDir( "./P1dB_sweep" )

; 定义变量
pin = -30
pout = 0

; 功率扫描循环
while( pin <= 0
  ; 设置PSS
  pss( ?fundamental 2.4G
       ?harmonics 7
       ?accuracy "moderate"
       ?inputPower pin )
  
  ; 设置PAC
  pac( ?sweepType "absolute"
       ?freqRange list( 0.1G 5G )
       ?inputPort "port0"
       ?outputPort "port1" )
  
  ; 提取增益
  gain = dBm( getData("gain") )
  printf("Pin = %f dBm, Gain = %f dB\n" pin gain)
  
  ; 记录数据
  pout = pin + gain
  pin = pin + 1
)

2.6 提取P1dB的两种方法

跑完扫描,怎么找到那个1dB点?我一般用两种方法:

  • 方法一:直接读表——在结果浏览器里找到增益下降1dB对应的输入功率。简单粗暴,但容易看花眼。
  • 方法二:计算法——用小信号增益减去1dB,反推输入功率。更精确,适合批量处理。

举个例子:小信号增益是15dB,那P1dB对应的增益就是14dB。在扫描结果里找到增益=14dB时的输入功率,就是P1dB。

2.7 不同频率下的P1dB

宽带LNA的P1dB会随频率变化。我建议至少扫5个频点:带内低、中、高各一个,带外再补两个。这样才能看出线性度的频率依赖性。

频率 (GHz) 小信号增益 (dB) P1dB (dBm)
2.0 16.2 -12.5
2.4 15.8 -11.8
2.8 15.1 -13.2
3.2 14.3 -14.7
3.6 13.2 -16.5

你看,频率越高,增益和P1dB都在下降。这是宽带LNA的典型特征。如果某个频点P1dB突然掉得很厉害,那就要检查是不是有谐振或者寄生效应了。

2.8 常见问题与避坑

我曾经踩过的坑:

  • PSS不收敛——先检查偏置点,再调高accuracy。别一上来就开conservative,仿真慢到怀疑人生。
  • PAC结果全是噪声——检查端口阻抗是否匹配。有一次我忘了设port的阻抗,结果PAC算出来的增益全是负的。
  • P1dB扫不出来——功率步长太大。我建议步长设0.5dB,至少扫20个点,才能看到平滑的压缩曲线。

2.9 PSS+PAC仿真流程图

下面这张图是我自己总结的流程,每次做P1dB仿真都照着走一遍,基本不会漏步骤。

PSS+PAC仿真流程图 PSS+PAC仿真P1dB流程图 步骤1:设置PSS分析 步骤2:设置PAC分析 步骤3:扫描输入功率 步骤4:提取各功率增益 步骤5:找到增益下降1dB点 提示:建议在5个以上频点重复上述流程,得到P1dB vs 频率曲线

2.10 仿真后的数据检查

跑完仿真别急着收工。我习惯做三件事:

  • 看增益曲线是否平滑——如果有毛刺,可能是PSS没收敛,重跑。
  • 看P1dB是否合理——一般宽带LNA的P1dB在-10到-20dBm之间。如果差太多,检查偏置或者匹配。
  • 看不同频率的趋势——P1dB应该随频率缓慢下降。如果某个频点突然掉下去,那多半是设计有问题。

一个小技巧:把P1dB和增益画在同一张图上,能直观看到线性度和增益的trade-off。我每次做优化都靠这张图来决策——是牺牲一点增益换线性度,还是反过来。

好了,PSS+PAC仿真P1dB的流程就这些。说白了,就是三步:设PSS、设PAC、扫功率。但每一步的细节决定了结果的准确性。我建议你照着上面的流程跑一遍,遇到问题再回来看避坑指南。