瞬态故障

Download Report

Transcript 瞬态故障

数字系统设计及VHDL实践
专题三
集成电路设计流程
主 讲 人:徐向民
单
位:电子信息学院
ICCAD系统概述
 ICCAD系统的发展:
第一代:60年代末:版图编辑和检查。
第二代:80年代初:原理图输入、逻辑模拟向下。
第三代:从RTL级输入向下,包括行为仿真、行为综合、逻辑综合等。
 流行的CAD系统:Cadence, Mentor Graphics, Viewlogic, Compass,
Panda等.
ICCAD系统概述
 ICCAD系统的理想作用:
实现完全的自动化设计,设计出各种各样的电路
 ICCAD系统的实际作用:
设计信息输入:语言等
设计实现:综合器
设计验证:验证系统/电路符合功能/性能要求及设计规则要求
CAD设计过程

整个设计过程就是把高层次的抽象描述逐级向下进行综合、验证、实
现,直到物理级的低层次描述,即掩膜版图。

各设计阶段相互联系,例如,寄存器传输级描述是逻辑综合的输入,
逻辑综合的输出又可以是逻辑模拟和自动版图设计的输入,版图设计
的结果则是版图验证的输入。

ICCAD系统介入了包括系统功能设计、逻辑和电路设计以及版图设计
等在内的集成电路设计的各个环节。
系统描述
综合
逻辑模拟
电路模拟
时序分析
版图设计的CAD工具
计算机辅助测试技术
器件模拟和工艺模拟
电路模拟
 电路设计:根据电路性能确定电路结构和元件参数,没有
自动设计软件,设计人员根据电路性能要求,初步确定电
路结构和元件参数,利用电路模拟软件进行模拟分析,判
断修改
 电路模拟:根据电路的拓扑结构和元件参数将电路问题转
换成适当的数学方程并求解,根据计算结果检验电路设计
的正确性
模拟对象:元件
优点:不需实际元件、可作各种模拟甚至破坏性模拟。
电路模拟
 在集成电路设计中起的作用:
 版图设计前的电路设计,保证电路正确(包括电路结构和元件参数)
 有单元库支持:单元事先经过电路模拟
 无单元库支持的全定制设计:由底向上,首先对单元门电路进行
电路设计、电路模拟,依此进行版图设计,直至整个电路
 后仿真:考虑了寄生参数,由电路模拟预测电路性能
 典型软件:SPICE、HSPICE
电路模拟
下面以SPICE为例介绍以下三个方面的内容。

电路模拟的基本功能

软件基本结构

电路描述
电路模拟的基本功能

可处理的元器件:
电阻、电容、电感、互感.
独立电流源、电压源、四种受控源
传输线
四种器件(二极管、双极管、结型场效应管、MOS)等
电路模拟的基本功能

可完成的分析功能:
 直流分析:典型的是求解直流转移特性(.DC),输入加扫描电压或电
流,求输出和其他节点(元件连接处)电压或支路电流;还
有 .TF、.OP、.SENSE。
 交流分析(.AC):以频率为变量,在不同的频率上求出稳态下输出和
其他节点电压或支路电流的幅值和相位。噪声分析和失真分析。
 瞬态分析(.TRAN):以时间为变量,输入加随时间变化的信号,计算
输出和其节点电压或支路电流的瞬态值。
 温度特性分析(.TEMP):不同温度下进行上述分析,求出电路的温度
特性。
电路模拟软件的基本结构
五部分组成: 输入处理、元器件模型处理、建立电路方程、方程求解和
输出处理。

输入处理:主要完成对输入文件进行编译,词法语法检查、存储输入数
据、其他(元件预处理等)

模型处理:元器件的数学模型:用数学公式描述器件的电流电压特性、
与物理参数和工艺参数的关系。
主要是非线性元件的模型:如MOS、BJT、二极管等
这些模型编入模型库,可调用;也可自行定义后加入模型库

建立电路方程
根据电路结构、元件参数、分析要求,建立方程。
依据的基本原理是欧姆定律和基尔霍夫定律。

