☰
MIM电容从结构到验证:射频匹配设计必备指南
2026/10/15 8:47:57 网站建设 项目流程

简介:TSMC官方文档围绕MIM电容与电阻模型展开,介绍测量结果、薄层电阻表和薄膜参数,面向模拟电路设计、射频前端设计与工艺验证工程师。文档重点给出了四种薄膜的方块电阻汇总,分别列出薄层电阻、界面接触电阻、晶粒边界电阻的基准值,这些数值可帮助读者提取寄生电阻、评估工艺波动并校准电路仿真。进一步地,文档说明了电阻等效电路模型,即总电阻由接触电阻、界面电阻、晶粒边界电阻和薄层电阻共同构成,并提供了包含一阶、二阶温度与电压修正系数的计算公式;同时给出适用的温度范围(零下四十摄氏度至一百二十五摄氏度)和不同器件对应的电压范围。对于无硅化物多晶硅等具体薄膜类型,文档还列出了修正系数的查表数值,方便设计时直接参考。整套资源为一个PDF文件,大小约2.2MB,已有1847人学习。适合需要查阅TSMC设计规则、进行电容建模或验证工艺设计套件的工程师,作为技术参考文档使用。

1. 射频链路里的 MIM 电容:为什么隔直、匹配都得靠它

做过射频前端匹配或者 SerDes 收发链路的人,十有八九都被同一个问题卡过:需要一个 1pF 左右、Q 值高于 30、容值随偏压几乎不漂的电容,该用哪种?用 PN 结电容,偏压一变容值能漂 30% 以上;用 MOS 电容,栅极多晶硅耗尽效应让线性度变差,高频损耗也不理想。最后翻工艺文档,标准答案基本指向同一个器件:MIM 电容(Metal-Insulator-Metal capacitor,金属-绝缘体-金属电容)。它是某头部晶圆代工厂在标准 CMOS 流程里专门为模拟、射频、混合信号应用准备的平行板电容,上下两层金属中间夹一层薄介质,单位面积电容密度、电压线性度和品质因素都能兼顾。这篇文章从结构、工艺文档里的关键参数、设计落地到测试验证,把 MIM 电容的来龙去脉一次说清楚,适合正在做射频匹配网络、模拟滤波器或者需要精确电荷量化的电路设计者。

2. 拆开 MIM 电容的物理结构:介质、极板与寄生的一次算账

2.1 三种片上电容怎么选:MIM、MOS、PN 结的对比

在先进制程里,片上电容大致有三条路:PN 结电容、MOS 电容和 MIM 电容。PN 结电容靠反偏耗尽层存储电荷,容值随电压强烈变化,偏偏 Q 值还说得过去,所以早期射频设计里偶尔能看到它的身影;MOS 电容利用栅氧化层做介质,单位面积电容可以做得很大,但栅极多晶硅耗尽和沟道电阻让它的线性度和高频损耗都不理想。MIM 电容则直接把介质夹在两层金属之间,不依赖半导体耗尽层,电压线性度天然就好。下面这张表是我在选型时常用的对比维度:

对比项PN 结电容MOS 电容MIM 电容
单位面积密度中等高中高(取决于介质)
电压线性度差中等好
Q 值(GHz 频段)中偏低高
温度系数较差中等较好
工艺实现成本免费免费需额外掩膜
典型用途变容管去耦、电荷泵射频匹配、采样保持

从这张表能看出来,MIM 电容的优势集中在射频和模拟场景:线性度好、Q 值高、匹配性好。代价是要额外增加掩膜和工艺步骤,所以代工厂通常只在特定金属层之间提供,设计规则里也会有明确的面积和间距约束。选型时我的习惯是:如果电路里电容两端有固定的直流偏置,而且要求容值不随电压变化,优先考虑 MIM;如果只需要一个大容值的去耦电容,对精度和线性度不敏感,用 MOS 电容更划算。

2.2 介质材料和极板材料:密度、Q 值与漏电流的三角关系

MIM 电容的介质层是决定器件性格的部分。传统工艺用二氧化硅,介电常数约 3.9,胜在漏电流小、电压线性度好、工艺成熟;为了提升单位面积电容密度,代工厂后来引入氮化硅,介电常数约 7,密度差不多翻倍;再往后,高 k 介质(比如三氧化二铝、氧化铪)能把密度推到几个 fF/μm²,但代价是 VCC(电压电容系数)变大,漏电流也可能抬高。极板材料同样有讲究,常见的是 TiN 和金属叠层,TiN 作为极板的好处是跟介质层的粘附性好、界面态少,但方块电阻比纯铜或纯铝高,这会直接影响串联电阻,进而压低 Q 值。

