本节摘要:单次仿真是理想世界的故事;量产世界里的电阻有百分之一的散布、晶体管参数随工艺漂移。本节讲两种统计手法的分工与用法——蒙特卡洛回答"散布多大、良率多少",工艺角分析回答"最坏情况下还过不过",并用 RC 滤波器的蒙特卡洛实例演示完整流程。
前几节的所有结论都建立在一组精确参数上:一千欧就是一千欧,一百纳法就是一百纳法。真实世界不如此。电阻按标称值加公差出售,电容散布更大,片上晶体管的阈值电压随晶圆位置漂移。一个在标称参数下恰到好处的设计,量产时可能有一成产品越出规格。统计仿真的任务就是把"散布"提前搬进仿真器:与其等测试线告诉你良率,不如在设计阶段就让几百个"虚拟批次"先跑一遍。
蒙特卡洛的思路直白:给每个元件的参数装上分布(正态或均匀),仿真器按分布随机抽样,跑成百上千次仿真,统计输出指标落在规格内的比例——这就是估算良率。商业仿真器用一行语句启动:
* HSPICE 风格的蒙特卡洛语句 .PARAM rc=AGAUSS(100n, 0.05, 1) .MC TRAN 200 AC VDB(out) MAXIMUM RESULT=mc_out
第一行给电容参数挂上高斯分布:标称一百纳法、相对散布百分之五;第二行要求重复两百次交流分析,每次记录带宽峰值。开源的 ngspice 没有这行简化语句,但用 .control 脚本循环一样能做:写一个循环体,每次迭代里用 alterparam 打乱参数、reset 重置电路、跑分析、收集指标,循环结束统计。语法方言不同,思想完全一致。
* 两百次蒙特卡洛的带宽统计(示意输出) mean = 1.031 kHz sigma = 61.5 Hz min = 0.884 kHz max = 1.186 kHz yield(<1.2 kHz) = 99.2%
读这份统计表的正确姿势:先看均值是否漂移——均值离标称一千五百九十赫兹远,说明参数散布进入了非线性区,得回头查设计余量;再看西格玛与规格限的距离,规格限至少要离均值三个西格玛,良率才有工程意义上的保障;最后看最差点离规格限多远,它决定了你需要给设计留多少余量。直方图是这一切的可视化:横轴是带宽,纵轴是落在该区间的批次数,形状偏斜或双峰都值得警惕——双峰往往意味着参数进入了两块截然不同的工作区。

蒙特卡洛回答散布,工艺角回答极端。晶圆制造中,氧化层厚度、掺杂浓度等工艺参数整体偏快或偏慢,于是有了五个标准角:TT(典型)、FF(快快)、SS(慢慢)、FS、SF——两个字母分别代表 NMOS 与 PMOS 的速度倾向。工艺厂为每个角提供整套模型卡,设计者把同一电路在五个角下各跑一遍:
.LIB "process.lib" SS .TRAN 2u 2m * 换角重跑:改为 FF、TT、FS、SF 各一遍
工艺角检查是数字后端与模拟设计的共同关卡:把五个角、电压上下限、温度高低限组合起来(所谓 PVT 扫描),只要有一格不达标,设计就不能交付。它与蒙特卡洛不是替代关系——蒙特卡洛是概率视角,告诉你良率百分之几;工艺角是确定性视角,告诉你最坏情况准不准。严谨的做法是两者都做:工艺角保住下限,蒙特卡洛量化散布。
统计之外还有一类"随时间变坏"的问题:电迁移让金属连线变细、偏置让阈值电压缓慢漂移、介质在高压下老化。现代仿真器支持在器件模型上叠加老化参数,把"用三年后"的电路提前仿真出来。对汽车电子、工业电源这类长寿命产品,寿命终点仿真已经进入交付清单。手法上仍是统计分析——把老化漂移量当成新的随机变量,套路与前文一致。
至此三大分析与统计方法已成体系。下一章深入器件内部:模型卡里的 VTO、KP、LAMBDA 到底控制什么曲线。
看你要回答的问题。估计良率到一个数量级精度,几百次起步;要分辨百分之九十九与百分之九十九点九的良率差异,得数千次。实用策略是两段式:先三百次粗扫看分布形态与余量,若规格限离均值三个西格玛开外,结论已够;若贴近规格限,再加到三千次细化。样本翻十倍,置信区间的收窄只接近三倍——统计规律决定了精细良率注定昂贵。
不行,但有梯度。电阻电容的公差分布,供应商数据手册通常给正态参数;片上器件的失配模型,工艺厂的设计手册会提供统计模型卡;实在没有数据时,用公差极限做均匀分布的保守估计,并在报告里注明假设。把"分布假设"写进仿真记录,与把"模型版本"写进记录同等重要——散布假设错,良率结论全错。
标准做法是网格扫描:五个工艺角乘电压上下限乘温度高低限,再加典型组合,构成常见的基础矩阵。追求严谨时把最坏组合再做蒙特卡洛。矩阵规模容易失控,工程取舍是"角与温度交叉,电压取两端":模拟电路对温度最敏感,数字时序对工艺角最敏感,把预算花在各自的敏感轴上。
给本章的 RC 低通补一次统计体检:给电阻挂百分之一公差、电容挂百分之五公差,跑三百次蒙特卡洛,统计转折频率的散布;再单独把电容公差设为零,看散布缩多少,确认主导公差源。这个实验做完,"哪个元件在决定电路的精度"就不再是一句口号,而是你亲手算出的数字。
现代商业工具支持可靠性仿真:在器件模型上叠加电迁移、热载流子、偏置温度不稳定性等老化机制,把"使用若干年后"的参数漂移折进仿真。输出形式仍是统计的——老化本身就有散布,所以老化的终点分析通常与蒙特卡洛联用。汽车与工业产品对此有硬性要求,消费类设计也常在关键偏置电路上做一遍,确认寿命终点的余量还剩多少。
把统计语言翻译成业务语言:不说"西格玛余量二点五",说"每万件约有几十件会超出规格,主因是某元件公差,改进方向是把它的公差收紧到某档或调整设计把余量放大"。一张直方图加一句结论,胜过整页的统计学术语。仿真工程师的报告功力,一半体现在这种翻译上。