方程求解
数值解法:线性代数方程组解法、非线性方程组解法、 常微分方程
组解法。
线性电路的直流分析:选主元的高斯消去法或LU分解法。
非线性电路的直流分析:对非线性元件进行线性化处理。
交流分析:线性电路、非线性电路,处理同上。
瞬态分析:常微分方程组,通过数值积分转换。

输出处理:选择输出内容和输出方式(表格和曲线)
电路描述

较大规模电路,一般用电路图输入,相应的编译程序转换为电路描述语言再进
行模拟。
电路描述语言:描述电路结构、元件参数、器件模型、电路运行环境、分析类
型和输出要求等。

电路描述前首先要画好电路图,节点编号(接地节点零号,其他正整数)。

SPICE的描述语言:
 电路拓扑(网表)
 采用模型(元件属性)
 仿真内容控制
时序分析
 逻辑模拟的基本单元是门或功能块,一定程度上反映竞争、冒险等现
象,模拟速度比SPICE快三个量级,但精度不够,各节点电流、电压
不知。
 电路模拟的基本单元是晶体管、电阻、电容等元器件,可以较精确地
获得电路中各节点的电压或电流,但对于较大的电路,很多的迭代求
解需要很大的存储空间和很长的计算时间。
 时序分析介于两者之间,可提供详细的波形和时序关系,比SPICE快
二个量级,精度低10%,但比带延迟的逻辑模拟要高得多。
时序分析
 器件级时序分析:
 基本原理:简化了器件模型,采用查表技术,关键电学量与工作条
件的关系以表格形式反映。
 算法上:单步迭代,不求解联立方程,超松弛牛顿迭代法加速收敛。
 混合模拟:结合三者特点,对影响电路性能的关键部分进行电路模拟,
其他部分用逻辑模拟和时序分析。
版图设计的CAD工具
 版图设计:根据电路功能和性能要求及工艺限制(线宽、间距等),
设计掩膜版图
输入:可以是原理图、网表;可以直接编辑版图
输出:版图
 版图设计的重要性:
 电路功能和性能的物理实现。
 尺寸减小后,连线延迟直接决定芯片速度。布线方案、从而布局
方案很重要—— 芯片面积、速度。
版图设计的CAD工具

版图设计的目标:连线全部实现,芯片面积最小,性能优化(连线
总延迟最小)。
 CAD工具分类(按工作方式分):自动设计、半自动设计、人工设计。
版图的自动设计

概念:通过CAD软件,将逻辑描述自动转换成版图描述。

典型的IC CAD软件,如Cadence、Mentor、Compass、
Panda等设计系统中都有自动版图设计功能。
版图的自动设计
自动版图设计过程:
单元库
输入
逻辑划分
布图规划
布局
布线
人机交互
设计检验
输出
逻辑划分

概念:功能划分

原则:功能块面积和端子数满足要求,使功能块数目或总的外连接数最小。

基本思想:连接度大的元件放在同一功能块中。

划分算法:简单连接度法、分配法、Lin法等。
布局规则
根据电路网表、估计的芯片的大体面积和形状、各功能块的大
体形状面积、功能块的数目、输入/输出数目等,对设计的电路进行
物理划分和预布局。
先进行初始规划(initialize floorplan),产生输入/输出行,
单元区行以及布线网格等,然后进行行调整、芯片面积调整、布线网
格调整,并进行预布局,初步确定各功能块的形状面积及相对位置、
I/O位置以及芯片形状尺寸,而且可以从总体上考虑电源、地线、数
据通道分布(datapath plan)。
布局

布局概念:按电路功能、性能、几何要求,放置各部件。

目标:芯片面积最小、性能优化。

过程:初始布局、布局迭代改善。

判断标准:连线总长度、布线均匀性。
布线
满足工艺规则、布线层数限制、线宽、线间距限制和各线网可靠绝缘
等,根据电路的连接关系进行连线,100%连通,使芯片面积最小。

布线质量评价:
 布通率100%
 布线面积最小
 布线总长度最小
 通孔数少(解释)
 布线均匀
版图检查与验证
版图
设计规则检查
网表与参数提取
原理图网表
版图网表
后仿真
电学规则检查
网表一致性检查
版图检查与验证

