VHDL复杂数字系统设计 教学课件 ppt 作者 金西 第6-8章 第8章

上传人:E**** 文档编号:89350411 上传时间:2019-05-23 格式:PPT 页数:111 大小:1.04MB
返回 下载 相关 举报
VHDL复杂数字系统设计 教学课件 ppt 作者 金西 第6-8章 第8章_第1页
第1页 / 共111页
VHDL复杂数字系统设计 教学课件 ppt 作者 金西 第6-8章 第8章_第2页
第2页 / 共111页
VHDL复杂数字系统设计 教学课件 ppt 作者 金西 第6-8章 第8章_第3页
第3页 / 共111页
VHDL复杂数字系统设计 教学课件 ppt 作者 金西 第6-8章 第8章_第4页
第4页 / 共111页
VHDL复杂数字系统设计 教学课件 ppt 作者 金西 第6-8章 第8章_第5页
第5页 / 共111页
点击查看更多>>
资源描述

《VHDL复杂数字系统设计 教学课件 ppt 作者 金西 第6-8章 第8章》由会员分享,可在线阅读,更多相关《VHDL复杂数字系统设计 教学课件 ppt 作者 金西 第6-8章 第8章(111页珍藏版)》请在金锄头文库上搜索。

1、第八章 测试技术与物理仿真,8.1 测试向量的生成 8.2 可测试性设计 8.3 物理仿真 8.4 测试技术的新发展 复习思考题,8.1 测试向量的生成,8.1.1 测试的基本概念 在数字系统的设计、生产过程中,测试和功能验证是两个容易混淆的不同概念。测试是为了剔除生产过程中产生的废品, 而功能验证的目的在于证明电路设计的正确性。理论上,功能验证应该包含成品测试。数字电路总能够采用穷尽其内部状态组合的办法彻底测试其正确性,但事实上,这种方法是不可行的。一方面合格的芯片并不一定是无故障的芯片;另一方面,用功能验证取代测试作为筛选成品的手段本身就不可能实现。 例如,一个普通的32位加法器,其输入共

2、有65个(A、B各占32, 另加一个Cin),为了验证这个器件的加法功能对所有的输入组合都是正确的, 需要对265种输入激励进行测试。,假定对一种输入激励进行测试需要1 ns时间,那么,完成整个芯片的测试则需要约1000 年时间。这还是一个最简单的组合逻辑电路,它不包含任何内部状态。对于功能强大的复杂数字系统芯片,想通过测试设备全面彻底地进行功能验证是根本不可能的,目前芯片的功能验证需要在系统中期测试过程时逐步地发现问题。 测试与故障诊断也是不同概念。诊断不但要判断电路中是否存在故障,而且要判断电路中的故障发生在什么位置, 以便修改设计。芯片测试的主要目的是判断是否存在故障, 这样做, 在很大

3、程度上简化了集成电路测试的难度。,1. 故障 所谓故障,指的是集成电路不能正常工作。使数字系统产生故障的原因有两类:一类是设计原因,如设计中存在竞争冒险,在某些情况下,电路可以正常工作,而在另一些条件下电路则不能正常工作;另一类是物理原因, 如制造过程中局部缺陷造成的元件开路、短路、器件延时过大等。测试主要检测物理原因造成的故障,对测试目的来讲, 重要的不是引起故障的物理原因, 而是故障在数字系统中所表现出来的特征。 故障可以分为逻辑故障和参数故障。所谓逻辑故障,就是导致一个电路单元或输入信号的逻辑函数变为某些其它函数的故障;而参数故障则是改变了电路参数值的大小,引起诸如电路速度、电流、电压等

4、参数的变化。参数故障中,影响电路元件工作速度的故障称为延迟故障。一般来说,延迟故障只影响电路的定时操作, 它可能引起冒险或竞争现象。,2. 测试码与测试向量 能够检测出电路中某个故障的输入激励,称作该故障的测试码。组合逻辑电路的测试码只是输入信号的一种赋值组合,时序逻辑电路的测试码是输入信号的若干种赋值组合的有序排列,有时称为测试序列或测试向量。,图 8-1 故障模型初始示例图,3. 故障模型 (1) 固定故障。这是逻辑故障最常见的故障模型,它是指电路中某个信号线的逻辑电平固定不变。在图8-2所示固定故障示意图中,如果该电平为固定低电平,则称故障为固定0故障(Stuck-at-0,记为S-A-

5、0);如果该电平为固定高电平, 则称故障为固定故障(Stuck-at-1,记为S-A-1)。这种故障类型概括了一般的物理故障, 如对电源或地短路、电源线开路、TTL门的输入端开路、输出管烧坏的故障等。若电路中有一处或多处存在固定型故障则称为多固定型故障,一个实用的测试码生成系统应能处理多固定型故障。,图 8-2 固定故障示意图,(2) 桥接故障。 当逻辑电路中的某两条信号线发生短路时, 常会产生信号“线与”、 “线或”的效果,从而改变器件的逻辑关系。桥接故障也可能使电路构成反馈回路,使组合电路变成时序电路,这就给分析带来了很大的困难,如图8-3所示的h和e短路情况。,图 8-3 桥接故障示意图

