ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

ADS EM仿真避坑:Momentum/FEM选型、网格收敛与S参数可信度

ADS EM仿真避坑:Momentum/FEM选型、网格收敛与S参数可信度 上周半夜一个做射频前端的朋友发来消息他在ADS里跑一个微带滤波器的EM仿真Momentum的自适应网格来回震荡了四十多分钟最后弹出一句内存不足重跑一次S参数曲线又跳得没法看。他问我的第一句话是是不是我的电脑不行。我让他把工程发过来打开一看问题根本不在机器上——他把一段二十毫米的馈线和一个只在二十七GHz才有意义的耦合缝隙放在了同一块子电路里网格频率设成了默认值端口用默认的TML却没有把地平面参考选对。这种跑得动但结果不敢信的情况在是德科技ADS的EM仿真里太常见了。ADS这套工具链本身没问题问题在于它的EM求解器有多种引擎、多种模式每一种都有明确的适用边界边界之外强行用就会得到内存爆掉、网格不收敛、或者更麻烦的——一组看起来很光滑但完全错误的S参数。我打算按实际排查的顺序把ADS里EM仿真的问题分类拆开讲包括Momentum和FEM怎么选、EM Model和EMCoSim两条数据流到底差在哪、仿真发散的一整条排查链路以及版图协同和工艺库接入时的常见坑。1. ADS的EM仿真不是一个工具而是三套底层逻辑1.1 Momentum的平面假设决定了它只能解决一半问题Momentum用的是矩量法MoM核心假设是结构可以拆成一层层的平面金属和介质它把三维问题降成二维边界上的积分方程来解。这个降维带来的好处非常直接未知量少、求解快、对微带线、共面波导、带状线这类平面结构精度极高而且天然适合做参数扫描因为介质层叠和金属图形都是参数化的。但代价也很明显——它假设金属是零厚度或者固定厚度的平面片假设介质是无限延伸的层假设结构在垂直方向没有自由的三维电流。一旦你做的结构里有键合线、倒装焊球、腔体、三维过渡、或者一段立起来的金属墙Momentum要么根本建不出来要么建出来结果是错的。实际项目里最常见的误用就是拿Momentum去仿真一个带金属屏蔽腔的模块。腔体确实可以近似成上面加一层理想导体边界但如果腔体尺寸和波长可比腔内的模式会明显影响S参数平面方法给不出这个模式。这种时候继续调Momentum的网格是没意义的换引擎才是正解。我见过有人在一段带回形腔体的滤波器上耗了整整两天最后结论是Momentum不准其实是选错了工具。另一个容易忽略的点是Momentum有两个档Momentum RF和Momentum Microwave。前者是准静态求解只在电尺寸很小的时候成立好处是快得离谱后者是全波求解能处理辐射和色散。很多人为了提速无脑选RF档结果在频率高到介质里波长已经和结构尺寸接近时结果开始偏离自己却以为是版图问题。判断标准很简单如果结构的最大尺寸超过了介质内波长的十分之一就别用RF档。1.2 FEM和RFPro补的是Momentum的结构盲区FEM有限元把整个三维空间切成立体网格理论上什么形状都能算波导、连接器、封装、天线阵列、腔体谐振。代价是未知量爆炸同样的结构FEM的自由度往往是MoM的几倍到几十倍内存和时间都上去了。所以FEM的定位很清楚——只在平面方法确实覆盖不了的时候用别拿它当万能锤。到ADS较新的版本是德把Momentum和FEM统一到了RFPro这个界面下底层求解器还是那两个但配置流程、端口定义、和原理图的联动方式做了统一。RFPro最大的价值不是多了一个求解器而是把EM分析和电路仿真这件事串成了一条线你在RFPro里选好引擎、建好端口、跑完结果能直接以EM Model的形式挂回原理图或者在Co-sim模式下边跑电路边调EM。顺带提一句RFPro的界面是跑在本地的一个轻量服务上的如果你打开后界面卡住或者白屏通常是本地端口被别的进程占了或者软件环境没起来重启一下ADS会话基本就能恢复跟你的仿真设置没关系。这里给一个我自己的经验判断表选引擎时直接对着看结构特征建议引擎理由纯平面微带/CPW/带状线无三维过渡Momentum Microwave精度和速度都最优电尺寸很小远小于波长的无源网络Momentum RF准静态足够速度极快带键合线、焊球、腔体、连接器FEM需要真三维电流和辐射天线单元加馈电网络一体化FEM或Momentum加辐射边界看馈电是否平面需要大量参数扫描的平面电路Momentum网格可复用扫描效率高封装内多芯片互连FEM三维走线不可避免1.3 选错引擎的代价不是慢是错这个表看着简单但我见过太多人栽在先跑通再说上。用Momentum跑一个本该FEM的结构往往不会报错它会给出一组完整、连续、看着很专业的S参数然后你在上面做匹配设计打样回来一测插损多了半个dB相位全乱。这种错误的隐蔽性远高于仿真崩掉——崩掉你至少知道要改结果错了你可能要到流片或者加工回来才发现代价是几周的时间和实打实的物料成本。判断标准的本质只有一句话你的结构里有没有依赖三维形状才能描述的电磁行为。有就上三维求解器没有就老老实实用平面方法换效率。这句话我建议贴在显示器边上每次建结构之前先问自己一遍。2. EM Model和EMCoSim两条数据流混着用就会出问题2.1 EM Model是快照Co-sim是活链路先把这个概念说清楚因为这是被问得最多的一条。在ADS里你对一个版图跑完EM仿真得到的不只是一堆S参数曲线而是一个叫EM Model的东西——它本质上是一份缓存快照记录了在当前版图几何、当前层叠、当前频率点下的电磁响应。你把它拖进原理图电路仿真器读的是这份快照不会再调用EM求解器。好处是快一次算完可以反复用坏处是它跟版图是松耦合的你把版图里的某段线宽改了这份快照不会自动更新你得手动重新生成。EMCoSimEM-Circuit Co-simulation是另一套逻辑。它让EM求解器和电路仿真器在同一个时间轴上协同工作电路仿真器需要某段无源网络的响应时实时去调用EM引擎算算完接着往下走。这样做的最大好处是参数化联动——你在原理图里对一个用变量控制的线长做扫描每一组变量值对应的版图几何都会重新做一次EM求解结果的物理一致性是有保证的不会出现改了尺寸但EM没跟着变的低级错误。代价也直接慢。一次仿真里如果有几十个扫描点每个点都重新切网格、求解时间可能是EM Model方式的几十倍。所以这两条路不是替代关系是分工关系选错的代价要么是时间要么是可信度。2.2 什么时候必须走Co-sim什么时候Model就够我的判断原则是这样的如果版图是定稿的你只是想知道这个固定结构的S参数然后拿去做系统级联仿真那就用EM Model一次算完反复用最省时间。如果版图参数还在和电路一起迭代比如你在调一个匹配网络的线长同时还要看整个放大器的增益和回波损耗那就用Co-sim让EM跟着电路一起变保证每一组结果都是物理自洽的。如果扫描维度超过两个Co-sim的时间会失控这时候更聪明的做法是先用EM Model在几个关键点取样把数据导出来做插值模型再挂回电路。有个坑值得单独说很多人用Co-sim跑完觉得结果变好了其实是网格在各次求解之间不一致导致的数值抖动不是真的精度提升。Co-sim的可靠性前提是你的网格设置足够稳定尤其是网格频率这个参数必须固定住否则每换一组几何切出来的网格都不一样结果自然没法横向比较你看到的曲线抖动有一半是假的。2.3 联合仿真的配置顺序顺序错了会白跑配置上有严格的依赖顺序跳步会出问题先定层叠Substrate。每一层的介电常数、损耗角正切、厚度、金属的电导率和厚度都要按实际加工参数填别用默认的真空。层叠错了后面全错而且错得很隐蔽。再定端口Ports。端口的类型、参考地、去嵌长度必须在跑之前确认。端口设错网格再细也救不回来。然后定频率规划Frequency Plan。单点还是扫频、线性还是自适应、起止频率这一步直接决定网格频率的选取。最后才是网格和求解精度。这个顺序的道理很简单EM求解的本质是在给定边界条件下解场层叠和端口定义的是边界条件频率决定网格密度网格是最后的离散化。边界条件没定好就去调离散化等于在错误的地基上做精装修。我见过最典型的错误是端口都没摆对就开始反复调网格密度调了一下午其实一开始打包就带病。3. 仿真发散、不收敛从网格往端口逐层剥的排查链3.1 自适应网格为什么越跑越散自适应网格的逻辑是先粗切一刀算一遍看哪里场变化剧烈就在那里加密再算直到相邻两次结果的差异小于你设的阈值delta S。不收敛通常有三种表现每一种对应的根因不一样。第一种迭代到最大次数还没达到阈值每次结果都在小幅震荡。这通常发生在高Q结构上比如窄带滤波器、谐振腔。场的能量在窄带内来回反射局部场强对网格极其敏感网格稍微一动结果就跳。解决办法不是无限加次数而是放宽delta S比如从0.01放到0.02同时把网格频率设在结构工作频段的高端。因为波长随频率缩短网格按最高频率切才能在低频端过采样保证精度反过来按低频切高频端就是欠采样。第二种直接报内存不足。这多半是结构电尺寸太大或者频率设太高导致单元数爆炸。要检查是不是把低频大结构和高频小结构放在了一起——如果是考虑拆分求解或者用不同的频率规划分段算算完在电路里级联。一个结构塞进一个EM块里图省事往往就是内存爆掉的开始。第三种网格加密后结果突然跳变而不是平滑收敛。这往往是有几何缺陷重叠的金属、零宽度的缝隙、贴在金属边缘的端口。加密到某个尺度这些缺陷被看见了结果就崩了。这种问题最隐蔽因为它在你粗网格的时候看起来一切正常。3.2 端口设置里最容易被忽略的几处端口问题在ADS里是静默错误的重灾区因为端口设错往往不报警只是结果不对而你又不知道它不对。几个高频踩点参考地选错。Momentum里微带端口需要一个明确的参考导体如果你在多层板里选到了错误的层端口激励的就是错的模式结果看着像天线其实什么都不是。去嵌de-embedding长度没设或设得不对。端口到结构之间的那段馈线会被算进去如果你本意是只看结构本身的S参数就得把馈线去嵌掉否则你测到的是结构加馈线。相邻端口太近。两个端口之间如果距离小于几个网格单元会发生耦合端口间的隔离度算出来是假的。通常要求端口间距至少几倍介质厚度。差分端口用了单端方式定义。差分结构必须用差分端口或者用单端端口算完做混合模转换直接拿两个单端端口凑共模和差模分不开结果会误导你的匹配设计。3.3 频率规划与求解精度的取舍频段越宽网格要覆盖的波长范围越大单元数越多。如果你的关心频段其实很窄比如只关心2.4到2.5GHz千万别图省事设成直流到10GHz那是在给求解器上刑。正确做法是频率规划只覆盖你真正关心的频段网格频率设在关心频段的最高端。宽带的辐射结构另说那确实需要全频段但也要评估内存是否扛得住。另一个取舍是自适应扫频还是线性扫频。自适应扫频会在S参数变化剧烈的地方自动加点点数省但可能漏掉窄带谐振因为它只是按变化率加点对特别尖锐的峰可能采不到线性扫频点数多但保证采样均匀。窄带结构我建议用密集的线性扫频或者自适应扫频加大最大点数两者结合最稳。3.4 材料与层叠的隐藏错误这一块最容易被当成无关紧要而忽略但它经常是结果对不上的真正原因。几个实际例子损耗角正切填错单位有的参数是tanδ有的参数是损耗因子填反了损耗会差一个量级金属电导率用了理想导体无穷大理想导体在低频没大问题但插损和Q值会偏乐观做滤波器时谐振深度会算不准层叠顺序和实际加工反了尤其是当你的板子是铜箔—介质—铜箔三层时从顶层到底层的顺序一旦反了端口参考和场分布全错忽略了表面粗糙度高频下铜箔粗糙度会让有效电导率下降插损增加这个在低频看不出来到了28GHz以上就很明显。4. 版图协同和工艺库跑通了但结果不对的坑4.1 Layout Look-alike跟实际版图不是一回事ADS原理图里有个版图一致Layout Look-alike的机制它让电路符号带上版图的寄生参数。但要注意Layout Look-alike只是让原理图的连接关系跟版图长得像它本身不做EM求解。真正要拿到版图的电磁响应还是得跑EM。常见的误解是我用了Layout Look-alike所以我的仿真已经考虑了版图效应。不对。Layout Look-alike考虑的是布线拓扑和连接EM考虑的是分布参数。高频下分布参数才是主导所以该跑EM还得跑。另一个坑是版本不同步你在版图里改了一段线但原理图里挂的还是旧的EM Model快照仿真结果反映的是旧版图你还以为改动生效了。养成习惯每次改版图先看EM Model的时间戳必要时重新生成别怕麻烦。4.2 工艺库和PDK器件在EM里的接法用带PDK的工艺做EM仿真最容易出问题的是哪些东西该用PDK的模型哪些该自己建EM。原则是有源器件和复杂的标准单元用PDK给的模型或者S参数无源的互连、传输线、耦合结构自己建EM。因为PDK的模型是针对典型版图做的表征你的实际版图一旦偏离它的表征条件模型就不准了。具体操作上先确认工艺库正确安装tech file和层映射layer map都要对。层映射错了版图里的金属层和EM里的层对不上仿出来的结构根本不是你要的而且往往不报错。然后用工艺自带的Substrate定义而不是自己手填层叠工艺厂给的层叠参数是经过验证的比自己估的靠谱得多。无源器件如果PDK提供了EM Model可以直接用如果没有或者你的用法很特殊就自己建EM。提取时还要注意衬底损耗有损衬底的耦合在几GHz以上会很显著忽略它电感的Q值会算高让你误以为设计有余量。4.3 差分结构和Doherty这类网络的端口处理差分线的EM仿真核心是端口定义。要么用差分端口直接激励要么用两个单端端口算完再做混合模转换。我个人的偏好是直接用差分端口原因是激励模式明确不容易把共模分量混进去。如果你做的是差分对加共模抑制结构那共模和差模都要看就必须算完整的四端口S参数再转换不能只看差模。Doherty放大器是另一个高频场景。它的核心是输出端的阻抗调制网络——载波放大器和峰值放大器之间那个四分之一波长阻抗变换线。这个网络的EM精度直接决定Doherty的效率曲线能不能对上。仿真时要注意offset line的长度对相位极其敏感EM网格要足够密两个支路的端口要统一参考面否则合成的负载阻抗会算错衬底和封装的影响不要忽略因为Doherty对阻抗失配很敏感一点点相位偏差就会让回退效率掉下去。5. 结果可信度自检跑完不算完先过这三关5.1 收敛性、能量平衡、因果性EM仿真跑完之后别急着拿S参数去做设计先做三个自检花不了几分钟但能挡掉大部分坑。第一看自适应收敛曲线。如果delta S最后是平滑下降到一个值说明收敛了如果是一路震荡或者还在下降趋势中被截断说明还没收敛结果不可信。很多人只看最后那个数不看曲线形状这是大忌。第二看能量平衡。无源网络的各端口功率之和应该小于等于1超过1说明数值上多出了能量通常是网格或端口问题允许有一点点数值溢出但明显大于1就不对了。第三看因果性和实部条件。一个物理可实现的无源网络S参数在频域上要满足因果性约束如果群延迟出现负值或者剧烈跳变说明数据是数值噪声不能拿去做时域仿真否则眼图会算得莫名其妙。5.2 跟实测或别的工具对不上怎么定位对不上的时候按这个顺序定位能省很多时间。先确认两边看的是同一个东西你的EM是算结构本身的实测是含连接器和测试线的参考面都不一样直接比肯定不对先用去嵌把两边拉到同一个参考面。再查层叠和材料参数实测的板材参数和你在EM里填的是不是一致尤其是损耗角正切和铜箔粗糙度这两项对插损影响最大。然后查端口端口的参考地和去嵌长度是最容易造成相位偏差的地方。最后才是网格精度如果前面都对上了残差主要来自网格这时候再加密网格才有意义。我的经验是插损对不上的八成是材料参数相位对不上的八成是端口和参考面谐振频率对不上的八成是层叠厚度或介电常数。按这个规律去找基本能命中比漫无目的地乱调要快得多。6. 把EM仿真做工程化的几个个人习惯最后分享几个我这些年养成的习惯都是踩坑换来的。第一个习惯建一个标定结构。每次换工艺、换板材先用一段已知长度的传输线做EM仿真把它和理论值对比误差在可接受范围再开始正式仿真。这一步花十分钟能帮你提前发现层叠填错、端口设错这类低级但致命的问题。第二个习惯网格频率只设一个明确值别用默认的低频。如果你不手动设到关心频段的最高端网格会按低频切高频段精度不够而低频那部分你其实根本不在乎。第三个习惯工程文件分版本保存。EM Model是快照快照和版图一旦不同步就是灾难。我的做法是版图改一次EM Model重新生成一次旧的在文件名里标上日期绝不覆盖出了差异能回滚。第四个习惯先粗算再精算。先用粗网格跑一遍看结果的大致趋势趋势对了再加密网格。别一上来就追求最高精度那样一次崩溃就是几个小时。第五个习惯把Substrate和端口做成模板。同一个项目里往往要仿真很多个结构层叠和端口定义基本一致做成模板复用能避免每次手填带来的不一致。关于仿真时间我的经验是平面结构一次EM仿真几分钟到半小时是正常的三维结构几十分钟到几小时正常如果一个小结构跑了几个小时还没收敛那一定是设置问题不是结构本身难这时候应该停下来查而不是继续等。网格加密只解决离散化误差解决不了建模错误很多人花了一整天调网格结果发现真正的问题在端口定义上——这种情况我见得太多了所以每次我都会先把端口和层叠过一遍再去碰网格。
返回列表