后仿真:考虑版图引入的寄生量的影响,进行再次仿真,保证版图能满足
电路功能和性能的要求。

后仿真对象:
 参数提取程序:提取出实际版图参数和寄生电阻、寄生电容等寄生
参数,进一步生成带寄生参数的器件级网表。
 提取得到寄生参数文件和单元延迟文件结合,通过延迟计算器生成
一个延迟文件,把该延迟文件反标(back-annotation)到网表中。
 通过参数提取直接得到一个与路径延迟相关的延迟文件,进行反标。
测试技术
 测试目的:加工过程中电路筛选,用户验收。
 产生错误的原因:
 芯片加工过程中的物理故障(信号线开路、短路)。
 使用条件或环境引起的故障(器件老化、环境温度、湿度变化或
光、射线等的干扰)。
 故障诊断:
 故障检测和定位:通过加测试向量,观察输出结果,判断。
测试技术
 测试问题:测试向量生成、故障诊断(检测和定位)、可测性设计。
 在建立故障模型的基础上,生成测试向量,利用故障模拟器,计算测
试向量的故障覆盖率,根据获得的故障辞典进行故障定位。
 对于一些难测故障进行可测性设计,使测试生成和故障诊断比较容易
实现.(Design For Test,DFT)
在第4点中,主要讲故障的诊断和可测性设计。
故障诊断
电路故障分为逻辑故障和参数故障两类。
逻辑故障指使电路逻辑功能发生错误的故障;(需要重点考虑的)
参数故障指电路参数的变化引起的故障。
逻辑故障按其随时间的表现形式,可分为“永久故障”(Permanent
Fault)
、“间歇故障”(Intermittent Fault)和“瞬态故障”(Transient Fault)。
故障诊断
在测试时始终存在的故障称为永久故障。永久故障也称为硬故障,常见原因为元件
损坏、线路开路或短路等。
间歇故障时有时无,如线路接触不良就常引起间歇故障。间歇故障需要多次重复测
试才能测出,重复出现的次数由故障的概率决定。对这种故障进行测试和诊断,其
基本方法与永久故障的方法相同。
瞬态故障常由于外界的干扰引起,难以人为重复出现。
研究故障的重点是永久故障。
故障模型
(1)固定型故障(Stuck Faults )
固定1故障(stuck-at-1),s-a-1
固定0故障(stuck-at-0),s-a-0
(2)桥接故障(Bridge Faults )
◆桥接故障:两根或多根信号线间的短接
x1
x2
x3
x1
x2
x3
x1
x2
x3
x1
x2
x3
故障模型
(3)延迟故障(Delay Faults )
◆延迟故障:电路延迟超过允许值而引起的故障。
◆时延测试验证电路中任何通路的传输延迟不超过系统时钟周期。
(4)暂态故障(Temporary Faults )
类型:瞬态故障和间歇性故障.
瞬态故障 :电源干扰和α粒子辐射等原因造成。
间歇性故障:元件参数变化、接插件不可靠等造成。
故障模型
(4)暂态故障(Temporary Faults )
类型:瞬态故障和间歇性故障。
瞬态故障 :电源干扰和α粒子辐射等原因造成。
间歇性故障:元件参数变化、接插件不可靠等造成。
重点:固定型故障(Stuck Faults)
由测试向量和无故障输出向量组成一个测试(Test),即
T1 = { x1 ; z1} = {(0, 1, 1, 1) ; (1)}
T2 = { x2 ; z2} = {(0, 0, 1, 1) ; (0)}
 有时候,也单把测试向量说成一个测试码:
