背景介绍:我们在第六期详细介绍过PSpice AD的蒙特卡罗分析,在瞬态分析、交流扫描分析的基础上都可以进阶蒙特卡罗分析。
而PSpice AA 高级分析模块中包含的蒙特卡罗工具与PSpice AD模块中的功能相同,但在分析能力和结果显示等方面上有了明显的改进,主要包含:
(1)显示 MC 分析过程中每一次模拟仿真得到的电路特性值
(2)对 MC 分析得到的大批电路特性原始数据进行统计分析
(3)以概率分布密度函数图和累计分布函数曲线两种方式直观地显示分析结果
(4)根据对电路特性的规范要求预测生产成品率
接下来就来介绍一下如何进行PSpice AA蒙特卡罗分析。
一、蒙特卡罗运行参数设置
步骤一:首先打开先前灵敏度分析的工程,在调用蒙特卡罗工具前,除了对元器件设置容差外,还需要对元器件容差的分布参数进行设置。对于无源元件电阻 R、电容 C 等常用的元件,可以双击元件符号,出现如图1所示的元器件属性框图,修改想要的TOLERANCE(容差)和DIST(分布参数)。
图1 元器件属性框图
步骤二:在 DIST(分布参数设置)栏内默认设置了该电阻容差分布参数是 FLAT(平均分布),用户可以直接点击 FLAT 进行修改。确认保存后,系统就会按照用户定义的分布参数类型进行蒙特卡罗分析。
PSpice 提供四种标准分布类型:
(1)均匀分布(FLAT):也叫矩形分布,它是对称概率分布,在相同长度间隔的分布概率是等可能的。 也就是说任一元器件在容差的上下限范围内以相等的概率出现。实际上这种分布是很少的,但因为简单,所以默认分布都是 FLAT。
(2)高斯分布(GAUSS):也叫正态分布,正态曲线两头低,中间高,左右对称,因其曲线呈钟形,因此也称之为钟形曲线。在多数情况下,用正态分布足以近似实际的概率分布,所以在容差分布中最常用的就是 GAUSS。
(3)双峰分布(BSIMG): 指分布具有两个相当相等的高点,在正负容差边界处出现的概率最大。
(4)斜峰分布(SKEW):也称为偏态分布,表示在正负容差两个方向出现的概率不相等。
步骤三:容差参数和分布参数均设置好后,选择执行 PSpice→Advanced Analysis→Monte Carlo,即调用蒙特卡罗工具。屏幕显示转为蒙特卡罗工具窗口,点击“Click here to import a measurement created within PSpice”,如图 2所示。
图2 调用蒙特卡罗工具
步骤四:通过弹出的“Import Measurement(s)”窗口,依次将灵敏度分析时的两个电路特性函数添加至电路特性函数统计结果区(Statistical Information),如图3所示。
图3 添加电路特性函数
步骤五:在蒙特卡罗工具的窗口下,执行 Edit→Profile Setting,设置与蒙特卡罗分析相关的参数。如图4所示。
图4 设置蒙特卡罗参数
Number of Runs:用于设置整个蒙特卡罗分析工程包括的模拟分析次数;要注意的是,如果模拟分析次数太少,分析结果将不能反映实际大生产情况,所以建议选用的模拟次数不要少于 400 次。
Starting Run Number:默认情况下,本项参数设置为 1,即蒙特卡罗分析时第一次采用标称值模拟分析,然后按照随机数序列完成整个蒙特卡罗分析过程。在完成一次蒙特卡罗全过程分析后,用户可以根据实际情况,改变本项参数设置,确定从某一次运行设置重新开始分析。
Random Seed Value:本项设置的数值用于指定蒙特卡罗分析中产生随机数时的“种子数”。随机数序列取决于产生随机数时采用的“种子数”。即使元器件的标称值和容差保持不变,采用不同的种子数将会产生不同系列的随机数。
Number of Bins:蒙特卡罗分析结束后,采用直方图显示电路特性参数统计分布情况时,将全部数据分成若干个区间进行统计处理。本项参数设置用于确定采用的区间数。系统默认值是 10。
步骤六:运行参数设置好后,选择执行 Run→Start Monte Carlo 命令,或是直接点击工具栏中运行图标,完成蒙特卡罗分析后,窗口中将通过曲线和数据表格显示分析结果。如图5所示。
图5 运行蒙特卡罗分析
在统计结果数据区中包含 13 列,其中很多列和之前优化分析的界面相同,这里就不赘述。其中:
² Yield 列:显示预测生产的成品率。是指 Cursor Min 和 Cursor Max 设置的上下限范围内数据总个数与原始数据个数的比值(%)。将增益范围放在 4.5dB 至 6.5dB 之间,带宽最小值放在 200MHz,可以看出目前增益的成品率为 94%,带宽为 81%。
² Mean 列:给出该行电路特性函数所有原始数据的平均值。
² Std Dev 列:给出该行电路特性函数所有蒙特卡罗分析原始数据的标准偏差值。
² 3 Sigma 列:给出该行电路特性函数所有原始数据中,数值在均值加减 3 倍标准偏差值范围内的数据个数与原始数据个数之比。
² 6 Sigma 列:给出该行电路特性函数所有原始数据中,数值在均值加减 6 倍标准偏差值范围内的数据个数与原始数据个数之比。
² Median 列:给出该行电路特性函数所有分析数据中中位数的原始数据,比如运行次数是 11 次,那么中位数就是第 6 次的数据,如果运行次数是 100 次,那么就是第 50 次和 51 次数据的平均数。
蒙特卡罗分析结束后,可以采用 4 种方式显示分析结果,包括蒙特卡罗分析过程中每次模拟分析结果数据、对所有数据的统计处理结果,以及采用分布概率密度函数(PDF)和累积分布函数(CDF)两种形式显示表示电路特性统计分布曲线。
二、蒙特卡罗的结果分析
步骤一:在图5 所示的窗口中下半部分是分析结果数据显示区,用户可以查阅原始数据。点击数据显示区中“Raw Meas”的标签栏,出现电路特性函数原始数据的排序结果。如图6所示。一共有 100 次模拟分析的结果原始数据。
图6 模拟分析结果原始数据
步骤二:双击图6 的其中一行的第一列单元格,该行数据就将从小到大排列,如图7所示,看出增益最小值出现在第 88 次模拟分析;若再次双击该行第一列单元格,则该行电路特性函数数据显示从大到小的排列方式。
图7 模拟分析数据排列
步骤三:根据排序的分析结果,可以通过更改图4中的“Starting run number”参数设置,确定从某一次运行设置开始重新分析,提高分析效率,无需从头开始分析。如果用户希望进一步利用这些原始数据,还可以直接点击某一行使用快捷键菜单中的copy,或是直接按住Ctrl+C键,将处于选中状态的那一行数据全部复制到剪切板中,然后在其它应用程序(比如word或excel)中执行“粘贴”(Paste)即可使用这些数据。
步骤四:原始数据表中显示的是分析结果数据,如果执行 View→Log File→Monte Carlo 命令,屏幕上将以文本格式显示出蒙特卡罗分析过程中每一次模拟仿真采用的元器件参数值。图8 给出第2次模拟采用的各元器件值,以及电路增益的函数值。
图8 元器件参数值
三、小结
本节主要介绍了如何使用PSpiceAA 蒙特卡罗分析,通过分析预测成品率,评估更严格的器件容差是否会对我们的产品产生更好的影响,以及是否使用容差较松的器件也可达到100%的成品率。我们可以轻松兼顾设计成本,同时提高大批量生产的成品率。