介质厚度是另一个绕不开的数字。同一个工艺节点,MIM 介质做得越薄,单位面积电容越大,但击穿电压下降、漏电流上升、工艺波动的影响也更明显。所以工艺文档里通常会给出两层 MIM 或多种介质选项:一层厚介质跑低压高 Q 场景,一层薄介质跑高密度场景。设计者真正要做的是在电路指标和工艺选项之间做取舍,而不是只盯着最大密度选。我一般会先列出电路需要的容值范围、偏置电压和 Q 值下限,再回推需要哪种介质、多大面积。

2.3 版图里的 MIM 和剖面看到的 MIM:为什么上极板总比下极板小

只看版图,MIM 电容就是一块矩形的识别层标记,上下金属叠在一起,中间夹着介质。但拉出剖面图就能发现几个容易被忽略的细节:上极板通常比下极板略小一圈,这不是随意画的,而是为了避开边缘电场不均匀的区域。如果上下极板完全等大,边缘处电力线发散,电容密度在边界附近跟中心不一致,导致容值估算偏差且难复现。让上极板缩进一圈,边缘场主要集中在介质内部,电容密度更均匀。另外,上下极板要通过过孔阵列连到互连金属,过孔的位置也会带来寄生电阻和电感,尤其是在高频段。

我见过不少新手直接把上极板画得跟下极板一般大,结果实测容值比仿真略大且难以解释。正确做法是严格按 PDK 里 pcell 生成的尺寸来,别手动去改极板重叠区域。还有一个常见约束是高密度金属区域需要满足化学机械抛光的密度规则,MIM 周围要放 dummy 金属块,这些 dummy 如果放得太近,会引入耦合电容,所以版图阶段就要把 dummy 间距和屏蔽层一起考虑进去。

3. 读懂代工厂 MIM 工艺文档:单位电容、VCC 与 Q 值三个关键参数

3.1 单位面积电容怎么算:介质厚度和介电常数的那笔账

拿到工艺文档,第一件事是找到 MIM 电容的单位面积容值,通常写作 capacitance density,单位是 fF/μm²。它背后的公式就是平行板电容:C = ε0 × εr × A / d。按这个公式,50nm 的二氧化硅算下来大约是 0.69 fF/μm²,如果用 30nm 高 k 介质,密度可以到 2~3 fF/μm²。理解这个关系之后,估算面积就很快:目标 1pF,用 1 fF/μm² 的介质,面积大约就是 1000 μm²,相当于 30μm×33μm 的一块区域。这个面积在芯片上并不小,所以 MIM 电容在片上电路里往往占了不少版图面积,布局时得提前预留。

我常用的估算方式是在脚本里把单位换算写清楚,避免手算时把小数位搞错。下面是一个简单的计算脚本,输入介电常数、厚度和目标容值,反推所需面积:

epsilon_0 = 8.854e-12 # 真空介电常数,单位 F/m epsilon_r = 7.0 # 介质相对介电常数,SiN 约 7 thickness = 40e-9 # 介质厚度,单位 m,这里取 40nm target_cap = 1e-12 # 目标容值 1pF density = epsilon_0 * epsilon_r / thickness # 单位面积电容,F/m^2 density_fF = density * 1e18 # 转为 fF/um^2 area_um2 = target_cap / density * 1e12 # 所需面积,um^2 print(f"单位面积电容: {density_fF:.2f} fF/um^2") print(f"1pF 所需面积: {area_um2:.0f} um^2")

参数说明:epsilon_r 和 thickness 一定要以工艺文档为准,不同介质选项差别很大;脚本里的 area_um2 是理论最小值,实际版图还要加上极板间距、过孔区和 dummy,至少留出 20% 的余量。每次换工艺节点,我第一件事就是用这套脚本把密度重新算一遍,因为 PDK 里给的 pcell 虽然会自动算面积,但初期的版图规划和成本评估靠的还是这个手算值。

3.2 VCC 与失配:为什么精密电路不能把 MIM 当理想电容用