T1 = {(0, 1, 1, 1)}
T2 = {(0, 0, 1, 1)}
在组合电路中,每个测试向量唯一决定一个无故障输出向量,因而每个
测试向量都可以是一个测试。显然,上图的电路最多可以有16个测试。
T1 = {(0, 1, 1, 1) ; (1)}
T2 = {(0, 0, 1, 1) ; (0)}
T3 = {(0, 0, 0, 0) ; (0)}
T4 = {(0, 0, 0, 1) ; (1)}
T5 = {(0, 0, 1, 0) ; (0)}
T6 = {(0, 0, 1, 1) ; (0)}
T7 = {(0, 1, 0, 0) ; (0)}
T8 = {(0, 1, 0, 1) ; (1)}
T9 = {(0, 1, 1, 0) ; (0)}
T10 = {(1, 0, 0, 1) ; (1)}
T11 = {(1, 0, 1, 0) ; (0)}
T12 = {(1, 0, 1, 1) ; (0)}
T13 = {(1, 1, 0, 0) ; (1)}
T14 = {(1, 1, 0, 1) ; (1)}
T15 = {(1, 1, 1, 0) ; (1)}
T16 = {(1, 1, 1, 1) ; (1)}
故障表用来表示故障与测试的关系。上图电路中,共有8个节点,每
个节点有两种可能的固定故障,共有16种故障。其输入端有3个,因而共
有8种测试向量组成测试集Sf。
Sf = { T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 )
T1 = { ( 0, 0, 0 ) ; (0) },
T2 = { ( 0, 0, 1 ) ; (0) },
T3 = { ( 0, 1, 0 ) ; (1) },
T4 = { ( 0, 1, 1 ) ; (1) },
T5= { ( 1, 0, 0 ) ; (0) },
T6 = { ( 1, 0, 1 ) ; (1) },
T7 = { ( 1, 1, 0 ) ; (0) },
T8 = { ( 1, 1, 1 ) ; (0) }
根据测试与故障的关系,可以列出故障表:
重点:固定型故障(Stuck Faults)
根据故障表,进行故障的合并与测试集的压缩:
重点:固定型故障(Stuck Faults)
故障合并后的故障表:
重点:固定型故障(Stuck Faults)
对故障合并后的故障表,再进行测试集压缩:
重点:固定型故障(Stuck Faults)
从前面的讨论看出,故障诊断的主要问题是如何得到一个测试集,
如何迅速、准确地得到测试码,如何判断测试码的有效性,如何保证
所求的测试码尽量简单,是CAD领域的重要课题。
刚刚的例子,我们采用乐穷举测试码的方法求测试集。
但随着电路规模的增加,穷举法不可接受,人们提出了“伪随机数
测试码”、“测试码自动生成算法ATPG”。
用算法生成组合电路测试码的方法有两类:
一、基于故障传播路径的的方法:敏化路径法、D算法
二、基于逻辑表达式的方法:布尔差分法
单路径的敏化法:
用算法生成测试码时一般针对指定故障寻找其测试码。指定的故障包括故障位置
和故障种类。只讨论单固定故障的情况。
对指定故障点的测试码生成算法的基本思想是通过输入端测试向量把故障传播到
输出端,使得正常电路的输出与故障情况的输出结果不同。
注意上面这句话,它是所有测试码生成算法的基本思想,是ATPG的精髓。它要找
一个测试向量或一个测试向量系列,目的是使得有故障和无故障的情况下其输出值
不一致,从而判断有无故障。
以上图为例。对指定的一个固定故障gs-a-1,求其测试向量。
为了把故障传播到外部输出端,要有两个条件:
(1)输入测试向量应能够使得故障点g在正常情况下与故障情况下状态值不同。
称为故障敏化。
(2)有至少一个外部输出端的正常值与有故障时的值不同。为了能做到这一点
,要求从故障点出发能找到一条或几条路径到达输出端,使该路径上每个节点
的正常值与有故障时的值不同。这条路径称为敏化路径(Sensitized Path)。
ATPG的目的就是要找到一个测试向量或测试系列,使得故障点的故障于
正常值不同,同时使故障点到输出之间的路径上各点其有故障时的值与无故
障时的值都不同。因为如果在该路径上某一点一旦值相同,就不能保证输出
端的值也不同。
本例因故障点g有故障值为'1', 要求其正常值为'0'。即要求输入向量使
得g的状态值为'0'。同时,在给定的测试向量下,通过寻找敏化路径来求测
试集的方法称为敏化路径法。
敏化路径法的一种最简单的方法是单路径敏化法。
我们把正常情况下为'0',故障情况下为'1'的信号线状态值记为'0/1' ;同样把正
常为'1',有故障时为'0',记为'1/0'。在图中,因为g点的故障为gs-a-1,故该点的敏
化值应为'0/1'。
当与门的一个输入端的值为'0/1'(或'1/0'),要想使它传播到其输出端,只要把
该与门的其它输入端置为'1' 即可。类似地,各种门传播故障的条件为:
非门:均可传播;
与门、与非门:其它各端置'1';
或门、或非门:其它各端置'0';
在选择路径时,总是只选一条敏化路径,故这种方法称为单路径敏化法。
现在我们看图的例子。首先敏化故障点g,其状态值为‘0/1’。该信号
有两个负载元件Y和Z。选Y作为敏化路径。因为Y是一个与门,应置另一输入
端f为‘1’。这样其输出端y的状态值为‘0/1’。正向操作成功。
现在要求有一个测试输入,使得在正常情况下,g的值为'0',f的值为
'1'。g为三与非门G的输出。g为'0'要求b、c、d的值均为'1'。但b为或非门
F的输入端,b为'1',则F的输出端f的值只能为'0'。这与敏化Y所要求的f的
值为'1'相矛盾。反向计算失败。
现在回溯到正向操作。不选Y而选Z 作为敏化路径。同样要求Z的另一输入
端j的值为'1' ,z的输出状态值为'0/1'。j是或非门I的输出端,要求其输入
端h和e同时为'0'。因d 为'1',使h必为'0',故只要选e为'0'即可。再看其余
的信号端。b为'1'使f为'0',又使Y的输出y为'0'。而F的另一个输入端a的值
无要求,记为'x'。这样所有的信号线上的值都已确定,且无矛盾,反向计算
成功。
于是得到测试向量T = {(x, 1, 1, 1, 0); (0, 0)}, 其故障输出向量为(0,
1)。
当然,如果已开始就选择了Z而不选择Y,则本例不需要回溯。