6、,(3) 开路故障。开路故障指连线中某处发生如图8-4所示的断开现象。,图 8-4 开路故障示意图,在类似如图8-5所示的CMOS电路中二输入或非门, 当Q4管输入开路,x、 y为“10”时,输出z呈高阻状态,并由于输出电容关系而保持前一个输出值。这时该电路成为一个动态的锁存器,这样的故障一般只能用开关级模型进行处理。 ,图 8-5 CMOS NOR电路,(4) 交叉点故障。 在可编程逻辑阵列中,每个交叉点上都固有一个器件(二极管或三极管),即使不使用,它也是存在的。 通过对每个器件的连接编程(栅极开路或连通),来获得所希望的逻辑功能。在一个PLA中,多连或少连一个器件都会引起交叉点故障。虽然

7、其中的大部分可用固定故障来模拟,但仍然有一些交叉点故障不能用固定故障来模拟。 (5) 时滞故障模型。电路在低频时工作正常,而随着频率的升高,元件的延迟时间有可能超过规定的值,从而导致时序配合上的错误, 发生时滞故障。,(6) 冗余故障。这类故障要么它是不可激活的,要么它是无法检测出来的,其特点是该故障不影响逻辑门的功能。 在实际电路中,错误往往是由多个故障引起的。一个有n根信号线的电路,会有2n个单固定故障,有3n-1种组合的多固定故障。若要考虑其它故障模型, 则多故障的种类就更多,这样使电路的故障分析难以进行。因此,目前大多数计算机辅助测试生成系统都主要考虑单固定故障,即假设电路中只有一个固

8、定故障源。实践证明,用这样的模型产生的测试码将覆盖绝大部分其它类型的故障和多故障。,8.1.2 故障仿真 复杂数字系统芯片的测试是用自动测试设备(ATE, Automatic Test Equipment)来完成的。通过适当编程,这类设备能够自动装载、 测试并按合格与否将被测器件分类。通常ATE都备有专门存放测试激励信号和预期输出结果(测试图形)的存储单元,容量从每管脚16 KB到32 MB不等。测试设备中存储的测试图形是集成电路设计者提供给制造者的重要数据,制造商使用这些测试图形对集成电路进行测试并作为芯片是否合格的依据。测试向量的优劣取决于其故障覆盖率。,故障覆盖率定义为:,在理想情况下,

9、故障覆盖率应该能达到100%,实际上这一目标并不容易实现,除了芯片本身可能包含不可测点之外,测试向量长度也限制了故障覆盖率。 理论上, 数字逻辑电路可以靠穷尽其输入及内部状态的方式完全测试, 但这需要的测试时间是天文数字。 设计系统级芯片会用到很多种类型线路和IP核,长期以来在设计阶段,测试覆盖率一直是测试设计关心的重要课题,如今在一个芯片中包含了如此多种类型的线路, 更为解决测试覆盖率问题增加了难度。,除了测试时间之外,测试设备存储单元的容量也限制了长测试向量的使用。如果测试向量的长度超出了测试设备存储单元的限制,则在测试过程中就要将剩余测试向量中途装入ATE的存储单元,并在加载过程中保留断

10、点处电路的工作状态,这会严重影响测试时间和测试成本。一般来讲,测试向量的故障覆盖率并不要求达到100%。工艺水平越高,对故障覆盖率要求越低。在同样的工艺水平下,芯片面积越大,出现制造故障的可能性越大,要求测试向量故障覆盖率越高。,故障仿真技术主要用来评价测试图形并用来指导和简化测试图形的生成。在测试图形生成过程中,每当针对某个特点故障生成了一个测试图形,都应采用该图形对电路中全部目标故障进行故障仿真,检查该测试码可以对哪些故障进行检测,并对该测试码能够检测的故障作出标记,对于能够用已产生的测试图形检测的故障, 不需要再专门生成测试图形,这样可以有效地减少整个测试生成所需要的计算时间。,尽管不能

