首页 / 资讯中心 / 文章详情

SP仿真提取MOS电容C-V曲线:原理、Port设置与避坑指南

SP仿真提取MOS电容C-V曲线:原理、Port设置与避坑指南 ★ FEATURED ARTICLE
1. 为什么SP仿真比AC仿真更适合提取MOS电容C-V曲线1.1 从一次踩坑经历说起刚入行那会儿带我的师傅让我提取一个MOS管的C-V曲线我第一反应就是打开AC仿真在栅极加一个AC源跑完看输入阻抗的虚部再反推电容。结果跑出来的曲线在强反型区完全不对劲低频下Cgg看着还行一到积累区就飘得离谱。后来师傅看了一眼我的testbench说了一句让我记到现在的话“你这是在用测电阻的方法去测电容方向就错了。”这句话点醒了我。AC仿真本质上是在频域里看小信号增益和相位它擅长的是分析电路的频率响应、增益带宽积、相位裕度这些东西。用它来提取电容你得通过阻抗的虚部去反推中间隔了一层而且精度受限于你选的频率点和AC源的幅度设置。更关键的是AC仿真默认是线性化的小信号分析MOS管的电容本身是偏压的函数你在一个偏压点跑一次AC只能得到一个电容值要扫C-V曲线就得手动扫偏压效率极低。SP仿真就不一样了。SP是S参数仿真的缩写它直接给你端口的S参数而S参数和Y参数、Z参数之间是可以互相转换的。Cadence Virtuoso的SP仿真引擎在后台会计算端口的导纳矩阵你只需要在输出表达式里用Y参数公式就能直接算出电容。更妙的是SP仿真支持DC偏压扫描你设置好一个DC扫描变量仿真器会自动在每个偏压点计算S参数然后你用一个公式就能把整条C-V曲线一次性画出来。1.2 SP仿真提取电容的数学原理这里稍微展开讲一下原理理解了之后你就知道为什么SP仿真更准。对于一个二端口网络Y参数矩阵的定义是I1 Y11 * V1 Y12 * V2 I2 Y21 * V1 Y22 * V2当我们在MOS管的栅极和源漏短接点之间加一个Port实际上构成的是一个单端口网络另一个端口接地。这时候Y11就是输入导纳它的虚部除以角频率就是电容C imag(Y11) / (2 * pi * freq)在Cadence Virtuoso的SP仿真中你可以直接使用ypm()函数来获取Y参数。具体来说ypm(sp 1 1)返回的就是端口1的Y11。然后你定义一个输出表达式Cgg imag(ypm(sp 1 1)) / (2 * pi * xval(var(freq)))这里xval(var(freq))取的是当前频率点的值。如果你用的是单频点SP仿真这个值就是固定的如果你跑的是扫频SP那就要注意取哪个频点的值。注意SP仿真提取电容时频率的选择很关键。频率太高寄生电感和引线电感会影响结果频率太低数值精度可能不够。一般建议选在1MHz到100MHz之间具体看你的工艺节点和器件尺寸。1.3 SP仿真相比AC仿真的三个实际优势第一个优势是直接性。AC仿真你需要构造一个测试电路加AC源可能还要加隔直电容、偏置电阻电路越复杂引入的寄生越多。SP仿真只需要在端口上放一个Port器件仿真器内部处理一切电路干净结果可信度高。第二个优势是扫描效率。AC仿真扫偏压需要嵌套扫描外层DC内层AC设置麻烦而且容易出错。SP仿真的DC扫描是原生支持的你在analogLib里找一个dc源设置成变量然后在SP仿真设置里勾选Sweep DC仿真器会自动在每个DC点做一次SP分析输出表达式会自动对每个点求值一条曲线直接就出来了。第三个优势是参数提取的灵活性。用SP仿真你可以同时提取Cgg、Cgd、Cgs、Cdb等多个电容参数只需要在输出表达式里写不同的Y参数组合就行。比如Cgd可以用Y12来算Cgs可以用Y11Y12来算。AC仿真要做同样的事情你得在每个节点都加AC源电路复杂度直线上升。2. Port设置的核心细节与避坑指南2.1 Port器件在Cadence中的位置与基本参数在Cadence Virtuoso的analogLib库里Port器件叫port你可以在Library Manager里找到analogLib然后在cell列表里搜port。这个器件看起来很简单就两个端子一个正端一个负端但里面的参数设置直接决定了仿真能不能跑对。双击Port器件你会看到几个关键参数Resistance端口内阻默认是50欧姆。这个值在SP仿真里非常重要它决定了端口的匹配条件。对于MOS电容提取我一般建议设成50欧姆或者更大比如1k欧姆。设太小会加载被测器件设太大则反射系数接近1数值精度可能下降。Port Number端口编号必须从1开始而且不能重复。如果你放了两个Port编号分别是1和2那SP仿真就会算一个二端口网络。对于MOS电容提取通常只需要一个Port编号设为1。AC MagnitudeAC信号的幅度默认是1。这个值在SP仿真里其实用不到因为SP仿真用的是归一化的入射波但有些版本会读这个值所以保持默认1就行。DC Voltage端口的DC偏压。这个参数很关键如果你不在这里设DC偏压那Port就只是一个纯AC端口MOS管没有直流工作点电容值就没有意义。2.2 单端口还是双端口一个容易搞混的选择很多人第一次用SP仿真提取MOS电容时会纠结到底用单端口还是双端口。我的经验是看你要提取什么电容。如果你只关心栅极对地的总电容Cgg那单端口就够了。把Port的正端接到MOS管的栅极负端接到源极和漏极短接的点或者直接接地然后跑SP仿真用Y11算Cgg。但如果你要提取Cgd、Cgs这些分离的电容那就需要双端口。端口1接栅极端口2接漏极源极接地。然后你可以在输出表达式里用Y参数的不同组合来算Cgg imag(ypm(sp 1 1)) / (2 * pi * freq) Cgd -imag(ypm(sp 1 2)) / (2 * pi * freq) Cgs imag(ypm(sp 1 1) ypm(sp 1 2)) / (2 * pi * freq)这里要注意符号问题。Y12通常是负的所以算Cgd的时候要加负号。具体符号取决于你的端口定义和电流方向建议跑完仿真后先看一下Y参数的实部和虚部确认符号再写公式。提示如果你不确定端口怎么接可以先跑一个简单的DC仿真确认MOS管工作在哪个区。积累区、耗尽区、反型区的电容特性完全不同接错端口可能得到一条看起来合理但实际错误的曲线。2.3 Port的DC偏压设置最容易翻车的地方我见过太多人在这里翻车。Port的DC Voltage参数和你在电路里加的dc源是两回事。如果你在栅极加了一个dc源来扫偏压那Port的DC Voltage就应该设成0让dc源来决定工作点。但如果你没有加dc源而是想通过Port本身来提供偏压那就要把DC Voltage设成变量然后在SP仿真设置里扫描这个变量。两种方式各有优劣。用dc源的好处是直观你可以在 schematic 里看到偏压加在哪里用Port的DC Voltage的好处是电路更干净少一个器件少一份寄生。我个人的习惯是用dc源因为这样在跑DC仿真检查工作点时更方便而且SP仿真设置里扫描dc源的变量和扫描Port的DC Voltage变量在语法上是一样的。这里有一个坑如果你同时用了dc源和Port的DC Voltage而且两个都设了非零值那MOS管的工作点就是两者叠加的结果。很多人调了半天发现曲线不对最后发现是Port的DC Voltage忘了设成0。2.4 端口阻抗对C-V曲线的影响Port的Resistance参数对C-V曲线的影响很多人一开始意识不到。我做过一组对比实验同一个MOS管Port电阻分别设成50欧姆、500欧姆、5k欧姆跑出来的Cgg曲线在积累区差了将近15%。原因在于SP仿真计算的是端口的反射系数S11然后通过S11反推Y11。如果端口阻抗和被测器件的阻抗不匹配反射系数会接近1数值计算的精度就会下降。对于MOS电容来说它的阻抗是容性的在低频下阻抗很高所以端口电阻设大一点反而更匹配。但也不能无限大。端口电阻太大入射功率就小信噪比下降。我的经验值是对于栅氧厚度在2nm到10nm之间的MOS管Port电阻设在500欧姆到2k欧姆之间比较合适。你可以先跑一个频域扫描看看S11的幅度如果S11在大部分频段都接近1那就说明端口阻抗需要调整。3. 完整实操流程从原理图到C-V曲线3.1 原理图搭建与器件选型先建一个新的cellview选schematic。从analogLib里调出以下器件一个nmos或pmos看你用的是哪个工艺库一般在工艺库的models或者pdk库里一个portanalogLib里的port一个dc源analogLib里的vdc用来扫栅极偏压一个地analogLib里的gnd连接方式MOS管的源极和漏极短接然后接到port的负端和地。MOS管的栅极接到port的正端同时接到dc源的正端。dc源的负端接地。port的负端接地。这里有一个细节源极和漏极短接的方式会影响Cgg的提取结果。如果你只关心栅极对沟道的电容那源漏短接是对的。但如果你要提取的是栅极对源极的电容Cgs那漏极应该接一个独立的端口不能短接。注意MOS管的衬底怎么接对于NMOS衬底通常接地对于PMOS衬底接VDD。衬底的接法会影响耗尽层电容进而影响C-V曲线的形状。如果你发现曲线在耗尽区有异常先检查衬底接对了没有。3.2 SP仿真设置详解在ADE L或者ADE XL里选择Analyses - Choose然后选sp。你会看到SP仿真设置窗口里面有几个关键选项Sweep Frequency扫频设置。对于单频点提取电容选Single频率设成1MHz。对于扫频分析选Linear或者Log起止频率根据你的需求定。Sweep DCDC扫描设置。勾选这个选项然后选择你要扫描的变量比如dc源的电压设置起止值和步长。步长建议设小一点比如0.05V这样C-V曲线才平滑。Ports端口设置。这里会列出你电路里所有的Port器件确认端口编号和阻抗是否正确。Output Expressions输出表达式。这是最关键的一步你需要在这里定义电容的计算公式。输出表达式的写法Cgg imag(ypm(sp 1 1)) / (2 * pi * xval(var(freq)))如果你跑的是单频点SPxval(var(freq))就是那个固定频率。如果你跑的是扫频SP那这个表达式会对每个频点求值你得到的是C-f曲线而不是C-V曲线。所以对于C-V曲线一定要用单频点SP加DC扫描。3.3 输出表达式的编写与调试输出表达式写完之后点击Run仿真器会先跑DC扫描然后在每个DC点跑一次SP分析最后用你的表达式计算电容值。整个过程可能需要几分钟取决于你的DC扫描点数和SP仿真的复杂度。跑完之后在ADE里选择Direct Plot - Main Form然后选你的输出表达式Cgg就能看到C-V曲线了。如果曲线形状不对先检查以下几个地方DC扫描范围是否覆盖了积累区、耗尽区和反型区Port的DC Voltage是否设成了0如果你用dc源扫偏压的话输出表达式里的频率值是否和SP仿真设置里的频率一致Y参数的端口编号是否和Port的编号对应我遇到过一种情况曲线在某个偏压点突然跳变。后来发现是DC扫描步长太大仿真器在那个点没有收敛。把步长从0.1V改成0.02V之后曲线就平滑了。3.4 数据导出与后处理Cadence Virtuoso可以直接把波形导出成CSV文件。在波形窗口里选择File - Export - CSV然后选你要导出的信号。导出的CSV可以用Excel或者Python做进一步处理比如提取平带电压、计算氧化层厚度、拟合掺杂浓度等等。如果你要用Python处理可以这样读CSVimport pandas as pd import matplotlib.pyplot as plt df pd.read_csv(cv_curve.csv) plt.plot(df[Vgate], df[Cgg]) plt.xlabel(Gate Voltage (V)) plt.ylabel(Cgg (F)) plt.show()后处理的时候要注意单位。Cadence导出的电容值通常是法拉但数值可能很小比如1e-15量级。画图的时候可以转换成fF或者pF看起来更直观。4. 常见问题与排查技巧实录4.1 C-V曲线形状异常的原因分析问题一曲线在积累区不饱和一直往上翘。这种情况通常是Port电阻太小导致端口加载效应太强。把Port电阻从50欧姆调到1k欧姆试试。如果还不行检查一下是不是有额外的寄生电容比如pad电容或者引线电容。问题二曲线在反型区下降太快。这可能是DC扫描范围不够没有扫到强反型区。把DC扫描的终止电压调大一点比如从2V调到3V。另外检查一下MOS管的源漏是否真的短接了如果源漏之间有电阻反型区的电容会被拉低。问题三曲线整体偏移平带电压不对。先检查衬底偏压是否正确。对于NMOS衬底接地对于PMOS衬底接VDD。如果衬底偏压不对耗尽层电容会变整条曲线会平移。另外检查一下栅极的功函数差有些工艺库会在模型里设置这个参数。4.2 SP仿真不收敛的排查步骤SP仿真不收敛是家常便饭尤其是当你扫描的偏压范围比较大的时候。我的排查步骤是这样的第一步把DC扫描范围缩小先跑一个单点SP确认电路本身能收敛。如果单点都不收敛那就是电路连接有问题检查Port的负端是否接地dc源的极性是否正确。第二步如果单点收敛但扫描不收敛把DC步长调小。步长太大仿真器在两个点之间跳变容易不收敛。从0.1V调到0.01V试试。第三步在SP仿真设置里找到Convergence选项把迭代次数调大或者换一个收敛算法。Cadence提供了几种收敛算法比如Newton和Gmin不同算法对不同电路的收敛性不一样。第四步如果还不行在Port上并联一个大电阻比如1G欧姆给仿真器一个直流通路。有时候电路浮空会导致不收敛加一个大电阻就能解决。4.3 常见问题速查表问题现象可能原因解决方法曲线在积累区不饱和Port电阻太小增大Port电阻到500-2k欧姆曲线在反型区下降太快DC扫描范围不够增大DC扫描终止电压曲线整体偏移衬底偏压不对检查衬底接法仿真不收敛DC步长太大减小DC步长到0.01V仿真不收敛电路浮空在Port上并联大电阻电容值数量级不对频率设置错误检查SP仿真频率和表达式频率曲线有跳变点收敛问题减小步长或换收敛算法Cgd符号不对Y参数符号约定检查端口电流方向4.4 几个我踩过的坑第一个坑Port的DC Voltage忘了设成0。我用dc源扫偏压Port的DC Voltage默认是0但有一次我不小心改成了1V结果整条曲线平移了1V调了半天才发现。第二个坑输出表达式里的频率用了变量但没定义。我写的是imag(ypm(sp 1 1)) / (2 * pi * freq)但freq这个变量在ADE里没有定义仿真器直接报错。后来改成xval(var(freq))才跑通。第三个坑MOS管的模型参数没选对。有些工艺库提供了多个模型比如nmos和nmos_rf后者的寄生参数更全但提取出来的C-V曲线和前者不一样。做电容提取要用哪个模型最好先和工艺厂确认。第四个坑SP仿真的频率点选在了谐振频率附近。MOS管本身有寄生电感在某个频率下会发生谐振Y参数的虚部会过零。如果你选的频率刚好在谐振点附近算出来的电容会非常大或者非常小。跑一个扫频SP看看Y11的虚部在哪个频率范围内是单调的选那个范围内的频率。5. 进阶技巧从C-V曲线提取工艺参数5.1 提取氧化层厚度和掺杂浓度C-V曲线不只是看个形状它里面包含了丰富的工艺信息。在积累区MOS电容就是氧化层电容Cox由下面的公式给出Cox epsilon_ox * A / tox其中epsilon_ox是二氧化硅的介电常数3.9 * 8.854e-12 F/mA是栅极面积tox是氧化层厚度。你从积累区的饱和电容值反推就能算出tox。在耗尽区C-V曲线的斜率包含了掺杂浓度的信息。对于均匀掺杂的衬底1/C^2和V的关系是一条直线直线的斜率就是掺杂浓度。你可以把C-V数据导出在Python里做1/C^2 vs V的图然后线性拟合。import numpy as np from scipy.stats import linregress C df[Cgg].values V df[Vgate].values inv_C2 1 / (C**2) slope, intercept, r_value, p_value, std_err linregress(V, inv_C2) doping 2 / (epsilon_si * q * slope)这里epsilon_si是硅的介电常数11.7 * 8.854e-12 F/mq是电子电荷1.602e-19 C。算出来的doping单位是1/m^3除以1e6就是cm^-3。5.2 高频C-V与低频C-V的区别你可能会发现同一个MOS管用不同频率的SP仿真提取出来的C-V曲线不一样。这是正常的因为MOS电容的频率响应和界面态有关。低频下界面态能够跟上AC信号的变化所以反型区的电容会比较高。高频下界面态跟不上反型区的电容会降低。这个频率转折点通常在1kHz到1MHz之间具体取决于界面态密度。如果你要做器件建模通常需要同时提取高频和低频C-V曲线然后用一个等效电路模型去拟合。Cadence的SP仿真可以很方便地做多频率扫描你只需要在SP设置里选多个频率点然后在输出表达式里对每个频率分别计算电容。5.3 自动化提取脚本的思路如果你要提取很多个器件的C-V曲线手动跑仿真太慢了。可以用Cadence的SKILL语言写一个脚本自动遍历所有器件跑SP仿真导出数据。脚本的大致思路是打开ADE L加载仿真状态修改器件参数比如W/L运行仿真导出波形数据到CSV重复步骤2-4SKILL脚本的编写需要一些学习成本但一旦写好提取几百个器件的C-V曲线就是几分钟的事。我建议先从简单的开始写一个只修改一个参数的脚本跑通了再扩展。提示Cadence的SP仿真在ADE XL里支持参数扫描你可以把W/L设成变量然后在ADE XL里设置扫描范围仿真器会自动跑所有组合。这比写SKILL脚本简单但灵活性差一些。5.4 与其他仿真方法的交叉验证SP仿真提取的C-V曲线最好用其他方法交叉验证一下。我常用的验证方法有两种第一种是用DC仿真提取C-V。在栅极加一个小的AC信号用DC仿真扫偏压然后看栅极电流的虚部。这种方法精度不如SP仿真但可以作为快速检查。第二种是用工艺厂提供的模型参数直接计算C-V。很多工艺库的模型里包含了Cox、Cgd、Cgs等参数你可以用这些参数画一条理论曲线和SP仿真结果对比。如果两条曲线趋势一致但数值有偏差可能是仿真设置的问题如果趋势都不一致那就要检查电路连接了。交叉验证的好处是你能确认SP仿真的结果不是偶然的数值误差而是真实的物理特性。这对于器件建模和工艺评估非常重要。6. 写在最后的一些个人体会SP仿真提取MOS电容这件事说起来简单但真正做对做准需要你对MOS器件的物理、SP仿真的原理、Cadence工具的操作都有比较深的理解。我刚开始做的时候跑出来的曲线自己都不敢信后来一点点排查才慢慢摸清了里面的门道。Port的设置是重中之重。电阻值、DC偏压、端口编号这三个参数任何一个设错曲线就废了。我的建议是每次新建一个testbench先把Port的参数截图保存跑完仿真再对照检查一遍。这个习惯帮我省了很多返工的时间。频率的选择也很关键。不要随便选一个频率就跑先跑一个扫频SP看看Y11的虚部在哪个频率范围内是单调的。选那个范围内的频率结果才可靠。最后C-V曲线提取只是第一步从曲线里提取工艺参数才是真正有价值的部分。氧化层厚度、掺杂浓度、平带电压这些参数直接影响器件的性能和电路的良率。如果你能把SP仿真和参数提取的流程自动化那效率会提升很多。这个内容后续还可以这样扩展把SP仿真和DC仿真结合起来提取界面态密度或者用多频率SP仿真分析MOS电容的频率色散特性。这些方向都很有意思等我有时间再慢慢折腾。
阅读完成 · 觉得有帮助?
咨询建站