在敏化算法基础上发展起来的D算法

布尔差分法
可测性设计

前面介绍的测试生成方法,一般都有局限性,不能求出所有故障的测试
,或者虽然可以求出测试,但其时间代价和存储代价令人不可忍受。

随着集成电路规模的迅速膨胀,电路结构也越来越复杂,同时又受芯片
管脚的限制,大量故障变得不可测。为此,人们把视线转向电路系统的设计
过程。如果设计的电路容易测试,容易找到测试码,对测试和测试码生成的
问题便大大简化。

这就是可测性设计(Design for Test, DFT )问题。
可测性设计
可测性设计需要考虑的问题

从可测性设计的目标来说,可测性设计应考虑下列三个方面的问题:
(1)变不可测故障为可测故障;
(2)测试数据生成的时间少;
(3)测试数据少。

另一方面,可测性设计本身增加了电路的复杂性:增加了硬件量,降低
了电路速度,也应作为评价的标准之一。
可测性分析

从前面求故障测试码的算法原理中,我们可以看到,一个电路的可测性问题应该
包括下列两个方面:
(1)要容易由外部输入信号来控制电路中各节点的电平值,以便能够敏化故障和
控制敏化通路上的各控制信号。这种特性反映用测试向量来改变一个节点逻辑状态
的难易程度,称为节点的可控性(Controllability )。
(2)要容易建立故障敏化通路,使内部故障能构传播到外部输出端,以便能够从
外部输出端口观察内部故障是否存在。这种特性反映从外部输出端口观察内部故障
的难易程度,称为可观性(Observability )。

对可控性和可观性的度量可作为可测性的一种度量方法。

可测性分为可控性和可观性两个方面。通俗地说,可控性是指可以找到测试码控
制该故障,即可从输入端控制;而可观性则表示故障可以传播到输出端,即可从输
出端观察。
可测性设计
设置新的观察点

从可测性分析可以看到,可测性体现在可控性和可观性两个方面。设置观
察点和控制点是最简单的提高可测性的方法。

在故障难以传播到外部输出端的情况下,如果在能反映该故障的节点引出
一条输出线,就改善了可观性。所增加的输出线称为观察点。观察点的设置
可以减少测试数据,也可以使原来不可测故障成为可测故障。
增设控制点
增加输入线称为设置控制点。设置控制点后,可以控制有关元件的输出值
,从而简化测试向量的生成过程。