11、从理论上证明可以得到最短的测试向量,但从应用角度来讲,通常没有必要再对所生成的测量向量进行压缩和优化。相反,为了增加故障覆盖率, 可能还需要对某些没有被当前测试向量覆盖的故障增加一些测试图形。常用的故障仿真方法有并行故障仿真、演绎故障仿真和同时故障仿真等。其中,并行故障仿真是最早采用的故障仿真方法,它的计算量与电路中逻辑门数的立方成正比。同时故障仿真的计算量则相对较小, 与逻辑门数目的平方成正比。,8.1.3 测试生成的过程 设计测试图形主要有三种方法: (1) 手工生成。由集成电路设计者或测试者手工写出测试图形。 (2) 伪随机测试图形生成。测试图形的输入激励由伪随机方式产生。伪随机输入激励

12、可以由软件产生,可以由测试设备产生, 也可以由嵌入被测电路中的专用模块产生。被测电路对伪随机输入激励的响应可以通过模拟产生,也可以通过测量一些功能正确的电路产生。 (3) 算法生成。使用某种计算方法,由计算机软件自动生成测试图形。这种软件工具应该能够接受电路网表,设置故障模型, 产生测试图形等。,1. 组合电路测试算法 产生组合逻辑电路的测试码已有许多算法,有些方法以被测电路的逻辑代数(方程式)描述为基础,如布尔差分法,但由于模型不全面而较少应用。 另一些方法是以电路的门级连接和功能描述为基础的,应用最广的算法是完全算法(D算法J.P.Roth 1966), 脱胎于D算法的面向通路判定的POD

13、EM算法(Path Oriented Decision Making, Goel 1981)和面向扇出的FAN算法(Fujiwara 1983)。,不论是D算法、PODEM还是FAN算法,都包含有以下三个过程: (1) 选择并确定故障元件的输入,以使得在故障部位产生与故障值相反的值(S-A-1故障时为0,S-A-0故障时为1)。 (2) 选择一条从故障部位到达输出的路径,并且确定沿这条路径的每个元件的其它信号值, 以便使错误信号传播到该元件的输出, 并直至电路输出。 这也就是所谓的故障路径敏化。 各种元件的路径敏化规则如表8-1所示。,表 8-1 路径敏化规则,(3) 选择并确定其余元件的输入

14、值,使得产生(1)、 (2)中所要求的信号值。这一过程也称为回溯或路径合理性的确认。 可以看出,以上三个过程都存在多种选择,这就可能存在由于选择不当而出现不成功现象。 遇到这种情况要重新进行选择, 也称重试。 一般很难避免重试, 这是因为对复杂数字系统芯片电路进行测试是非常困难的。,2. 时序电路测试算法 由于电路中存在存储元件和反馈线,时序电路测试生成的研究, 发展较为缓慢。 20世纪80年代后期,时序电路的测试生成取得了一些进展, 较著名的算法有Essential算法。 时序电路中各元件的当前值不仅取决于当前输入值,而且和过去的输入、状态有关,检测一个故障往往要用一个测试“序列”。 目前,

15、一般的测试生成方法是将时序电路转换成累接的组合电路,即将各个相邻时刻的电路状态在空间上展开, 于是就可以用类似组合电路的方法进行测试生成。但这些方法对于复杂的时序电路产生测试常常要花费难以接受的时间。,通常把时序电路的测试生成解决办法分为三类: 一是如同解决组合电路的测试生成一样,研究出时序电路测试生成的算法,如九值算法、MOMI算法和H算法等;二是把时序电路的反馈线剪开,形成组合电路的迭代模型,把电路的时域响应转换为空间域的响应,扩展已存在的D算法、PODEM算法等;三是改造时序电路的结构, 使之变为易测试电路,这是解决时序电路测试的一种有效方法,它在电路的设计阶段就考虑其可测试性, 即通过

16、附加逻辑,使时序电路的测试可简化为同类组合电路的测试, 参见8.2节。,8.1.4 测试流程 在复杂数字系统中, 测试的流程示范如下: (1) 确定应用前提条件, 例如准备好: 待测模块的门级网表。 Synopsys综合库或Mentor的测试码自动生成(ATPG, Automatic Test Pattern Generation)库。 模块电路结构应是组合逻辑。 模块电路规模小于等于2千门。,(2) 测试要完成的目标。 验证模块的功能是否正确。 激励的故障覆盖率达到98%以上。 (3) 测试实现的原理如图8-6所示。,图 8-6 测试的原理图,(4) 实现方法的流程如图8-7所示。 (5) 测试方法的局限性。 上面介绍的方法对时序电路无效。 对电路规模大且输入/输出关系复杂的电路效果一般, 这种情况需要基于行为级网表处理。,图 8-7 测试流程图,8.2 可测试性设计,8.2.1 可测试性设计初步,1. 扫描路径法设计和测试 目前较为成熟且应用最

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号