我要提问
ARTICLE DETAIL

资讯详情

前沿编程新知与开发实战干货的深度解读。

ADS螺旋电感与变压器P-cell建模及Momentum验证避坑指南

ADS螺旋电感与变压器P-cell建模及Momentum验证避坑指南 简介这份文档面向射频、微波及高速数字电路设计者尤其是需要在 ADS 中搭建片上电感与变压器模型并生成参数化版图的工程师和研究生重点解决单端、差分、巴伦等结构在版图与仿真之间的快速建模问题。包内为 1 个 PDF 文件压缩包约 3.1MB内容以幻灯片讲义形式组织涵盖螺旋电感的关键设计参数外径、线宽、间距、圈数、工艺参数衬底电阻率、金属层与顶层金属厚度、Ls/Rs/Cs/Cox/Rsi/Csi 各分量影响以及品质因数、自谐振频率和 2-port 转差分 1-port 的计算方法。文档还对比了 Coilsys 快速生成 Pcell 与 AEL 宏脚本自定义两条路线并给出 Momentum 电磁仿真的基本设置与建模建议变压器部分说明了方形、正八边形、对称与非对称、抽头结构及金属层、过孔层可指定等能力同时指出其结构相对固定、无法任意生成初、次级线圈感值的局限。已有 9448 人学习。读者可据此掌握从参数设定、Pcell 生成到电磁验证的完整流程并理解模型精度与结构灵活性之间的取舍。1. 从一个“画得出、仿不准”的电感 P-cell 说起ADS 里搭电感模型最常见的翻车点是从第一步就偏了版图画出来了Momentum 一跑L 和 Q 跟手册差一大截查半天发现是介质层没铺对、导体厚度用了 Sheet。这份文档资料把两条路线拆得比较清楚——Coilsys 快速生成 P-cellAEL 宏手写脚本做任意多层结构再往下接 Momentum 做全波验证变压器侧覆盖单端、差分、巴伦、抽头方形和正八边形、对称与非对称都能调圈数、线宽、间距、内外径还能指定金属层和过孔层。适合正在做 RFIC、MMIC 无源器件需要把电感、变压器从“示意图”变成“可参数化 cell”的人。2. 螺旋电感的几何与工艺D/W/S/N 和六个寄生元件怎么落到 ADS 里2.1 几何参数与工艺栈先定金属层再谈圈数螺旋电感的设计参数就四个外径 D、金属宽度 W、相邻圈间距 S、圈数 N。工艺参数另算基板电阻率、金属选项、顶层金属厚度、用哪层金属做螺旋。这两组参数在 ADS 里不能随便填写因为 library 绑定 technologylayer 定义和单位是固定的P-cell 生成时按这套定义画版图填错层名不会报错只会生成一张空版图或者少一层过孔。我一般先把工艺栈拆成三层来看半导体衬底、介电层、导体。衬底电阻率决定 Rsi 和 Csi 的量级介电层厚度和介电常数决定 Cox导体层则决定 Ls 和 Rs。下面这张表是调参时最常用的对照实际取值要按你手上的工艺文档来不能照抄。参数符号调大后的直接效果需要一起看的副作用外径DL 增大圈数不变时面积变大Q 通常先升后降Cox 增大金属宽度WRs 下降Q 上升Cs、Cox 增大Fsr 下降圈间距S圈间侧向耦合下降同面积下 N 变少L 下降圈数NL 近似按 N² 增长Rs 增长Fsr 明显下降顶层金属厚度tRs 下降趋肤效应影响减弱侧壁电容不可忽略需按厚导体设置螺旋金属层—决定到衬底的距离离衬底越远Cox 越小Q 越高一个反直觉的点W 不是越宽越好。宽度加到一定程度Rs 的收益被 Cox 和 Cs 吃掉Q 曲线在某个频点之后反而往下走。我一般会固定 D 和 N把 W 从工艺最小线宽开始扫三到四档先看 Q 的峰值位置再定。2.2 六元件等效电路Ls、Rs、Cs、Cox、Rsi、Csi 各自管什么文档里给的等效电路是六个元件这六个不是凑数的每一个都能在版图和工艺里找到对应位置元件物理来源主要随什么变仿真里怎么体现Ls低频电感D、N、W、SZ11 虚部在低频段的主项Rs金属电阻加趋肤效应W、厚度、电阻率、频率Z11 实部的低频平台Cs交叉下层与螺旋的重叠电容加圈间侧向电容交叉面积、S、层间介质高频段影响 FsrCox螺旋与衬底之间的电容金属到衬底距离、介电常数与 Rsi 串并联形成衬底网络Rsi衬底损耗衬底电阻率Q 在中频段的第二峰或凹陷Csi衬底电容衬底电阻率、厚度高频段衬底网络的容性通路调模型时如果只盯着 Ls 和 Rs很容易出现“低频对上了、高频全偏”的情况。血泪经验是先把 Cox 和 Rsi 按工艺文档估一个初值再去拟合 Ls否则优化器会把 Ls 拉到一个物理上不合理的值来补偿衬底网络的误差。Cs 更微妙它和版图的交叉方式强相关交叉下层走得越长Cs 越大Fsr 掉得越快。2.3 性能矩阵单端/差分 L、Q、Fsr 与 2-port 到差分 1-portADS 里拿到的是 2 端口 S 参数转成 Z 参数之后才能算电感。文档给的公式很直接单端电感L imag(Z11) / (2πf)单端品质因数Q imag(Z11) / real(Z11)差分阻抗Zdiff Z11 Z22 − Z12 − Z21差分电感和差分 Q 用 Zdiff 按同样方式算Fsr 则是 L 或 Q 曲线穿过零点、或者 Q 由正转负的那个频点单端和差分要分开看不能拿单端的 Fsr 去代表差分工作状态。下面这段后处理我常用来从 Touchstone 读进来的 Z 参数直接出四条曲线端口定义必须和版图 port 一致否则差分公式会算反。import numpy as np def single_ended(freq, z11): # 单端电感取 Z11 虚部freq 单位 Hz L z11.imag / (2 * np.pi * freq) # 单端 Q虚部比实部注意 ADS 的 Z 参数符号约定 Q z11.imag / z11.real return L, Q def differential(freq, z11, z12, z21, z22): # 差分阻抗Zdiff Z11 Z22 - Z12 - Z21 zdiff z11 z22 - z12 - z21 Ldiff zdiff.imag / (2 * np.pi * freq) Qdiff zdiff.imag / zdiff.real return Ldiff, Qdiff # freq、z11 等来自 S 参数转 Z 参数后的复数数组 # 建议按频点逐点算完再找峰值不要在宽带平均后再取极值参数说明freq 是单调递增的频率向量z11、z12、z21、z22 是同一频点下的复数 Z 参数。如果版图是两端口对称结构Z11 和 Z22 应该接近相等差太多先查 port 地回流路径别急着调模型。3. Coilsys 路线从 Technology Setup 到可复用 P-cell3.1 Workspace、Library、Cell、View 的层级关系ADS 的项目组织是四层workspace 是主目录可以放多个 librarylibrary 绑定具体 technologylayer 定义和单位在这一层固定cell 是库里的设计单元view 是同一个 cell 的不同表达比如 schematic、layout、emModel。P-cell 生成的东西最终落在 layout view 里Momentum 仿真则吃 layout 或者 emModel 的视图层级搞混就会出现“P-cell 生成了但 Momentum 找不到基板”的情况。层级作用常见误用Workspace项目主目录容纳多个库把不同工艺的库混在一个 workspace 里Library绑定 technology层定义和单位固定在错误工艺的库里生成 P-cellCell一个设计或测试台cell 名带空格或特殊字符脚本加载失败Viewschematic、layout、emModel 等Momentum 选了 schematic view 当输入我一般给每个工艺单独建一个 libraryP-cell 只在这个库里生成跨工艺复用的时候宁可重新生成也不做 copy层定义对不上是排查起来最费时间的一类问题。3.2 User_Input.ael 的关键字段与大小写Coilsys 第一次用要先改 User_Input.ael这个文件决定 P-cell 用哪层金属、哪层过孔、单位怎么设。文档里特意标了一句“层名大小写敏感”这不是提醒是很多人踩过的坑写成 met1 而工艺里是 MET1脚本不报错生成的版图里螺旋层是空的Momentum 跑出来只有衬底。// User_Input.ael 里我一般先改这几类字段 // 层名大小写敏感写错不报错只会生成空版图 SPIRAL_LAYER MET1 // 螺旋所在金属层 VIA_LAYER VIA1 // 过孔层 UNDERPASS_LAYER MET0 // 交叉下层 UNITS micron // 必须与库 technology 一致参数说明字段名以本机 Coilsys 模板为准不同版本可能略有差异但层名、单位、金属层编号这三类信息一定要和工艺文档逐字核对。改完必须重启 ADS文档里写得很明确——首次使用要重启才能加载必要脚本不重启的话 App Manager 里看不到 Coilsys 入口。这一步没有后悔药改完就重启。3.3 用 Coilsys 生成 P-cell 并在另一个 layout 里复用流程走顺之后其实很快App Manager 里确认 Coilsys 已注册新建一个 cell在 layout 里调用 P-cell弹出参数框填 D、W、S、N、金属层、过孔层生成后就是一个可变参数元件。关键在“复用”这一步P-cell 生成的是带参数的实例在另一个 layout 里调用同一个 P-cell改参数不会影响原来的实例这才是它比直接画多边形值钱的地方。变压器侧也是同一套逻辑。Coilsys 里可以选方形或正八边形、对称或非对称、带抽头或不带抽头单端、差分、巴伦结构都有对应模板圈数、线宽、间距、内外径都能调金属层和过孔层可以指定。局限也在文档里写明了变压器结构比较固定没法生成任意初次级感值的组合。我的做法是先用模板把能覆盖的结构跑一遍把初次级感值比例记下来遇到模板覆盖不到的比例再走第 4 章的 AEL 路线补。4. AEL 宏路线boot.ael 加载与自定义多层结构4.1 AEL 脚本结构与 P-cell 配置Coilsys 覆盖不了的结构就得自己写 AEL。AEL 是 ADS 的宏语言P-cell 本质是一段带参数的版图生成脚本你告诉它螺旋怎么绕、过孔打在哪、交叉层怎么走它按参数算出多边形坐标。写的时候我一般按三步组织先算几何再画层最后注册参数。// 自定义电感 P-cell 的骨架字段按本机模板调整 // 第一步读参数单位统一 D 200.0; W 10.0; S 5.0; N 3.5; // 第二步按金属层和过孔层画螺旋与交叉 // 螺旋走 SPIRAL_LAYER交叉走 UNDERPASS_LAYER // 第三步把 D/W/S/N 注册成可变参数参数说明N 允许半圈3.5 这类值在差分和巴伦结构里很常见W 和 S 要以工艺最小间距规则为下限脚本里不做 DRC 检查画出来违规了仿真照样能跑但流片会出问题。这一点文档没有展开是我自己踩过的坑。4.2 boot.ael 的加载顺序脚本写完不是放那儿就生效得让库在打开时自动加载。做法是在库目录下建 boot.ael把自定义脚本 load 进去。顺序很重要先加载 P-cell 定义脚本再让 Coilsys 或 App Manager 去注册反过来会提示找不到 P-cell。// boot.ael 放在库目录下库被打开时执行 // 先加载 P-cell 脚本再触发注册 load(pcell_inductor.ael)参数说明load 的路径建议用相对库目录的写法绝对路径换台机器就失效。改完 boot.ael 同样要重启 ADS原因和第 3 章一样——脚本是在启动阶段加载的运行中改文件不生效。4.3 两条路线的取舍对比项Coilsys 路线AEL 宏路线上手成本低改 User_Input.ael 即可高要写脚本调坐标结构自由度模板内可调模板外不行任意多层、任意绕法变压器初次级感值结构固定比例受限可自定义但要自己保证几何合法出错表现层名写错生成空版图脚本逻辑错版图可能自交适合场景标准螺旋电感、常规巴伦非标结构、多层堆叠、特殊抽头我的习惯是能用 Coilsys 解决的绝不写脚本脚本只在模板覆盖不到的时候上。写得越多后面维护成本越高尤其是工艺换层的时候AEL 里的层名要逐个改。5. Momentum 仿真emSetup 里的介质层、导体厚度与网格5.1 介质层与导体建模的三条硬约束Momentum 是平面三维电磁求解器它有几条硬约束不满足就会算错或者直接不给算介质层在横向延伸到无穷远同一 Z 坐标上不支持不同材料不支持任意导体跨层。这三条决定了基板怎么叠。比如你想在同一个高度放两种不同介电常数的材料Momentum 会按其中一种处理结果和预期对不上这不是精度问题是建模假设问题。厚导体是另一个点。Momentum 会考虑厚金属的侧壁电流包括垂直和水平方向所以侧壁耦合能仿出来。但前提是你在 emSetup 里把导体厚度设对设成 Sheet 就等于告诉求解器忽略侧壁电流厚铜工艺上这么设Q 会偏高L 会偏低而且偏得很稳定容易让人误以为是模型拟合得好。5.2 三种导体厚度设置怎么选设置考虑的电流适用场景3D Distributed顶面、底面、侧壁电流全考虑默认推荐厚金属螺旋、变压器2D Distributed侧壁只考虑垂直电流特定条件侧壁水平电流可忽略时Sheet不考虑侧壁电流mesh shield GND、slow wave GND、patterned GND 做涡流抑制时文档把 3D Distributed 标成推荐设置我认同但要注意代价网格量上去了仿真时间会明显变长。做参数扫描的时候我会先用 2D Distributed 粗扫定位再用 3D Distributed 精算几个关键点两者差异大的频段要回头查网格。5.3 从版图到 S 参数的实操步骤步骤不复杂但每一步都有容易漏的地方确认 layout 里的 P-cell 实例参数已经定版别在仿真中途改参数emModel 不会自动同步。打开 emSetup选好基板叠层介质层厚度和介电常数按工艺文档填衬底电阻率别用默认值。导体层映射到对应的金属层厚度按实际工艺填设置选 3D Distributed。端口加在版图边缘差分结构要成对加 portport 的地回流路径要短。网格先按默认跑一遍看收敛趋势再把关键区域加密。跑完导出 S 参数用第 2 章的后处理脚本算 L、Q、Fsr单端和差分分开看。第 4 步最容易出问题。端口位置差一点Z11 的实部就会变Q 跟着变看起来像模型不准其实是激励没加对。我一般会在同一版图上换两个端口位置各跑一次两次结果差得大先查端口不查模型。6. 变压器与巴伦结构避坑四个高频翻车点与验证顺序6.1 四个翻车点现象生成的变压器初次级感值比例和设计值对不上。原因Coilsys 的变压器模板结构固定初次级圈数和线宽是联动调整的单独改一侧会被另一侧的约束拉回去。解决先用模板扫出一组可行的比例记下对应的几何参数模板覆盖不到的比例改用 AEL 自定义不要硬调模板参数。现象差分 Q 和单端 Q 差一大截怀疑仿真出错。原因差分阻抗公式里的 Z12、Z21 端口定义反了或者 port 顺序和版图不对称。解决先确认 Z11 和 Z22 接近相等再用 Zdiff Z11 Z22 − Z12 − Z21 重算必要时把 port 对调再跑一次对比。现象Momentum 跑出来只有衬底响应没有螺旋。原因User_Input.ael 里层名大小写和工艺不一致P-cell 生成了空版图。解决逐字核对层名改完重启 ADS 重新生成别在旧实例上改参数。现象厚金属工艺下 Q 偏高L 偏低。原因导体厚度设置用了 Sheet侧壁电流被忽略。解决改成 3D Distributed网格适当加密对比两种设置的结果差异差异超过预期就说明厚度设置必须改。6.2 验证顺序我一般按“先单端、再差分、后巴伦”的顺序验单端结构最简单先确认 Ls 和 Rs 落在合理区间差分看 Zdiff 和端口对称性巴伦结构最后验因为它同时涉及单端和差分两种激励前面两项没对就先别碰。抽头结构单独验一次抽头位置改变会同时影响感值比和 Q不能套用对称结构的结论。验证项看什么不通过先查单端 L、Q低频 L 是否接近手算Q 峰值位置金属层、线宽、端口差分 L、QZ11 与 Z22 是否接近Zdiff 是否合理端口顺序、对称性Fsr单端和差分分别过零点Cs、Cox、网格抽头结构抽头位置变化时的感值比P-cell 参数、交叉层从那以后我每次生成变压器 P-cell都先拿一组已知感值的对称结构跑一遍单端和差分确认 Z11 与 Z22 对得上、Fsr 位置合理再回头调初次级比例和抽头位置。这套顺序走顺了后面换工艺换层名也只是重填字段的事。希望帮到你。本文还有配套的精品资源点击获取
返回列表