下图所示的电路中,a和b是专为测试而增设的控制点。当a、b不存在时,
电路逻辑功能为:
增设控制点

 x 2 x 3是一个冗余项,即G1是冗余部分电路。这一点的故障不可测。增加控制点a,
b后,令a='0', b='1',就可以求得冗余部分故障的测试。当a='1', b='0'时,可以
求得非冗余部分故障的测试。而当a=b='1'时,电路与原来的电路功能相同。
对可控性较差的故障设置控制线,对可观性较差的故障设置观察线,可以方便
地解决可测性问题。但对于较大规模的电路来说,由于引脚的限制,并不是总可以
解决的。另一个缺点是会大量增加硬件开销。
可测性设计
其他有关可测性设计方面的内容

时序电路的测试码的生成。

内建自测试设计(Built In Self Test,BIST)。
内建自测试的设计

内建自测试是在集成电路芯片内增加产生激励和做测试分析的电路,使芯片不但能
完成逻辑功能,还能在外部给定测试方式命令时进行自我测试分析,并输出结果。

这种结构的电路既不需要准备测试码,也不需要专门的测试设备。电路中包含有测
试码生成部件、扫描测试电路和测试结果输出部件。
内建自测试技术应用也非常广泛,其特点是不需要外加测试向量,而由电路本身产
生,测试结果(合格与不合格)也直接由电路输出。不占用过多的引脚,使用非常方
便。缺点同样也是增加了相当规模的硬件开销。
内建自测试技术一般使用伪随机测试码。电路中的伪随机数产生器产生伪随机数测
试码,加在扫描电路中。在扫描方式下输出测试结果。其测试结果不是输出全部测试
结果数据,而是由数据压缩器将数据压缩后输出。数据压缩的方法采用特征分析法
(Signature Analysis )。
器件模拟
 集成电路的基础是器件,但目前不能从电学性能和工艺水平自动设计
器件,只能进行模拟分析。
 器件模拟概念:给定器件结构和掺杂分布,采用数值方法直接求解器
件的基本方程,得到DC、AC、瞬态特性和某些电学参数。
 器件模拟作用:
 结构、工艺参数对器件性能的影响——性能预测。
 物理机制研究:分析无法或难以测量的器件性能。
 可为SPICE模拟提供模型参数。
 与工艺模拟集成可直接分析工艺条件对器件性能的影响。
器件模拟
 基本功能
 可处理的器件类型:二极管、BJT、MOS、多层结构、光电器件、
可编程器件等
 可模拟的材料:多种,不限于硅、二氧化硅
 可完成的电学分析:DC、AC、瞬态、热载流子、光电等等
 可获得的电学特性和电参数
 端特性:I-V;电容-V等
 内部特性:浓度分布、电势电场分布等
 电参数:阈值电压、亚阈斜率、薄层电阻等
工艺模拟
 实验流片来确定工艺参数,周期长,成本高,工艺模拟可改善这一问题
 工艺模拟概念:对工艺过程建立数学模型,在某些已知工艺参数的情况下,
对工艺过程进行数值求解,计算经过该工序后的杂质浓度分布、结构特性
变化(厚度和宽度变化)或应力变化(氧化、薄膜淀积、热过程等引起)。
 作用
 优化工艺流程、工艺条件;
 预测工艺参数变化对工艺结果的影响
 缩短加工周期,提高成品率
 软件支持:SUPREM;SUPREM-IV
工艺模拟
 基本内容
 可处理的工艺过程:离子注入、预淀积、氧化、扩散、外延、低温
淀积、光刻、腐蚀等
 高温过程:杂质分布;氧化、外延还需考虑厚度变化、界面移动
 非高温过程:结构变化,(除离子注入)
 可处理多层结构,可处理的材料:单晶硅、多晶硅、二氧化硅、氮
化硅、氮化氧硅、钛及钛硅化物、钨及钨硅化物、光刻胶、铝等
 可掺杂的杂质:硼、磷、砷、锑、镓、铟、铝
 工艺模型
 输出:厚度、杂质分布、电参数(薄层电阻、电导率等)