VCC(Voltage Coefficient of Capacitance)描述的是容值随直流偏压的变化率,单位通常是 ppm/V 或 %/V。理想电容的容值应该跟两端电压无关,但实际介质材料里存在极化机制,电场一强,偶极子取向发生变化,等效介电常数就变了。二氧化硅的 VCC 很小,大约几十 ppm/V 量级,高 k 介质可能到几百甚至上千 ppm/V。这意味着在采样保持电路里,如果电容两端电压不同,容值就会不同,直接引入非线性误差。

失配是另一个需要提前认识的参数。MIM 电容的绝对容值误差可以到 ±10% 以上,但同一晶圆上相邻电容的匹配却能做到百分之一以内。设计精密电路时,关键是靠电容比值而不是绝对容值,比如流水线 ADC 里的电容阵列,只要比例精确就能保证增益误差指标。工艺文档里会给出失配跟面积的关系曲线,通常是 σ ∝ 1/√(A),面积越大失配越小,所以关键电容不要为了省面积而缩得太小。我在做差分电路时,习惯把关键 MIM 电容做成共质心布局,让工艺梯度对两个电容的影响相互抵消。

3.3 品质因子 Q 的可调范围:串联电阻从哪来

Q 值在射频电路里体现为电容损耗的大小,定义是 Q = 1 / (ω × C × Rs)。从公式看,频率越高、容值越大、串联电阻越大,Q 值就越低。MIM 电容的串联电阻由几个部分叠加:极板金属的方块电阻、上下极板引出过孔的接触电阻、以及连接到外围电路的互连金属电阻。TiN 极板的方块电阻比铜金属高不少,所以大面积的 MIM 电容内部电流要横穿整块极板,电阻积累不可忽视,这也是为什么大容值 MIM 电容的 Q 值很难做高。

提升 Q 值的常规手段是让电流路径更短,加大过孔数量并联降低过孔电阻,让极板引出尽量靠近使用位置。工艺文档里通常会给出不同容值下的典型 Q 值曲线,注意看频率条件是 1GHz、2.4GHz 还是更高频。如果你的电路工作在毫米波频段,我建议直接跳过文档里的低频 Q 值,用电磁仿真工具对极板结构做一次完整提取,因为互连寄生在毫米波频段往往比电容本身更影响 Q 值。高频设计里,MIM 电容常常不是“一个电容”,而是一个带有寄生电感和寄生电阻的网络,这一点会在下一章的仿真模型里重点展开。

4. 把 MIM 电容落进设计:PDK 调用、仿真模型与版图布置

4.1 从 PDK 调出 MIM 电容:参数设置与最小尺寸检查

在实际设计流程里,MIM 电容通常以 pcell 的形式集成在 PDK 里,版图编辑器中选中后只需填几个参数:宽度、长度、层选择(对应不同的介质选项)、过孔数量等。pcell 会自动画出上下极板和介质识别层,也会自动处理上极板缩边。需要注意的是有些 PDK 里的 pcell 提供的是“单端”结构,上下极板各有一个连接端口,做差分电路时要摆两个再互相连线。调用之后一定要跑一次 DRC,重点检查面积上限、极板最小尺寸和过孔密度,违反规则通常是因为参数填了太极端的数值。

仿真视角下,PDK 里的 MIM 模型分两类:一类是 SPICE 格式的集总模型,用理想电容加串联电阻和寄生电感描述,适合常规模拟仿真;另一类是带衬底耦合的射频模型,把电容到衬底的寄生也建进去了,适合射频匹配和噪声分析。我的建议是:低频模拟电路用 SPICE 模型就够,凡是要跑 S 参数或谐波平衡仿真的,一律切到射频模型,否则仿真到实测的偏差会很难收场。工具里通常用 model 名称后缀区分这两类,选型时留意文档说明。

4.2 仿真模型里的寄生参数:把极板到衬底的电容算进匹配网络

MIM 电容的上下极板都是金属层,金属和衬底之间隔着层间介质,天然存在寄生电容。这些寄生电容的一端是极板,另一端是衬底,而衬底在电路仿真里往往不是理想的交流地,尤其在射频仿真里,衬底网络需要用电阻网络描述。PDK 的射频模型通常把寄生电容拆成两个部分:一个是下极板到衬底的电容 Cp1,一个是上极板到衬底的电容 Cp2,两者数值不等,因为下极板离衬底更近。仿真时如果忽略 Cp2,在设计谐振匹配网络时会产生明显频偏。

