设计指南 2878

采用借助Excel的统计学电路分析进行良率分析


摘要 : 本文向广大电路设计人员介绍了一种仅使用Excel®电子表格对几乎所有电路进行全面统计学分析的简单方法。文中给出了如何产生用于良率分析的随机元件值,介绍了概率分布函数(pdf)和累积分布函数(cdf)。对于一些特殊情况,介绍了一种采用均匀分布随机数与测得的cdf产生任意分布随机数的简单方法。这些方法对于深入了解现实世界环境中所有电路的运行情况以及确保拥有较高的制造良率而言十分有用。

引言

设计在现实世界中运行的电路具有一定的挑战性。仅仅使电路设计符合规范目标是远远不够的,精确地预测一定范围条件下电路的表现也很重要,包括各组件的真实值变化。此过程通常称为电路良率分析。一旦较好地了解了这种表现,设计人员便可以有效地利用预计的制造容差来选择电路和组件进行设计。

众所周知,正常运行的电路,即使电路参数发生变化,其构建、测试和支持成本也相对较低。

本文阐述了容差的使用,以进行良率分析预测,即有多少以不同组件值构建的电路能够符合规格要求。要想进行有效的良率分析,您必须要拥有:
  • 较好的电路模型,包括重要组件、杂散等。
  • 较好的预计组件值变化模型
  • 通过/未通过的定义或规格
利用这三种输入,您可以进行一些必要的计算,来预测电路良率。用于进行这些计算的工具其效用各不相同,取决于问题的复杂程度和您的洞察力。下面表1中,对一些方法进行了总结。

表1. 良率分析方法
Yield Analysis
Tool Technique Best Use
SPICE Multiple simulations Brute-force proof circuit will work; awkward for gaining insight into a topic
SPICE SENS sensitivity analysis Brute-force method; good for getting insight about what components matter
Exact closed-form analysis Equation for the circuit performance are used to calculate sensitivities; equations for component variations and their sensitivities are used to calculate the probability of meeting spec Very simple problems only; gives good insight into the technique
Microsoft® Excel, MathCAD Create cdfs with manufacturing data; to model a circuit Intermediate complexity; can incorporate real-world data; gives good insight into the problem

本文将介绍如何使用Microsoft Excel软件进行良率分析,讨论了一些诸如概率分布函数(pdf)之类的基本良率分析概念,阐述了如何生成随机组件值,得到理想的概率分布。

利用组件值及设计方程式确定良率

电路由各组件组成。这些组件共同组成电路,其整体表现遵循某种规则或设计方程式。要进行良率分析,设计人员必须了解组件值变化和设计方程式。

例如,就下面图1所示的简单增益电路而言,已知Rf和Rg的电阻后(假设为一个理想的运算放大器),就可以很容易地计算出该运算放大器的增益。然而,在现实世界中,如果我们构建该电路数百次,组件Rf和Rg在每次电路构建时的值会有所不同。接下来当对该电路进行测试时,会发现其增益在每次电路构建时也各不相同。在该示例电路中,发生组件值变化的是电阻容差。增益的设计方程式为:
增益 = - Rf/Rg
例如,如果我们选取Rf = 1kΩ并且Rg = 1kΩ,则增益为-1。

图1. 反相运算放大器示例
图1. 反相运算放大器示例

最后,该电路的规格可能会为:增益 = -1 ± 0.1V/V。

组件PDF和CDF

通常设计人员无法预测某个组件将会出现的值。但是凭借经验,我们可以预测有多少组件或者多少次产品运行会出现某种表现。对于这种表现的描述称为一个pdf或者概率分布函数。

pdf是一种描述随机变量X的可能取值x与某个特定值出现概率对比关系的曲线或函数。例如,在本文的示例电路中,我们描述了Rf电阻值与一批电阻中出现该电阻值概率的对比关系。

cdf为累积分布函数,为随机变量X取一个小于或等于某个值x的概率。也就是说,如果我们拥有pdf分布,就可以利用积分计算出cdf。您可能已使用了高斯或正态pdf,其由两个参数定义:平均值(中心值)和标准偏差(约等于峰值宽度)。图2描述了正态分布的pdf和cdf。

图2. PDF和CDF示例
图2. PDF和CDF示例

正态分布适合于许多现实世界情况,并且更易于数学实现。但是,请注意!正态分布可能没有描述出您的某种特殊情况。例如,如果您正使用20%容差的电阻,您会发现5%的电阻被全部去除,并被出售给其他人。这种情况下实际的pdf如图3所示。

图3. 分类各部件的分布情况
图3. 分类各部件的分布情况

利用这种分布,测定电阻值与电阻标签一致的概率为零!同具有正态分布组件值的电路相比,您的电路会表现得相当差。另外,获得5%电阻的设计人员会发现其工作比预计的情况要好,因为他的分布对尾数进行了取舍。

我们从中得到的经验是,有许多有用的分布可供选择,而如何选择这些分布非常重要。不要把自己局限于正态分布这一种。

在Excel中产生随机组件值

如果我们能够生成一系列随机数,那么我们就可以用这些数值来代表生产中的电阻值。然后,我们可以用这些值和电路方程式一起来确定电路的增益,将其与规范要求相对比,并计算出良率。下列各图给出了具体的结果。就20次构建、±20%的增益规范而言,良率为80% (每次运行的结果会略有不同)。

