1. 从“听声辨位”到“顺藤摸瓜”:PXF与PAC的本质区别
刚接触Cadence SpectreRF仿真套件的时候,看到PXF和PAC这两个分析选项,很多朋友可能和我当初一样,有点懵。它们看起来都和小信号分析、频率转换有关,菜单也挨着,到底该用哪个?我刚开始也踩过坑,用错了方法,仿真跑得又慢,结果还不是我想要的。后来折腾明白了,其实可以用一个很生活化的比喻来理解:PAC像是“听声辨位”,而PXF则是“顺藤摸瓜”。
想象一下,你站在一个嘈杂的房间里(这个房间就是你的电路,比如一个混频器),房间里有很多人在同时说话,声音混杂。现在,你特别想听清楚其中一个人(我们叫他“小明”)说的每一句话。PAC的做法是:你走到小明面前,只专注听他一个人的声音,然后记录下他的声音在这个嘈杂房间里传播、反射后,最终到达你耳朵里的效果,包括他的原话(基波)以及因为房间回声产生的各种细微回响(边带)。换句话说,PAC关注的是“一个特定的输入信号(小明说话),最终产生了哪些输出成分”。在电路里,这个“特定的输入信号”通常就是你关心的那个RF小信号,PAC会帮你分析,这个信号经过电路的非线性(主要是周期时变的大信号,比如LO)作用后,在输出端产生了哪些频率分量(比如中频IF、镜像频率等)。所以PAC是“1对N”的分析。
那PXF呢?PXF更像是反过来。假设你还是在这个嘈杂的房间里,但这次你耳朵里听到了一段非常清晰、但你不知道是谁发出的声音(比如一段特定的旋律)。你想知道这段声音到底是谁发出来的,或者是由哪几个人的声音混合、转换后产生的。于是PXF会帮你做这件事:它锁定你听到的这段目标声音(输出边带),然后去分析房间里所有可能的说话者(输入端的各种频率成分),计算每一个说话者的声音是如何转换、贡献到你听到的这段目标声音里的。所以PXF关注的是“一个特定的输出成分,是由哪些输入频率产生的”。它是“N对1”的分析。
这个根本性的区别,直接决定了它们的应用场景。举个例子,在设计一个接收机下变频链路时,如果你想知道一个特定的干扰信号(比如一个1.1GHz的spur)经过混频器后,会泄露到中频(比如100MHz)的哪个边带、有多大影响,这时候用PAC就很合适。你设置好干扰信号的频率,PAC会告诉你它在输出端所有频率上的响应。但如果你更关心的是,最终那个100MHz的中频输出信号,它的功率到底有多少是来自我们想要的1GHz RF信号的正向转换,有多少是来自讨厌的镜像频率(900MHz)的泄露,甚至还有多少是来自其他杂散信号的混入,那么PXF就是你的最佳工具。PXF能一次性给出所有可能输入频率到该特定输出频率的转换增益,让你对系统的“纯净度”有一个全局视图。
实测下来,在计算像转换增益(Conversion Gain)、镜像抑制比(Image Rejection)、边带抑制这些关键指标时,PXF通常比PAC更高效、信息也更全面。因为它直接针对你关心的输出指标,把“贡献者”们都找出来并量化了。而PAC更适合做“点对点”的传递函数扫描。所以,简单记:想知道“一个输入进去变成了啥样”,用PAC;想知道“一个输出到底是咋来的”,用PXF。
2. 基石与舞台:为什么PSS仿真如此关键
在深入玩转PXF和PAC之前,我们必须先好好聊聊它们的“舞台搭建者”——PSS(Periodic Steady-State,周期稳态分析)。可以这么说,没有PSS,PXF和PAC几乎无法正常工作(除了极少数基于DC工作点的简单XF分析)。PSS的任务,就是先帮你把电路在大信号周期性激励(比如LO时钟、振荡器自身振荡)下的稳定状态给算出来。
你可以把电路想象成一个秋千。瞬态仿真就像是从静止开始推秋千,你需要模拟它从静止到规律摆动的整个过程,很耗时。而PSS则聪明得多,它直接问:“这个秋千在有人持续规律推动下,最终的稳定摆动状态是怎样的?”它跳过了启动瞬态,直接计算周期稳态的时域波形和频域成分(各次谐波),效率极高。SpectreRF里实现PSS主要有两种核心算法:Harmonic Balance (HB)和Shooting。
HB(谐波平衡)是在频域里解决问题的“学霸”。它把电路中的信号都表示成一系列正弦谐波的叠加(傅里叶级数),然后直接在频域里求解满足电路方程(KCL/KVL)的谐波系数。它的优势是对于波形比较接近正弦、或者非线性程度不特别极端的系统,速度非常快。但它有个小麻烦:你需要事先告诉它,你打算计算到多少次谐波(max harmonic)。设少了,精度不够;设多了,计算量剧增。这里就引出一个关键概念:Beat Frequency(拍频)。当电路有多个不同频率的大信号输入时(比如一个1GHz LO和一个1.001GHz的RF),PSS会以一个基础的、周期性的节奏来求解,这个节奏就是所有输入频率的最大公约数,也就是拍频。上面那个例子,拍频就是1MHz。问题来了,如果你想用HB精确仿真1.001GHz信号的第5次谐波(5.005GHz),由于基波是1MHz,你需要计算到第5005次谐波!这对HB来说计算量就太大了。
这时候,Shooting(打靶法)就该登场了。Shooting是时域方法的“实战派”。它本质上是一种聪明的瞬态仿真:先猜一个周期内的初始状态,跑一个周期的瞬态,看周期结束时的状态和初始状态是否一致(就像打靶是否命中靶心)。如果不一致,就调整初始猜测,再跑,直到命中为止。Shooting对于处理强非线性、波形陡峭(比如方波、开关信号)的系统特别拿手,比如开关电容滤波器、采样保持电路。因为它直接在时域求解,不需要预先指定谐波数量,对于上面那种频率非常接近(导致拍频极低)的多音信号仿真,往往比HB更高效。
那么,PSS-hb和qpss又是啥?简单说,pss-hb是PSS分析器调用HB算法的一种模式。而qpss(准周期稳态)则是为了处理多个非谐波相关频率(比如1GHz和1.1GHz这种非整数倍关系)的大信号而设计的更高级分析。对于大多数单音或谐波相关的周期信号,用PSS(选择HB或Shooting算法)就够了。我个人的经验是:如果电路波形像正弦波,选HB;如果像方波或者有剧烈开关动作,选Shooting。如果拿不准,就两个都试一下,哪个快用哪个。别忘了HB里还有个oversample(过采样因子)参数,对于非正弦波,把它设为4或8,有时比盲目增加谐波数更有效。
3. 深入PXF:不仅仅是转换增益测量
理解了PSS是搭建非线性周期工作点的舞台,我们再来细看PXF这位“侦探”是如何工作的。PXF的全称是Periodic Transfer Function(周期传递函数),顾名思义,它计算的是在周期性大信号工作点(由PSS建立)上的小信号传递函数。
它的工作流程是两步走:第一步是“列名单”,第二步是“算贡献”。假设我们有一个经典的混频器,LO是1GHz,我们关心的中频输出是1MHz。在PXF设置中,我们指定输出频率为1MHz。PXF首先会智能地列出所有可能产生这个1MHz输出的输入频率“嫌疑犯”名单:比如1MHz(直通),999MHz(1GHz - 1MHz,下边带),1001MHz(1GHz + 1MHz,上边带),1999MHz,2001MHz……也就是LO各次谐波附近的和差频。然后,PXF会逐一计算从每一个“嫌疑犯”输入频率到1MHz输出频率的正向转换增益。最终,你会得到一张表格或曲线,清晰地告诉你,你输出的1MHz信号里,有多少是想要的RF信号转换来的(比如1001MHz),有多少是镜像干扰泄露进来的(999MHz),还有多少是其他杂散混进来的。
PXF提供了几种不同的分析模式,对应不同的侦探“任务”:
specialized analysis = none(默认):这就是最通用的模式,用于测量普通的转换增益、镜像抑制等。这也是我们最常用的模式。specialized analysis = timeaverage:这个模式非常有用,特别是用于分析振荡器或时钟电路。它能测量AM-to-PM(幅度调制到相位调制)和PM-to-AM的转换增益。比如,你想知道电源上的一个微小纹波(幅度扰动)会对VCO的输出相位噪声(相位扰动)产生多大影响,就可以用这个模式。它对于评估电路的电源抑制比(PSRR)对相位噪声的贡献至关重要。specialized analysis = sampled:这个模式比较少用,它测量的是大信号周期中某一个特定时间点(相位)上的瞬时增益。比如在采样开关导通的那一瞬间,电路的增益是多少。这更多用于一些特殊的、需要关注瞬时特性的电路分析。
在实际操作中,运行PXF前必须已经成功运行了PSS分析。PXF会读取PSS计算出的非线性工作点信息(谐波成分或时域波形)。如果你用的是PSS-hb,PXF就基于频域的谐波平衡Jacobian矩阵进行计算;如果你用的是PSS-shooting,PXF则基于时域波形和器件在每个时间点的跨导信息进行计算。两者在理论上结果应该一致,但计算路径不同。
4. 聚焦PAC:精准的“单音”扫描仪
相比之下,PAC(Periodic AC Analysis,周期AC分析)更像一个精准的扫描仪。它的操作逻辑和我们熟悉的DC工作点下的AC分析非常像,只不过它的工作点不是静止的DC点,而是由PSS建立起来的、随时间周期性变化的“轨道”。
PAC分析中,你指定一个输入源和输入频率。然后PAC会在这个单一的输入频率上,施加一个微小的正弦扰动,计算这个扰动经过处于周期时变工作点的线性化电路后,在输出端产生的所有频率分量的响应。结果是一个传递函数矩阵,展示了“这个单一输入频率”到“输出端所有谐波频率”的增益和相位。
所以,PAC非常适合用来:
- 分析一个特定干扰信号的传播路径:比如,想知道电源噪声在某个频率点(比如10MHz)上,是如何调制到RF输出信号的各次谐波边带上的。
- 观察反馈环路的稳定性:虽然不如专门的STB分析直接,但在某些周期时变系统中,可以通过PAC注入信号来观察环路响应。
- 快速查看某个输入对输出的整体影响:当你已经有了一个明确的“嫌疑输入”时,用PAC可以快速看到它的全部“破坏力”分布。
PAC的一个关键设置是maxsideband,它决定了在输出端要计算多少对边带。比如LO是1GHz,你输入一个1MHz的小信号,如果maxsideband设为3,那么PAC会计算输出端在 (1GHz*N ± 1MHz) 的频率点上的响应,其中N从-3到+3。你需要根据电路的非线性强度来合理设置这个值,设得太大会增加不必要的计算量。
5. 实战选择策略:何时用PXF?何时用PAC?
理论说了这么多,到底该怎么选?我结合自己踩过的坑和项目经验,总结了一个简单的决策流程。
场景一:评估接收机/发射机的核心性能指标当你需要评估像转换增益、镜像抑制比、边带抑制比、端口隔离度这类定义明确、关乎系统架构的性能指标时,优先选择PXF。因为PXF直接针对你关心的输出频率(比如中频),给出所有输入频率到它的转换关系,一站式生成你需要的所有数据。用PAC来做这个事会很别扭,你需要手动去扫描多个可能的输入频率,然后从复杂的输出频谱中拼凑出你想要的信息,效率低且容易出错。
场景二:分析已知的、离散的干扰或噪声来源如果你已经通过仿真或经验,知道电路可能存在几个特定的干扰源(比如某个时钟的谐波、电源的开关噪声频率),你想定量分析这些特定频率的干扰对输出信号的影响有多大,会泄露到哪些频点。这时候,PAC是你的好帮手。你可以逐个频率点进行扫描,清晰地看到每个干扰源的“贡献谱”。
场景三:振荡器相位噪声与AM-PM转换分析这是PXF的timeaverage模式大显身手的领域。分析VCO的AM-to-PM噪声转换,即电源噪声、衬底噪声如何转化为相位噪声,必须使用PXF (timeaverage)。PAC无法直接给出AM-to-PM的转换增益。同时,PXF还可以用于确定振荡器仿真中的稳定时间(tstab),这是一个非常实用的功能。
场景四:系统线性度与交调分析(多音信号)对于像IIP3(三阶交调截断点)这类涉及两个或以上输入信号的分析,PXF和PAC都不是首选。它们本质上是线性化的小信号分析(在周期工作点附近线性化),无法直接预测强非线性效应。对于交调分析,你应该使用PSS + Periodic Transfer Function (PXF/PAC) 的“大信号”模式,或者更直接地使用QPSS(准周期稳态)分析来仿真两个靠得很近的RF音,然后观察其互调产物。这是一个高级话题,但记住,经典PXF/PAC是“小信号”分析。
一个简单的记忆口诀:“关心输出从哪来,PXF;关心输入到哪去,PAC;振荡器相位噪声,PXF timeaverage;强非线性交调,去找QPSS。”
最后,在仿真设置上有个小技巧:无论是PXF还是PAC,其精度和速度都极度依赖于前置的PSS分析是否设置正确。PSS的谐波数(maxharmonic)或精度(accuracy default)设置不足,会导致PXF/PAC的结果完全不准确。我一般会先从保守的设置开始(比如accuracy default=conservative),在得到一个可靠结果后,再尝试逐步降低精度或减少谐波数,在保证结果趋势不变的前提下优化仿真速度。仿真器里的tstab(稳定时间)设置也很重要,要确保PSS分析已经跳过了电路的启动瞬态,达到了真正的周期稳态。