资讯动态

射频MEMS开关计算机辅助设计:机电耦合、版图工艺与降阶模型

发布时间:2026/9/17 23:41:36 来源:尧图企业网站定制
简介这份《MEMS的计算机辅助设计方法与技术综述》为465KB的PDF文档共1个文件面向微机电系统、微纳器件与集成电路交叉方向的研究生、科研人员及工程设计者阅读参考。内容围绕MEMS结构化设计的主流思路展开梳理工艺级、物理级、器件级与系统级四个层次的分工与数据交换关系并评述CoventorWare、MEMS Pro、MEMSGarden、IMEE等CAD工具在建模与仿真中的定位文中还讨论工艺级几何与物理仿真、物理级有限元与边界元数值计算、器件级宏建模与降阶模型等关键技术并分析跨学科复杂度、设计流程集成、精度与效率平衡等挑战对MEMS器件或系统设计与MEMS CAD研究具有参考价值。目前已有100人学习下载适合快速建立MEMS CAD知识框架、了解主流工具与分层设计方法也可作为课题选题、方案论证和论文写作的文献线索。单文件便于检索与携带阅读时可按四个设计层次逐节对照形成从工艺到系统的整体认识对撰写综述、开题报告或进行工具选型亦有帮助。1. 射频MEMS开关的设计评审为什么经常对不上账结构工程师的ANSYS位移云图显示梁在5 V下已经吸合电路工程师手里的S参数却显示器件还在正常工作版图做完了DRC也过了流片回来测出的谐振频率比仿真高了18%。这类对不上账的场面在微纳器件开发里出现的频率远高于IC设计。原因不在于谁算错了而在于MEMS的计算机辅助设计要同时管住机械、静电、热、流体几套物理场还要把版图、工艺和电路行为串成一条闭环链路这跟纯数字或模拟IC那套「先抽象成SPICE模型、再谈版图」的EDA范式根本不是一回事。芯片的器件行为由掺杂和沟道决定MEMS的器件行为是几何、材料和工艺残余应力的直接函数——梁厚变化0.2 μm刚度就跟着变。围绕MEMS的计算机辅助设计方法与技术下面按层级划分、机电耦合、版图工艺闭环、降阶模型这几条线把每一步能落地的做法、参数取值和容易踩的坑讲清楚。2. MEMS计算机辅助设计的层级划分与工具链选型2.1 系统级、器件级、物理级各自回答什么问题系统级把MEMS当成电路里的一个黑盒端口只关心外围能观测到的量插入损耗、驱动电压、开关时间、谐振频率漂移。建模手段是等效电路或者行为级描述语言一个RLC加上非线性电容就能把一颗静电开关的阻抗特性拟合得七七八八。这一层的价值在于快一次瞬态仿真在毫秒到秒量级适合扫顶层架构、跑闭环控制策略、验证驱动电路的驱动能力够不够。器件级关注结构本身的力学行为梁的等效刚度、前三阶模态、挤压膜阻尼、非线性软化。模型自由度通常在几十到几百用集中参数或者少量模态叠加描述。参数寻优、公差分析、DOE抽样基本都在这一层完成因为它的单次求解在秒级一天跑几百个点不费劲。物理级是三维连续体多物理场强耦合网格动辄几十万单元。一次带几何非线性的机电耦合求解从几分钟到几小时不等。它存在的意义不是日常迭代而是结构定型、失效模式确认、以及给上面两层提供可信的刚度、阻尼和应力分布。三层之间必须能互相对齐物理级提取的刚度要能回填器件级器件级的端口行为要能封装进系统级。层级断链是MEMS设计返工的头号来源比数值不收敛更常见。2.2 主流工具链与产物格式对照设计层级典型工具主要产物单次求解量级适用阶段系统级Simulink、Saber、Verilog-A 环境行为模型、等效电路毫秒~秒架构评估、闭环控制器件级MATLAB/Python 自建、ANSYS 降阶模块集中参数、模态、ROM秒~分钟参数寻优、公差分析物理级COMSOL、ANSYS、CoventorWare、IntelliSuite三维场解、应力与位移分钟~小时结构定型、失效分析版图KLayout、L-Edit、VirtuosoGDSII—流片交付工艺仿真SUMMIT、IntelliSuite、自建脚本三维结构、剖面形貌分钟工艺可行性评估规则验证KLayout DRC、自建 LVS违例报告秒~分钟流片前检查这张表里最容易被忽略的是「工艺仿真」和「物理级」之间那条虚线。工艺仿真输出的三维结构带着侧壁角、残余应力和厚度梯度如果这些信息不喂给物理级做初始条件后面算出来的谐振频率就只能靠经验打折。反过来版图工具和物理级之间的几何往返也一样很多团队在COMSOL里手画结构版图在KLayout里另画一遍两边尺寸对不上等到流片才发现。2.3 选型前先问的三个问题第一个问题是要不要和电路联合闭环。要就必须在流程里预留Verilog-A或者状态空间模型的出口选工具时先确认它能不能导出降阶模型而不是等做完三维仿真才发现只能导出场数据。第二个问题是工艺变形是否影响性能。如果残余应力和厚度梯度让器件频率偏移超过5%物理级必须带上工艺仿真给出的初始应力场否则仿真精度还不如解析公式。第三个问题是一天的迭代预算。要跑几十个设计点物理级不可能每次都全耦合必须走「DOE抽样 降阶模型」的路线。2.4 用脚本把设计空间先铺开动手之前先把参数空间用脚本铺开比在GUI里一个一个改参数靠谱得多。下面这段用全因子组合生成设计点直接喂给后续的批处理仿真。# 生成 MEMS 平板驱动器的设计点供 FEM 批量调用 import itertools, json params { gap_um: [1.5, 2.0, 3.0], # 电极间隙直接决定 pull-in 电压 t_beam_um: [1.5, 2.0, 2.5], # 梁厚刚度与厚度三次方成正比 L_beam_um: [250, 300, 400], # 梁长刚度与长度三次方成反比 sigma_MPa: [0, 20, 50], # 残余应力影响屈曲与频率漂移 } keys list(params) points [dict(zip(keys, combo)) for combo in itertools.product(*params.values())] print(f共 {len(points)} 个设计点) with open(design_points.json, w, encodingutf-8) as f: json.dump(points, f, ensure_asciiFalse, indent2)这里的参数含义需要交代清楚gap_um由牺牲层厚度决定是pull-in电压里最敏感的量因为它以三次方出现在公式里t_beam_um和L_beam_um共同决定等效刚度两者都以三次方影响结果所以公差控制上梁厚通常比梁长更值得较真sigma_MPa是多晶硅释放后的残余应力0 代表理想退火状态实际工艺里2050 MPa很常见它会让固支梁的等效刚度抬高也会引入屈曲风险。全因子组合在这个规模下是243个点如果参数再加两三个就该换成拉丁超立方或者Sobol序列抽样避免点数爆炸。3. 静电吸合电压的机电耦合建模与参数扫描3.1 平板模型的解析解与它的适用边界静电吸合是MEMS里最基础也最容易翻车的非线性现象。平板电极在电压作用下静电力与位移的平方成反比放大弹性回复力只是线性增长两者在位移达到初始间隙三分之一处失稳电压再高一点点极板就直接贴死。这个临界电压就是pull-in电压工程上常用这个式子做快速估算V_pi sqrt( 8·k·g₀³ / (27·ε₀·A) )其中 k 是结构等效刚度g₀ 是初始间隙ε₀ 是真空介电常数A 是有效电极面积。它的适用边界必须清楚忽略边缘场、假设小变形、不含残余应力、不含挤压膜阻尼的静态影响。实际器件里边缘场会让有效面积偏大残余应力会让刚度偏高两者方向相反最终pull-in电压通常比解析值低10%到30%。所以这个公式的定位是给量级不是给定值。3.2 用MATLAB定位pull-in点并核对参数表解析值只能做起点真正的平衡位移曲线要靠数值求解。下面这段代码在同一套参数下同时给出解析值和数值值方便交叉验证。参数符号取值说明真空介电常数ε₀8.854e-12 F/m物理常数有效电极面积A4e-8 m²200 μm × 200 μm初始间隙g₀2 μm由牺牲层厚度决定梁厚t2 μm影响刚度三次方梁长L300 μm固支-固支梁宽w20 μm杨氏模量E160 GPa多晶硅典型值等效刚度k≈3.8 N/m由 k4Ewt³/L³ 估算% 平板静电驱动器平衡位移曲线与 pull-in 电压 eps0 8.854e-12; % 真空介电常数 F/m A 200e-6 * 200e-6; % 有效电极面积 m^2 g0 2e-6; % 初始间隙 m E 160e9; % 杨氏模量 Pa t 2e-6; w 20e-6; L 300e-6; k 4*E*w*t^3/L^3; % 固支-固支梁等效刚度 N/m Vpi_ana sqrt(8*k*g0^3/(27*eps0*A)); % 解析 pull-in 电压 Vvec linspace(0, 1.4*Vpi_ana, 141); x_eq nan(size(Vvec)); for i 1:numel(Vvec) f (x) k*x - eps0*A*Vvec(i)^2/(2*(g0-x)^2); if f(g0/3) 0 % (0, g0/3) 内已无平衡点说明越过 pull-in continue end x_eq(i) fzero(f, [0, g0/3]); % 只取稳定支 end idx find(isnan(x_eq), 1) - 1; fprintf(解析 Vpi %.2f V\n, Vpi_ana); fprintf(数值 Vpi %.2f V对应位移 %.2f um\n, Vvec(idx), x_eq(idx)*1e6);代码的逻辑是先算解析值作为扫描范围上限再对每个电压求解力平衡方程的根。fzero的区间卡在[0, g0/3]是有讲究的稳定平衡点一定落在这个区间内超过三分之一的解是不稳定支物理上观测不到。判据f(g0/3) 0用来识别越过pull-in的电压点此时函数在区间内变号消失直接跳过而不是让求解器乱找。运行下来解析值和数值值应该基本重合如果差得远先检查刚度公式里的边界条件假设是不是和实际锚区结构一致。3.3 COMSOL机电耦合建模的设置清单从解析走到三维设置项比想象中多下面这些是必须逐条确认的。设置项推荐值说明物理场接口机电耦合固体力学 静电直接耦合两个场网格变形移动网格ALE间隙区必须启用几何非线性打开关掉就算不出吸合间隙区网格层数≥5 层太少会畸变报错求解器全耦合牛顿阻尼 0.7~1.0收敛困难时先切分离式参数扫描步长0.05×V_pi越靠近临界越要加密后处理判据位移-电压曲线拐点或残差突然发散处参数扫描的上限不要直接设到解析值的1.4倍而是先扫到1.0倍确认曲线拐点位置再在拐点附近用0.01×V_pi的步长细化。很多团队直接在1.4倍处报「不收敛」其实那不是数值问题是器件真的已经吸合了求解器在物理上找不到解。3.4 收敛失败的三种典型表现与处理第一种是残差在接近临界电压时来回震荡、步长被反复砍小。这多半是真实的物理失稳不是bug。处理办法是改用弧长法或者把电压作为解变量而不是参数让求解器自己过拐点。第二种是网格畸变报错提示单元质量为负。这说明间隙区网格层数不够或者长宽比太大把间隙方向的单元数提到5层以上同时把平面内的网格尺寸控制在间隙的1/5以内。第三种是求解器直接跳过某个电压点、返回一组看似正常的场结果。这通常是因为误开了小变形假设几何非线性被关掉后静电力无法自洽放大解决的唯一办法是打开几何非线性重新算。4. 版图、DRC与工艺仿真的流片前闭环4.1 图层划分与GDSII的组织方式MEMS版图的图层约定没有统一标准但内部必须定死。常见做法是按「功能层 工艺层」双轨组织功能层标明这是结构层、锚区还是电极工艺层标明它对应哪一道掩模。两套图层号通过一张映射表关联版图检查脚本读功能层流片交付时按工艺层导出。这样做的直接好处是DRC规则可以写成「锚区到释放孔的间距」而不是「第7层到第12层的间距」后者过两个月没人看得懂。4.2 MEMS特有的DRC规则和IC的DRC比MEMS多了几类只跟释放工艺相关的规则它们不满足的后果往往不是电学失效而是机械结构直接垮掉或者释放不干净。规则类型典型约束不满足的后果释放孔最小面积≥3 μm × 3 μm腐蚀液进不去牺牲层残留释放孔到锚区间距≥5 μm侧向钻蚀掏空锚点结构层最小线宽≥2 μm释放后梁断裂或翘曲结构层与锚区重叠必须重叠悬空结构失去支撑大面积结构开孔率30%~50%释放时间过长或结构变形# mems_rules.drc —— KLayout 版图规则检查模板 source(mems_die.gds) report(mems_drc.lyrdb) poly input(1, 0) # 结构层 anchor input(2, 0) # 锚区 hole input(3, 0) # 释放孔 # 规则1结构层最小线宽 2um poly.width(2.0).output(结构层最小线宽 2um) # 规则2释放孔到锚区间距 5um防止释放液侧向钻蚀锚点 hole.separation(anchor, 5.0).output(释放孔-锚区间距 5um) # 规则3单个释放孔面积不小于 9um^2 hole.with_area(0, 9.0).output(释放孔最小面积 9um^2) # 规则4结构层必须与锚区有重叠否则悬空结构没有支撑 poly.not_interacting(anchor).output(悬空结构缺少锚点)脚本里input(1,0)取的是功能层的层号与数据类型换成实际项目的图层号即可。四条规则按「先几何、后拓扑」的顺序排列前三条是尺寸检查最后一条not_interacting是拓扑检查它找的是那些完全悬空、没有任何锚点连接的结构。实际跑的时候建议把规则分成「阻断级」和「警告级」两档线宽和锚点缺失属于前者开孔率偏低属于后者可以在评审时人工确认。规则值本身没有普适答案5 μm 的钻蚀间距对应的是湿法释放的横向腐蚀速率如果换成气相释放工艺这个值可以降到12 μm。4.3 从版图生成三维结构做工艺仿真工艺仿真的核心输入是两样东西版图各层的几何以及一份按顺序排列的工艺步骤表沉积、光刻、刻蚀、释放每一步带厚度和选择比。工具按步骤逐层运算输出带侧壁角和残余应力的三维结构。这个三维结构直接导出成网格就能作为物理级仿真的初始几何和初始应力场。常见做法是把工艺仿真输出的结构存成STEP或SAT格式再导入COMSOL做网格划分。需要注意的是工艺仿真算出的侧壁角通常在88°到89.5°之间这个看起来很小的偏差对高深宽比结构的刚度影响可能超过5%。4.4 LVS在MEMS里为什么难做IC的LVS之所以成立是因为器件模型有标准库、端口定义明确。MEMS没有这回事同一个版图图形既可以是一个可变电容也可以是一个谐振梁取决于你要怎么用它。所以MEMS的「LVS」实际做的是两件更弱的事——一是检查版图与三维结构模型之间几何一致确认仿真用的结构和流片用的结构是同一个二是检查电学连接关系确认电极、焊盘、走线的网络与电路原理图对得上。前者靠几何比对脚本后者可以复用IC的网表提取流程但器件识别那一步必须手工标注指望工具自动认出「这是一颗静电开关」目前不现实。5. 降阶模型与联合仿真把MEMS塞进电路里5.1 模态降阶的采样范围怎么定降阶模型能不能用关键在采样范围。静电力是位移的非线性函数在pull-in附近会剧烈软化如果采样点平均铺在0到V_pi之间线性化出来的模型在0.8×V_pi以上就严重失真联合仿真会给出「电路还能驱动、器件其实已经吸合」的错误结论。我一般把采样上限卡在0.7×V_pi在这一段里静电力-位移关系还算平滑提取的模态刚度和阻尼矩阵能稳住。模态阶数不用贪多覆盖前三阶弯曲模态就够了更高阶模态对低频电路行为几乎没有贡献反而会让状态空间矩阵变得病态。5.2 Verilog-A封装与收敛设置把降阶模型封装成电路可以调用的模块最省事的方式是用Verilog-A写一个等效端口模型内部用牛顿迭代求解归一化位移。// mems_rom.va —— 降阶封装非线性电容随位移变化 include disciplines.vams include constants.vams module mems_rom (p1, p2); inout p1, p2; electrical p1, p2; parameter real C0 1.8e-13; // 零偏电容 Fε₀A/g₀ parameter real g0 2.0e-6; // 初始间隙 m parameter real Vpi 5.0; // pull-in 阈值 V parameter real tol 1e-6; real V, v, u, fu, dfu, x; integer i; analog begin V V(p1, p2); v V / Vpi; // 归一化电压 if (v 1.0) v 1.0; // 越界钳位避免迭代发散 u 0.33 * v; // 初值 for (i 0; i 12; i i 1) begin fu u*(1-u)*(1-u) - (4.0/27.0)*v*v; dfu (1-u)*(1-3*u); // 解析导数 if (dfu 0) dfu -tol; // 防止除零 u u - fu/dfu; // 牛顿迭代解平衡位移 end x u * g0; I(p1, p2) ddt( C0 * g0 / (g0 - x) * V(p1, p2) ); end endmodule归一化位移满足 u(1-u)² (4/27)·(V/V_pi)²这个关系在 u 接近1/3时会出现双重根所以迭代前先把归一化电压钳到1.0防止步进超出定义域。迭代12次是为了保证在最坏情况下也能收敛到1e-6量级的残差实际跑起来通常5次以内就停了。电容表达式 C0·g₀/(g₀-x) 描述的是极板靠近时电容的非线性增大这一项在0.7×V_pi以下误差可以控制在3%以内。联合仿真的收敛设置上把电压源上升时间设成结构一阶模态周期的5倍以上避免阶跃激励把非线性求解器逼到发散仿真步长上限取模态周期的1/20。验证降阶模型是否可信最直接的办法是把同一组激励分别灌进三维模型和降阶模型比较端点位移的时域波形如果峰值误差超过5%说明采样上限或者模态阶数需要调整。把采样上限压到0.7×V_pi、残余自由度保留到覆盖前三阶弯曲模态这两个设置能把联合仿真的收敛时间压到可接受范围同时不丢掉吸合前的非线性软化特征。本文还有配套的精品资源点击获取

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价