处理寄生电容的工程方法不是“消除”它,而是把它吸收进设计。比如并联谐振电路里,MIM 电容的 Cp 会和外加电感形成额外的谐振点,仿真时让这个寄生谐振远离工作频段就行。我一般会在版图完成后跑一次寄生参数提取,把 MIM 电容的实际寄生 RC 提出来回填到电路仿真里,再确认一遍关键指标。净空区域的设置对寄生影响很大,MIM 下方最好有完整的芯片衬底接触(guard ring),把衬底电位固定住,否则衬底噪声会通过寄生电容耦合到极板,灵敏度高的模拟电路直接受影响。

4.3 版图实现:面积分割、共质心与 dummy 的取舍

MIM 电容的版图实现看似简单,但几个细节直接决定实测表现。第一,大电容要分割成多个小单元并联,而不是画一整块大极板。整块大极板横向尺寸大,极板中心到引出端的电流路径长,串联电阻随面积增加很快,Q 值反而比多个小电容并联差。第二,匹配要求高的电路要用共质心布局,把电容单元交叉摆放,工艺的线性梯度(比如介质厚度从左到右渐变)就能在两个电容上平均掉。第三,dummy 电容不能省略,它是为了维持电容周围的图形密度均匀,防止化学机械抛光把介质层磨得不均匀。

关于 dummy 的一个常见争议是:dummy 会不会引入耦合电容导致容值偏大?答案是设计规则允许的 dummy 间距下,耦合效应对地(或对相邻 dummy)的路径是确定的,仿真模型里未必包含,但偏差通常在可接受范围内。真正需要小心的是把 dummy 放成自由浮空状态,浮空金属会积累电荷并引入不可控的电容耦合。正确做法是让 dummy 接固定电位(通常是地),或者按工艺文档要求放到规定距离之外。布局完成后,用 LVS 确认所有 MIM 电容都带上了正确的识别层,这一点经常在手工修改版图后翻车。

5. MIM 电容设计避坑:四个典型的“仿真对、实测偏”现场

5.1 现象:实测容值比仿真小 5%~8%,偏差还稳定

某次用 MIM 电容做低通滤波器,仿真时按 PDK 模型跑,结果芯片回来后实测截止频率比预期偏高,折算下来电容实际值比仿真小了约 6%。把电容单独切开测试,确认容值确实偏小。原因在于我在版图阶段手动修改了 pcell,把上极板的尺寸调大了一些,想增加重叠面积弥补容值,却没注意到 pcell 生成的介质层刻蚀窗口并没有跟着变,导致边缘区域根本没有介质,有效重叠面积反而比原始版本更小。解决方法是把 pcell 改回默认结构,用并联多个单元而不是扩大单个面积来增加容值。

这条踩坑经验的价值在于:代工厂的 MIM pcell 里的每一个图层都是经过工艺调校的,识别层、介质层、极板层三者之间的大小关系决定了有效面积,手动缩放极板容易破坏这个关系。如果确实需要非标准容值,应先确认工艺文档是否允许自定义形状,自定义后是否有对应的建模支持。没有建模支持的自定义 MIM 电容,仿真和实测之间的偏差只能归为玄学。

5.2 现象:电容两端加了直流偏压后,谐振频率发生偏移

给 MIM 电容并联电感做成谐振网络,原以为容值是固定的,结果在测试中发现改变偏压时谐振频率跟着变。网上查资料再翻工艺文档,确认是 VCC 在起作用,高 k 介质选项的 VCC 能达到几百 ppm/V,折算在 10GHz 谐振频率上就是几十 MHz 的偏移。解决思路是两条:一是换用低 VCC 的介质选项,二是从电路层面减小加在电容上的直流电压摆幅。如果不方便换介质,还可以用电容串联的方式来分摊电压,代价是面积翻倍。

这个案例提醒我:每次选 MIM 电容之前,先看清电路里电容两端的直流工作点。很多人只在意电容值和 Q 值,把 VCC 忽略掉,结果在精密模拟电路里踩坑。特别是如今射频开关、可调滤波器这类对偏压敏感的电路,VCC 参数直接决定方案可行性。

5.3 现象:高频段 S21 出现非预期的谐振峰