图4. 生成随机电阻值以及得到的增益
图4. 生成随机电阻值以及得到的增益

上面的分析中,每个电阻均使用了一种均匀分布随机变量。这种均匀分布下,取两个极限值之间任何电阻值的概率都一样。您可以在Excel*¹中使用两种方法来生成电阻值:选择Tools Data Analysis Random Number Generation,或使用RAND()函数(请参考Excel中的RANDBETWEEN())。如果您使用RAND()或RANDBETWEEN()函数方法,电子表格软件每次计算便重新产生一个值(按F9键)。

RAND()给出的是大于等于0并且小于1的随机数。如需获得大于等于1并且小于b的随机数,请使用RAND() × (b-a) + a。RANDBETWEEN(a,b)给出的是一个大于等于a并且小于等于b的整数(假设a和b均为整数),如果a和b是非整数,RANDBETWEEN(a,b)将得到介于a和b之间的一个整数值。

不幸的是,大多数组件均遵循均匀分布以外的分布。但是,这类分析在估计最差性能时较为快速和有效。

正态分布PDF和CDF

Excel提供了大量其它函数,可以帮助我们生成更为真实的pdf。为了生成一种正态或高斯曲线,我们使用了内置函数NORMDIST()。例如,对于平均值 = 0并且标准偏差 = 1的正态分布而言,“=NORMDIST($A7,0,1,FALSE)”返回x = 存储于单元格A7的概率。

标准偏差(通常被称为Σ)描述了pdf函数峰值的宽度,并相当于第二个导数改变标志的点。这就是用于生成图2所示pdf的方法。通过将“FALSE”改变为“TRUE”,您将会得到cdf的各个值。

如果您没有更好的数据,那么就假设组件的规定百分比容差为±3标准偏差。例如,一个±10%部件会具有±10/3 = ±3.33% (标称值)的标准偏差。

尽管cdf和pdf正确地描述了正态随机变量,但是它们不生成随机组件值。理想状态下,我们会喜欢使用像“RANDNORM()”这样的函数,其返回的随机数字符合正态分布。

生成正态分布随机数

如上所述,Excel没有提供RANDNORM()函数,但是一些附加函数提供了这种必要功能。要想生成10个1kΩ标称值并具有±20%生产取值范围的电阻值,请遵循以下步骤:
  1. 平均数 = 1kΩ标称值,标准偏差为1kΩ的±20%除以3 = ±200/3 = ±66.67Ω。
  2. 使用内置函数生成一个数列,选择Tools Data Analysis Random Number Generation。对话框如图5所示。
图5. 随机数生成对话框
图5. 随机数生成对话框

请注意,步骤1中计算得到了平均数和标准偏差。输入数字10,表示想要生成的随机数(值)个数。输出范围给出了Excel将计算值放入电子表格的单元格。输出结果如图6所示。

图6. Excel生成的随机组件值
图6. Excel生成的随机组件值

其它有用的内置分布

您可能已经注意到,在Tools Data Analysis Random Number对话框中,Excel为您列举出了许多种分布供您选择。这些分布包括正态分布、均匀分布、二项式分布、伯努利分布、离散分布以及其它几种分布。前面所述的均匀分布是一种估计最差性能的简单、有效的方法。二项式产生一种只有2个值(例如:1和0)的分布,其常见于逻辑电路中。一本好的统计学书籍和一些实验可以帮助您选择一种正确的分布。

如果您的分布同可用的分布都不匹配怎么办呢? 制作属于您自己的随机数生成器!我们将在下一节中对此进行介绍。

生成与生产数据相匹配的随机数

有时,没有一种内置或标准pdf函数适合于您电路的情况。此外,在分类电阻情况(参考图3)中所看到的那样,非标准分布的影响极其明显。

这种情况下,我们会想要绘制一种分布、利用生产测试数据创建一种分布或者使用计算数据创建一种分布,然后生成符合这种分布的随机数,以进行良率分析。

创建此类分布以及相应的随机数需要如下几个步骤(如后面图7所示)。
  1. 测量大量的真实组件或者通过计算来生成数据。您也许能够从进货检查过程获得这种数据。这种原始数据将被用于创建pdf。
  2. 将数据制作成柱状图,并根据采样总数进行标准化。换句话就是说,所有概率的和为1。这种标准化的柱状图便是我们所希望的随机数遵循的pdf。
  3. 对该pdf求积分创建cdf。确认单调达到最大值1。
  4. 生成一个介于0和1之间的均匀分布随机数:y~UY(0,1)。
  5. 将该均匀分布随机数用作cdf上y = P(X ≤ x)时cdf的指数,并记下x的值。
  6. 重复步骤4和5,生成所有您需要的x随机值。
图7. 生成同生产数据相匹配的随机数
图7. 生成同生产数据相匹配的随机数

结论

本文中,我们了解了如何生成良率分析所使用的随机组件值。对于许多常见分布来说,Excel提供了一些让这一过程更加快速、简单的内置函数。对一些特殊情况来说,本文介绍了一种利用均匀分布随机数和测定cdf来生成任意分布随机数的简单方法。



¹如果您使用的是2003或更高版本的Excel,请确认您已开启了内置控件和分析工具库。然后,可以使用以下路径:Data Analysis Group Data Analysis Random Number Generator。