
1. 为什么用ADS做PA仿真整体思路与前置准备1.1 做PA仿真绕不开的ADS做射频功率放大器的朋友对ADSAdvanced Design System这个软件应该都不陌生。它是是德科技原Agilent/HP的EEsof分部出品的射频微波设计平台在业内用了很多年从分立器件匹配到MMIC设计、从模块级联到系统级仿真覆盖面很广。如果你要设计功率放大器特别是要做Load Pull、谐波平衡、包络仿真、EM验证这些环节ADS基本上是最顺手的工具之一很多射频工程师从学校到工作都用它。这篇笔记主要记录我用ADS做PA仿真的完整流程重点放在设计思路和实际操作上。内容会涉及如何做稳定性分析、怎么用负载牵引找最优阻抗、谐波平衡仿真怎么设置、匹配网络怎么调、最后怎么把版图导出来做EM联合仿真。适合正在入门射频功放设计、或者已经在做PA但想系统梳理ADS仿真流程的朋友参考。文章里的思路和参数都是以常见实践为基础的具体型号和工艺不同你需要根据自己的器件来调整。我当初刚接触PA仿真时最大的困惑是“每个按钮都知道在哪但不知道该按什么顺序点”。ADS提供了很多模板比如Load Pull模板、HB1Tone模板、PA DesignGuide但模板用起来很死板不搞清楚背后的原理一碰到发散、不收敛、结果不对就完全懵了。所以这篇笔记不光是教你点哪里更会解释每一步为什么要这么做。1.2 仿真流程规划从器件模型到EM联合仿真完整的PA仿真流程可以分为几个阶段。先看整体规划会让你对后面每一步做到什么程度、需要做什么心中有数。第一器件与工艺库准备。不管是用了代工厂的PDK还是供应商提供的Spice模型、大信号模型比如Cree/Wolfspeed的GaN模型、NXP的LDMOS模型你要先在ADS里把模型库挂好。常见的挂载方式是在Design Kit或Library里Add Library。用PDK的话TSMC、IBM、UMC这些常见工艺库里都有现成的晶体管模型和微带线、电阻电容等元件库。很多刚接触的朋友卡在这一步主要是因为路径设置有误切记库路径不要用中文文件夹ADS对中文路径支持不好经常出现Library not found报错。第二原理图搭建。这个阶段是用理想元件或者工艺库元件搭出PA的完整电路晶体管、偏置网络、输入匹配、输出匹配、扼流电感、电源、隔直电容等。初始值不用太准能起振、能通过稳定性分析就行。第三射频仿真验证。包括小信号S参数仿真观察增益、S11、S22、稳定性系数、大信号谐波平衡仿真观察输出功率、增益压缩、PAE、IMD3以及必要的源牵引/负载牵引仿真来确定最优源阻抗和负载阻抗。这是PA设计最核心的迭代环节。第四匹配网络实现。根据负载牵引得到的最优阻抗用微带线、集总元件或者两者的组合实现输入/输出匹配。这个过程会大量用到Smith圆图工具和优化器。实际匹配网络做出来后还要回到谐波平衡仿真里确认加了真实匹配网络之后的性能没有明显恶化。第五版图设计与EM联合仿真。原理图验证通过后生成版图做EM仿真Electromagnetic Simulation电磁仿真用emModel和emCosim把版图的寄生效应带进电路仿真里联合验证。这一步非常关键高频PA在几GHz以上的匹配网络走线之间的耦合、过孔、焊盘的寄生电容都会影响实际性能不做EM仿直接打板十有八九要返工。整个流程是“原理图-仿真优化-版图-EM验证-再优化”的循环不是一蹴而就的。下面我从设计思路和原理层面展开讲再进到具体实操环节。2. 核心原理与关键细节拆解2.1 稳定性分析K因子和稳定圆PA设计里稳定性是第一优先级。一个不稳定的功放轻则自激重则烧管子。ADS里常用 μ 因子和K因子来判断稳定性。公式虽然不复杂但仿真时容易踩坑。K因子的定义是K (1 - |S11|² - |S22|² |Δ|²) / (2 × |S21 × S12|)其中 Δ S11×S22 - S12×S21。理论上K 1 且 |Δ| 1 时放大器是绝对稳定的否则就是条件稳定需要检查稳定圆Stability Circle确保匹配网络选择的阻抗不会落在潜在振荡区域。ADS里有两个最常用的控件StabFact稳定因子和StabCircle稳定圆。一般S参数仿真里加上这两个方程即可。我之前犯过的错误是只看K因子大于1就认为稳定其实那是窄带情况的判断宽带PA必须扫全频段特别是低频段。很多PA在低频段接近DC反而是最容易自激的因为增益高、反馈强。所以做稳定性判定时频率扫描范围一定要从很低开始比如100kHz甚至1kHz不能只扫工作频段。如果发现K因子在某些频段小于1常见补救方法有几种在栅极或基极串一个低值电阻比如5-50Ω加上并联RC网络压低低频增益或者在漏极加反馈网络或者用有损网络来平衡增益和稳定。但这些措施会带来噪声系数恶化和增益下降需要权衡。稳定性网络最好加在输入侧对输出功率和效率的影响相对小一些。2.2 负载牵引为什么PA不能直接用共轭匹配小信号放大器追求最大增益会用共轭匹配但功率放大器追求的是特定条件下给定频率、给定输入功率的最大输出功率或最大效率而功率管在接近饱和时的输出阻抗与小信号S22完全不同共轭匹配根本不适用。这就是为什么要做负载牵引Load Pull和源牵引Source Pull。负载牵引的原理是在晶体管输出端扫描不同的负载阻抗测得对应的输出功率、增益、效率画出一圈一圈的等功率圆和等效率圆找到最优负载阻抗。ADS的Load Pull模板是现成的一个比较典型的控件配置如图所示这里描述一下不贴图负载由V_Load端口连接一个等效阻抗扫描网络通过参数扫描遍历Smith圆图上的点然后显示结果。实操中要注意几个点扫描点的分布要控制在合理范围内。ADS模板里用LoadPull模板会画一个圆心和半径在圆内生成扫描点。扫描点太多会拖慢仿真太少则不够细找不准峰值。一般先用稀疏网格比如9×9或11×11粗扫锁定最优区域后再在局部加密扫描。输入功率Pin的选择要根据你的设计目标来。如果做饱和功率就按压缩到增益比线性增益低3dB左右的输入功率来牵引如果做线性PA那要在回退点牵引。源牵引和负载牵引要交替做几轮。严格来说负载牵引要看输入驻波源牵引要看输出效率二者相互影响。通常的做法是先用50Ω源阻抗做负载牵引找到最优负载再固定该负载做源牵引找到最优源阻抗再固定源阻抗重新做负载牵引。这样迭代两三轮基本上收敛。2.3 谐波平衡仿真的设置逻辑PA是强非线性器件大信号工作时会产生大量谐波和交调分量S参数仿真完全无法描述这种情况。ADS里做非线性仿真核心是**谐波平衡Harmonic BalanceHB**算法。谐波平衡的思路是把电路分成线性子网络和非线性子网络线性部分用频域分析非线性部分用时域分析然后通过谐波平衡把两边匹配起来迭代求解。你不用完全掌握数学细节但要理解几个关键设置Order谐波阶数默认5阶通常够用。做Doherty或E类PA时谐波讲究较多比如Class-E靠谐波 shaping至少取7阶以上否则波形不准。但阶数越高仿真越慢内存占用越大。Freq和Pin设置HB模板里通常让你填基波频率、功率扫描范围和步进。注意功率扫描范围要比实际需求更大一些至少多扫4-6dB这样可以看到压缩后的形态方便找P1dB。状态变量与初始值非线性模型对初始值很敏感特别是GaN器件。如果仿真发散了有时候设置一个合理的电压初值比如Vds28VVgs偏置电压会让收敛容易很多。ADS里可以通过设置NodeSet或OscTest来辅助收敛。HarmonicBalance控制器里的MaxIterations默认是25如果发散可以调到50甚至100。但也不要无脑往上调如果迭代到50次以上还不收敛多半是电路本身就不对先检查偏置点。3. 实操过程从原理图到EM联合仿真3.1 搭建原理图偏置、匹配、电源从零搭建原理图时建议按模块推进。我一般按这个顺序摆元件晶体管在中间输入匹配在左边输出匹配在右边偏置网络从上侧接入用直流馈电扼流电感或四分之一波长线和旁路电容构成。先摆器件模型。以GaN HEMT为例ADS里可以直接从DesignKit里拖一个晶体管符号也可以自己建一个基于厂商Spice模型的子电路。器件模型摆进去后先设置静态工作点漏极电压Vds、栅极电压Vgs或对应的静态漏电流Idq。偏置电路设计有一些经验扼流电感RFC的电感值要足够大让它在工作频段呈高阻。一般要求感抗大于负载阻抗的十倍以上。比如2.4GHz负载阻抗20Ω那感抗要200Ω以上对应电感L 200/(2π×2.4GHz) ≈ 13nH。实际常用几十nH到几百nH但要注意自谐振频率要远高于工作频段。旁路电容需要并联多个不同容值的电容用来覆盖不同频段的退耦。比如100pF、10pF、1pF并联分别对应低中高频的射频接地。大电容用钽电容或者陶瓷电容小电容靠近管子放置。也可以用四分之一波长微带线加扇形Radial stub来代替RFC这样在高频段比如X波段以上效果更好。3.2 功率扫描与性能指标提取原理图搭好之后放一个HB1Tone控制器设置频率为2.4GHz功率扫描从0dBm到30dBm步进1dB谐波阶数5。再放几个测量方程比如Pout_dBm dBm(Vout) # 输出功率 Gain_dB Pout_dBm - Pin_dBm # 增益 PAE (Pout_W - Pin_W) / Pdc_W * 100 # 功率附加效率ADS的Data Display里有一些现成的测量模板比如Pout、Gain、PAE、P1dB你直接拖进数据显示区就能用。但如果是自己做方程要注意单位转换ADI的功率单位默认是W瓦dBm要手动换算。仿真结束后在数据显示窗口画三条曲线Pout vs Pin、Gain vs Pin、PAE vs Pin。这一步看几个关键指标小信号增益多少P1dB压缩点在哪个功率位置最大PAE对应的输出功率点在目标输出功率处的增益和PAE以及是否进入饱和区太深。如果功率上不去或者增益不够别急着调匹配先用Load Pull看负载阻抗方向对不对。因为很多时候输出功率低不是匹配的问题而是晶体管负载阻抗远不在最优区域。3.3 阻抗匹配与Goal优化通过负载牵引拿到最优负载阻抗和最优源阻抗之后下一步就是把它们转换成实际匹配网络。ADS里常用的方法有这么几种用集总元件L/C搭L型、T型、π型匹配特别适合1GHz以下用微带线MLIN、MSTEP、MTEE做分布式匹配适合1GHz以上用共轭匹配S参数控件快速验证但这只是初值。实操中我习惯先找一个离目标阻抗最近的拓扑。比如目标负载阻抗需要把20Ω匹配到50Ω那我可能直接拖一个L型网络串感并容或者并容串感。选择哪种结构要看偏置馈电方式如果直流要从漏极进入匹配网络那么串联电感最好用微带线实现方便同时当成馈电线。ADS的Smith Chart Utility工具非常实用。你可以输入源阻抗和目标阻抗它会自动给出L型或π型匹配的元件初值。这个初值再放到原理图里微调。但Smith Chart工具给出的元件值往往是理想值比如1.37nH、3.2pF这种不值在现实里未必买得到或者工艺能实现。所以还需要用Design变量优化来把元件值落到可实现的范围内比如标准容值序列E24或者工艺规则下的最小线宽限制。优化是ADS的核心功能之一。在原理图里把元件的值设为变量比如L1、C1再加一个Goal控件和一个优化器。Goal设置时要注意Goal里要指定目标表达式比如dB(S(2,1))目标值设为你要的增益权重设为1如果同时要控制S11和S22也要加上目标和权重。优化器种类有Random、Gradient、Minimax等。我一般先用Random全局搜索再用Gradient精调这样不容易陷入局部最优。优化前在变量属性里定义取值范围。比如L1 5 nH范围1 nH ~ 15 nH。范围给得太小可能跳不到最优解给得太大优化时间长、还可能跑到不合理值上去。优化不是万能的。如果优化半天还是不达标大概率是拓扑选得不对。比如L型匹配的Q值固定带宽和匹配范围有限需要换T型或π型。经验法则是如果S11要小于-20dB且带宽要求超过20%单个L型很难实现考虑T型或者多节结构。3.4 emModel与emCosim联合仿真原理图验证完性能之后就要考虑版图了。ADS里的联合仿真流程主要有两个概念emModel和emCosim。emModel是把某个平面电路结构比如一个微带匹配网络生成EM模型用Momentum或FEM求解器仿真过的然后作为一个子电路放回原理图里参与电路仿真。这样原来原理图中的理想微带线就被真实的、带寄生效应的EM模型替代。emCosimElectromagnetic Co-Simulation则是在版图Layout环境下把整个版图或者部分版图做了EM仿真后再和外围有源器件模型一起做协同仿真。它的价值在于你不是对一个孤立的匹配网络做EM仿真而是对完整的版图互连结构包括转角、T型结、过孔、接地做电磁提取然后和晶体管模型放一起跑谐波平衡得到更接近流片/制板结果的数据。具体操作流程是这样的在原理图里选中你要做EM仿真的子网结构通常是整个匹配网络、偏置网络或整个无源部分右键选择Generate/Update Layout。版图编辑器里把各层的叠层信息substrate stackup设置好包括介质厚度、介电常数、铜箔厚度、损耗角正切。选择Momentum平面分层介质适合微带/带状线或者FEM适合结构复杂的3D结构比如过孔密集、不规则互连。设置端口Pin/Port。这一步很关键端口的位置和类型Internal Port还是External Port会影响仿真结果。端口间距太近会导致端口间耦合误差要稍微拉开一点。port的参考地也要明确。跑EM仿真完成后在原理图里插入emModel并替换原来的无源结构模块再跑电路仿真对比结果。做EM仿真的朋友经常问我“为什么EM仿真后的S22和原理图差那么多”原因是原理图里的理想微带线模型只考虑了传输线的阻抗和长度而EM仿真把转角的不连续性、T型结的分支效应、金属损耗、衬底耦合全都算进去了。这些都是真实存在的寄生效应尤其在5GHz以上差别会非常明显。如果在EM联合仿真后发现输出功率掉了不少或者匹配点偏了不要慌这是非常正常的。这时候回到版图观察微带线是否需要修剪过孔是否需要调整位置然后重新仿真。这个过程可能要循环好几次。4. 常见问题与排查技巧实录4.1 仿真发散的处理思路ADS的HB仿真发散是初学者最常遇到的头号问题。现象五花八门仿真直接报错结果显示成一堆NaN或者跳出“Simulation failed to converge”。应对发散问题我一般按下面这个顺序排查第一检查模型是否正常。有些PDK模型对电压范围特别敏感比如GaN模型在栅压超过某个阈值后会报错先确认静态工作点是否在模型允许范围内。第二增加HB控制器的迭代次数。默认MaxIterations25可以调到100。同时把Tolerance适当放宽比如默认1e-6可以暂时改成1e-4先看能不能跑通。跑通了再把精度调回去。第三调整扫参模式。如果用功率扫描发散尝试用Power sweep里的“Start from previous solution”或者选上“Reuse solution from previous point as initial guess”。ADS里这个功能叫NodeSet或Solver选项。连续扫参时前一个收敛点作为后一个点的初值发散概率会低很多。第四给节点指定初值。在原理图里添加NodeSet控件给你认为关键的直流节点比如Vds设一个电压初值。这个初值偏离最终解太远也没关系但能避免仿真从零状态开始盲目迭代。值得一提的是发散不一定是仿真设置的锅很有可能是电路本身有问题。比如栅极电阻为0导致Q值过高、偏置馈电网络在某个频率形成负阻等这种情况调再多次迭代也白搭。所以先“模拟-理论-模拟”循环检查电路再动仿真参数。4.2 稳定性误判与补救很多同学在ADS里做PA仿真一看StabFact全频段大于1就放心了。但实际打板之后还是自激。为什么因为仿真时的稳定性判定可能没做全。一个容易被忽略的问题是稳定性分析必须考虑不同输入功率下的状态。小信号稳定不代表大信号稳定。在大信号激励下器件的等效参数发生变化某些偏置状态下可能激发负阻。这一点在Behavioral模型和器件模型之间差异很大。所以推荐在大信号HB仿真中也检查一下基波和次谐波处的阻抗特性或者直接做小信号稳定性扫描把大信号偏置点固化后跑S参数。如果发现不稳定频段常见的补救手段栅极串联一个低阻值电阻如5-20Ω会牺牲一点增益但压制低频自激效果立竿见影。栅极到地接一个RC串联网络R在几十Ω、C在几十到几百pF量级专门吸收低频振荡。用并联负反馈网络增加稳定裕度适合宽带PA。在输出端加隔离器这个属于工程措施不在芯片设计阶段常用。4.3 指标不达标时的排查顺序假如仿真跑完了结果发现输出功率比指标差3dBPAE也远低于预期这时候怎么排查建议的顺序先看负载阻抗对没对。负载牵引扫过没有最优负载阻抗是多少现在的输出匹配网络反射到漏极端口的阻抗是多少如果不在最优负载附近那就先调匹配网络。用ListPNA或者Data Display里直接看Zin或GammaL。再看输入匹配。源阻抗对输入驻波和增益影响很大。如果源匹配没有做好可能输入功率反射严重实际进入管子的功率远小于设置值。然后看偏置点。静态电流Idq调得对不对对于Class A需要大约最大电流的一半对于Class AB大约10%-20%左右。如果偏置点不对增益和线性度都会掉。最后检查谐波谐波负载。特别是做宽频或者高效率PA二次谐波和三次谐波终端阻抗非常重要。E类和F类PA对谐波阻抗有明确要求需要单独传输线来控制谐波。如果忘了控制谐波效率会明显偏低。这里插一个关于器件选型的建议仿真时如果各种措施都试了还是达不到指标先回头看看晶体管本身的潜力。在数据手册里查一下该器件在目标频率下的最大输出功率、最大PAE如果仿真结果已经逼近手册值那就接受现实——要么换器件要么降低指标预期。4.4 环境配置与版本相关的坑ADS的安装和库配置虽然不算难但确实有几个坑值得单独提。安装路径、工程路径、库路径都别用中文或空格否则容易出莫名其妙的问题。我记得在某个版本的Linux版ADS里工程文件夹放在带空格的路径下直接在Momentum仿真时崩溃换成纯英文路径才正常。工艺库PDK挂载要注意版本兼容性。ADS的版本差异比较大有些PDK只适配特定的大版本。如果挂载时报错先看PDK的文档确认支持哪个版本的ADS。可以用DesignKits菜单里的Check功能来验证库是否加载成功。还有一个常见问题是license相关的报错比如“Unable to check out a license for feature...”。如果不是license没启动可以考虑在ADS里设置好环境变量Windows下是LM_LICENSE_FILE或AGILE_LICENSE_FILE确保客户端能正确指向license服务器。写在最后的实际操作体会做PA仿真这些年我最深的感受是仿真工具再强大也只是设计闭环中的一环模型精度、设置合理性、对电路原理的理解最终决定仿真结果能有多少可信度。ADS里的模板和向导给了很多便利但能不用就不要盲目依赖——比如把Load Pull模板里的扫描范围直接套到别的频段结果搜索圆没覆盖最优负载区找出来的“最优阻抗”其实是个局部最优这种坑我踩过不止一次。再分享一个提高效率的小技巧每次跑大点的仿真前先在低精度设置下跑通流程再逐步提升精度。比如HB先设3阶谐波、粗扫功率步进2-3dB确认没有发散和明显的参数异常后再改成5阶、步进0.5dB做精细扫描。这样调试阶段几秒出一轮结果效率会明显高很多。Momentum EM仿真也一样先用粗网格、低频率点快速验证趋势最后才用细网格出精确结果节省的时间非常可观。最后提一句如果项目对成本和时间敏感建议在有条件的情况下把EM联合仿真的结果和流片/制板后的实测做一次全面对比。记录下仿真和实测之间每个指标的偏差量级形成自己的“校正系数”。这个活儿一开始比较花时间但积累两三次之后你对ADS仿真结果的信心会大增后续设计的迭代周期也能缩短不少。希望这篇笔记能帮你在PA仿真的路上少踩几个坑。