某次做毫米波匹配网络,版图后仿真和实测对不上,S21 在目标频段附近多了一个凹陷。排查发现是 MIM 电容的寄生电感在作怪:上下极板的引出互连和过孔形成了等效串联电感,电容本身的 C 和这个寄生 L 构成了串联谐振,谐振频率落在工作频带里。解决方法有两种:一是让极板引出互连尽量短、宽,过孔加倍并联降低寄生电感;二是仿真时不用集总模型,改用电磁仿真工具把电容及周围结构提取成 S 参数模型再仿真。从那次以后,凡是工作频率超过 10GHz 的设计,我都默认对 MIM 电容做电磁提取,不再依赖 PDK 里的集总模型。

5.4 现象:同样设计在不同批次间容值波动超过 10%

这是一条偏工艺层面的注意。MIM 电容的容值由介质厚度和面积共同决定,介质厚度在晶圆边缘和中心可能存在差异,蚀刻过程也会带来面积收缩不一致。对成本敏感的消费电子芯片,设计时要留出容值波动的余量,关键指标不能卡在容值窗口的边缘。合理的做法是在流片时加入电容测试结构(同一个 die 上放几个不同尺寸的 MIM 电容),实测后反推该批次的真实密度和尺寸收缩量,再把校准后的参数代入设计迭代。另一个策略是设计里用电容比值替代绝对容值,因为工艺波动对同片上的电容通常是等比变化,比值稳定性远好于绝对精度。

6. 验证 MIM 电容的最后一公里:测试结构与去嵌提取技巧

芯片回来之后,怎么确认 MIM 电容真的达到了设计指标?直接测 pad 到 pad 的容值是不行的,因为测试焊盘和互连线的寄生电容跟 MIM 容值在一个量级。标准做法是设计一组去嵌结构:一个 OPEN 结构(只有焊盘和互连线,没有 MIM 电容)、一个 SHORT 结构(焊盘和互连线直接短接)、一个 THRU 结构(焊盘之间用完整互连线连接),再加上待测的 DUT 结构。测量各自的 S 参数后,先用 OPEN 和 SHORT 去除焊盘寄生,再用 THRU 去除互连线的影响,最后得到纯 MIM 电容的 Y 参数。

从 Y 参数提取容值的公式很直接:在低频段,DUT 的 Y11 虚部约等于 jωC,所以 C = Im(Y11) / ω。提取串联电阻则看实部,Rs = Re(1/Y11)。我用 Python 做个简单脚本,读入四组 S 参数,做去嵌计算,直接输出 C 和 Rs:

import numpy as np def deembed(open_s, short_s, dut_s, f, z0=50.0): # 将 S 参数转为 Y 参数,做 Open-Short 去嵌 def s2y(s, z0=50.0): y = np.empty_like(s, dtype=complex) for i in range(len(s)): s11, s12, s21, s22 = s[i] denom = (1 + s11) * (1 + s22) - s12 * s21 y[i] = [ [(1 - s11) * (1 + s22) + s12 * s21, -2 * s12] / denom / z0, [-2 * s21, (1 + s11) * (1 - s22) + s12 * s21] / denom / z0 ] return y y_open = s2y(open_s) y_short = s2y(short_s) y_dut = s2y(dut_s) # Open 去嵌: 减掉并联寄生 y_mid = y_dut - y_open # Short 去嵌: 串联寄生通过逆矩阵处理 y_result = [] for i in range(len(f)): zin = np.linalg.inv(y_mid[i]) zshort = np.linalg.inv(y_short[i] - y_open[i]) z_dut = zin - zshort y_result.append(np.linalg.inv(z_dut)) y_result = np.array(y_result) # 提取 C 和 Rs cap = np.imag(y_result[:, 0, 1]) / (2 * np.pi * f) # 从 Y12 提取 rs = np.real(1 / y_result[:, 0, 1]) return cap, rs

参数说明:open_s 和 short_s 分别是去嵌结构的 S 参数,dut_s 是待测电容的 S 参数,f 是频率点数组;去嵌顺序是先减去 OPEN 的并联寄生,再通过阻抗矩阵相减消掉串联寄生;最终从 Y12 提取容值,因为 Y12 对互连线寄生更不敏感。提取出来的 C 如果随频率明显上翘,说明串联电感还没去干净,需要检查 SHORT 结构是否覆盖了完整的互连路径。

有一个习惯我一直保持到现在:每一版芯片回来,第一件事就是测片上的 MIM 电容测试结构,把实测密度和 PDK 标称值做对比,存成一份该批次的校准记录。后面再调试电路,分析偏差时就用这份记录作为依据,少走很多弯路。也希望这份 MIM 电容从结构、参数到验证的梳理,能帮你在下一版设计里少踩几个坑。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询