可测性设计技术
- 格式:doc
- 大小:376.50 KB
- 文档页数:8
芯片设计中的可测试性设计技术有哪些在当今的科技时代,芯片作为各种电子设备的核心组件,其性能和质量直接影响着设备的运行效果。
而在芯片设计过程中,可测试性设计(Design for Testability,DFT)技术起着至关重要的作用。
它不仅有助于提高芯片的测试效率和质量,还能降低测试成本,确保芯片在投入使用前能够满足预期的性能和可靠性要求。
那么,芯片设计中的可测试性设计技术究竟有哪些呢?扫描测试(Scan Testing)是一种常见且重要的可测试性设计技术。
简单来说,它就像是给芯片内部的逻辑电路建立了一条“快速通道”。
在正常工作时,电路按照设计的功能运行;而在测试模式下,这些逻辑电路会被重新配置成一系列的移位寄存器,也就是所谓的“扫描链”。
测试数据可以通过这些扫描链逐位地加载到电路中,然后再逐位地读取出来,从而实现对芯片内部逻辑的全面检测。
这种技术大大提高了测试的覆盖率,能够有效地发现潜在的故障。
内建自测试(BuiltIn SelfTest,BIST)技术则是让芯片具备自我检测的能力。
想象一下,芯片内部有一个专门的模块,就像一个“小医生”,能够自动产生测试向量并对芯片的关键部分进行测试,然后将测试结果与预期结果进行比较。
BIST 技术可以用于测试存储器、逻辑电路等,减少了对外部测试设备的依赖,提高了测试的自主性和效率。
边界扫描(Boundary Scan)技术主要用于解决芯片引脚和电路板之间的连接测试问题。
通过在芯片的输入输出引脚处添加边界扫描单元,形成一个边界扫描链,可以方便地检测芯片引脚之间的连接是否正常,以及电路板上的走线是否存在断路或短路等故障。
这对于复杂的电路板系统的测试和故障诊断非常有帮助。
还有一种技术是存储器内建自修复(Memory BuiltIn SelfRepair,MBISR)。
存储器在芯片中占据着重要的地位,但也是容易出现故障的部分。
MBISR 技术能够在测试过程中检测到存储器的故障单元,并通过备用的存储单元来替换这些故障单元,从而实现存储器的自我修复,提高了存储器的可靠性。
PCB可测试性设计技术要概述随着技术进入超大规模集成(VLSI)时代,VLSI电路的高度复杂性及多层印制板、表面封装(SMT)、圆片规模集成(WSI)和多模块(MCM)技术在电路系统中的运用,都使得电路节点的物理可访问性正逐步削弱以至于消失,电路和系统的可测试性急剧下降,测试成本在电路和系统总成本中所占的比例不断上升,常规测试方法正面临着日趋严重的测试困难。
PCB可测试性设计技术要概述在电路的逻辑设计完成后,通常是以手工的方式来加入可测试性(Testability)设计。
激烈的市场竞争要求更短的设计开发周期,这样的可测试性设计方法已成为严重的设计瓶颈。
随着设计进入了以综合为基础的阶段,将测试与综合结合起来,以自动化的方式来实现可测试性设计已成为必须的趋势。
1.PCB可测试性的关键技术PCB可测试性的关键技术包括:可测试性的度量、可测试性机制的设计与优化和测试信息的处理与故障诊断。
提高印制板的可测试性,首先就要对PCB的可测试性水平进行度量,一般包括精确性和简单性两个方面。
精确性是指可测试性的度量方法能准确地预计产品测试程序生成的困难,并且定位到产品某一部位,从而便于产品设计进行可测试性更改。
简单性是指度量可测试性的计算量应小于测试程序生成的计算量。
PCB的可测试性设计过程实际上就是将某种能够方便测试进行的可测试性机制引入到PCB中,提供获取被测对象内部测试信息的信息通道。
因此,合理有效的设计可测试性机制是成功地提高PCB可测试性水平的保障。
现有的可测试性机制的设计方法包括LFSR方法、IDDQ技术、电平灵敏度设计以及边界扫描机制等。
可测试性机制的引入一方面会提高系统的可测试性水平,从而降低产品的全寿命周期费用,但另一方面也在一定程度上提高了产品的初始成本。
进行可测试性机制设计优化就是要综合权衡各种可测试性机制的性能和费用,采用性能费用比最佳的设计机制。
提高产品质量和可靠性,降低产品全寿命周期费用,要求可测试性设计技术能够方便快捷地获取测试时的反馈信息,能够很容易地根据反馈信息做出故障诊断。
可测性设计技术摘要本文从可测性设计与VLSI测试,VLSI设计之间的关系出发,将与可测性设计相关的VLSI 测试方法学、设计方法学的内容有机地融合在一起,文中简要介绍了VLSI可测性设计的理论基础和技术种类,可测性设计的现状,发展趋势,可测试性设计的内涵、意义和分类,并且探讨了可测性设计的实现方法。
关键词:可测性设计,自动测试生产,扫描技术,边界扫描技术,嵌入式自测试。
1可测性设计技术概述可测性的起源于发展过程20世纪70年代,美军在装备维护过程中发现,随着系统的复杂度不断提高,经典的测试方法已不能适应要求,甚至出现测试成本与研制成本倒挂的局面。
20世纪80年代中,美国军方相继实施了综合诊断研究计划。
并颁布《系统和装备的可测性大纲》,大纲将可测性作为与可靠性及维修等同的设计要求,并规定了可测性分析,设计及验证的要求及实施方法。
该标准的颁布标志这可测性作为一门独立学科的确立。
尽管可测性问题最早是从装备维护的角度提出,但随着集成电路(IC)技术的发展,满足IC测试的需求成为推动可测性技术发展的主要动力。
从发展的趋势上看,半导体芯片技术发展所带来的芯片复杂性的增长远远超过了相应测试技术的进步。
随着数字电路集成度不断提高,系统日趋复杂,对其测试也变得越来越困难。
当大规模集成电路LSI和超大规模集成电路VLSI问世之后,甚至出现研制与测试费用倒挂的局面。
这就迫使人们想到能否在电路的设计阶段就考虑测试问题,使设计出来的电路既能完成规定的功能,又能容易的被测试,这就是所谓的可测性设计技术。
因此也就出现了可测性的概念。
可测性的基本原理可测试性大纲将可测试性(testability)定义为:产品能及时准确地确定其状态(可工作、不可工作、性能下降),隔离其内部故障的设计特性。
以提高可测试性为目的进行的设计被称为可测试性设计(DFT: design for testability)。
可测试性是测试信息获取难易程度的表征。
DFT,可测试性设计--概念理解⼯程会接触DFT。
需要了解DFT知识,但不需要深⼊。
三种基本的测试(概念来⾃参考⽂档):1. 边界扫描测试:Boundary Scan Test: 测试⽬标是IO-PAD,利⽤JTAG接⼝互连以⽅便测试。
(jtag接⼝,实现不同芯⽚之间的互连。
这样可以形成整个系统的可测试性设计)2. 内建⾃测试BIST:(模拟IP的关键功能,可以开发BIST设计。
⼀般情况,BIST造成系统复杂度⼤⼤增加。
memory IP⼀般⾃带BIST,简称MBIST)3. 扫描测试(ATPG)Scan path: 与边界扫描测试的区别,是内部移位寄存器实现的测试数据输⼊输出。
测试⽬标是std-logic,即标准单元库。
(扫描测试和边界扫描,不是⼀个概念。
需要区别对待。
内部的触发器,全部要使⽤带SCAN功能的触发器类型。
)补充:还有⼀种测试:4. 全速测试at-speed-test(其实是属于扫描测试的⼀种。
只不过测试时钟来源频率更快。
)at-speed 就是实速测试,主要⽤于scan测试-即AC测试和mbist测试。
这种测试⼿段的⽬的是-测试芯⽚在其⼯作频率下是否能正常⼯作,实速即实际速度。
测试时钟往往是由芯⽚内部的PLL产⽣很快的测试时钟,⽤于实速测试。
相对⽽⾔,⼀般的测试是20~40兆的测试时钟,频率低,测不到transition fault。
即使测试通过,实际使⽤中还会由于使⽤⾼频时钟发⽣芯⽚电路故障。
常见的DFT/OCC结构如下:特点:1. Clock MUX必须放在OCC模块/DFT MUX之前。
(OCC:On Chip Clock)2. 时钟⼤于50MHz时,使⽤OCC模块,否则使⽤DFT MUX。
3. Clock Gate放在OCC模块/DFT MUX之后。
4. 对于⼿动添加的Clock Gate,DFT_SE端⼝接到 dft_glb_gt_se。
5. 对于综合⼯具添加的Clock Gate,DFT_SE端⼝接到dft_syn_gt_se注意:1. DFT_MODE有效时,clock mux的sel信号要保证dft_clk来源于最⾼频率的时钟源。
软件工程中的可测试性设计技术在当今数字化的时代,软件几乎无处不在,从我们日常使用的手机应用程序到复杂的企业级系统。
而确保软件的质量和可靠性是至关重要的,这就离不开软件工程中的可测试性设计技术。
可测试性设计技术,简单来说,就是在软件开发的过程中,有意识地采用一些方法和策略,使得软件更容易被测试,从而能够更高效地发现和修复潜在的问题。
这就好比在建造一座房子时,提前规划好如何方便地检查房屋的结构和设施是否稳固,而不是等到建成后才发现难以进行检查和维修。
为什么可测试性设计如此重要呢?首先,它能够显著提高测试的效率。
想象一下,如果一个软件的架构混乱,模块之间的交互复杂且不清晰,那么测试人员在进行测试时就会像在迷宫中摸索,浪费大量的时间和精力,还可能遗漏一些重要的测试点。
相反,如果软件在设计时就考虑了可测试性,测试用例的编写和执行会变得更加顺畅,测试的覆盖度也能够得到更好的保证。
其次,良好的可测试性有助于提高软件的质量。
通过更全面和有效的测试,可以更早地发现软件中的缺陷和错误,降低软件在实际运行中出现故障的风险。
而且,可测试性设计能够促进开发人员在编写代码时更加注重代码的质量和规范性,因为他们知道自己的代码将会接受严格的测试。
那么,在软件工程中,有哪些常见的可测试性设计技术呢?一种常见的技术是模块化设计。
将软件系统分解为独立的模块,每个模块具有明确的功能和接口。
这样,测试人员可以单独对每个模块进行测试,而不必担心其他模块的影响。
同时,模块化设计也使得模块的替换和维护更加容易,如果某个模块出现问题,可以快速定位并进行修复或替换。
接口设计也是关键的一环。
清晰、简洁和稳定的接口能够让测试人员更容易理解模块之间的交互方式,从而更有效地设计测试用例。
此外,定义良好的接口还能够提高代码的可复用性,减少代码的冗余。
另外,使用设计模式也能够增强可测试性。
例如,观察者模式可以方便地对事件的触发和响应进行测试,策略模式可以轻松地替换不同的算法策略进行测试。
第九章 DFT可测性设计DFT基本原理扫描技术芯片内装自测试特征分析“可测性设计”的基本原理强调的是设计目标的核心是可测性。
设计中的测试逻辑扮演着两个角色。
帮助设计者排除一个芯片的设计缺陷捕获芯片在物理上的缺陷问题(1)帮助设计者排除一个芯片的设计缺陷:这些设计缺陷所引起的问题是芯片也可能会按照设计者所设计的功能运行,但这个芯片一旦用到系统的时候,就不会正常的工作。
(2)捕获芯片在物理上的缺陷问题:物理上的缺陷问题通常在生产过程中表现出来,但有时候某些处于边沿极限的问题,只有当芯片在工作现场运行了一段时间之后才会出现。
有些时候,同样的测试逻辑能够同时担任两个角色,但有些时候,这两个角色需要不同的测试结构来担任。
一般来说,我们都采用10/10原则进行可测性设计。
测试电路的规模不要超过整个FPGA逻辑电路的10%花费在设计和仿真测试逻辑上的时间不应超过设计整个逻辑电路所花时间的10%1、测试备用逻辑备用逻辑一般用于需要连续不断工作的系统而不能出现故障。
军事系统和银行系统就是典型的例子。
在这类系统中,逻辑电路是双重双倍的。
在备用硬件电路后面有一个电路装置,用于比较各个备用电路的输出。
这些系统常常有三个备用电路模块,如果一个模块失效,那么另外两个模块还可以正常的工作。
比较电路也被称为表决逻辑,因为它比较来自于三个备用模块的信号,然后判决出相一致的多数信号是正确的值。
2、如何测试备用逻辑测试备用逻辑是一个独立的问题,图9-1(a)显示了一个具有备用逻辑电路的电路图结构。
图9-1 测试备用逻辑然而,因为此电路是不可测试的,所以其用途并不是很有用。
如果存在一个设计缺陷,或者是芯片在起运之前就出现了物理性的故障,备用逻辑都不能很好的发现这些问题。
如果某一个问题发生在故障的现场,那么运行的芯片就只能产生错误的结果―――一个不正确的备用逻辑将无法避免这个故障的发生。
图9-1(b)显示了如何为一个测试目的而对图9-1(a)所做的改进。
可测性设计及DFT软件的使用可测性设计是指在集成电路设计过程中,考虑到测试的需求和限制,通过特定的设计技术和方法,提高电路的测试覆盖率和测试质量。
DFT (Design for Testability)软件是用于实施可测性设计的工具,可以帮助设计工程师分析和优化设计,以满足测试要求。
可测性设计的目的是为了确保设计中的各个模块都能够被有效测试,以提高故障的发现概率。
在芯片设计中,由于电路越来越复杂,测试变得更加困难,因此需要采取可测性设计来解决这一问题。
可测性设计技术主要有以下几种:1. 扫描设计:通过插入扫描链(Scan Chain)在设计中,可以将芯片状态以串行链的形式移出到外部,然后通过向扫描链输入测试向量,将测试信号直接送入到芯片内部,从而避免了复杂的测试模式生成。
2.随机模式生成:使用随机模式生成器产生大量高质量的测试模式,并增加测试模式的多样性,提高测试覆盖率。
3.冗余设计:通过增加冗余逻辑或器件,提高故障的可检测性。
例如,在存储器设计中,可以增加冗余的存储单元来修复故障。
4.割线测试:通过在设计中插入特定的割线,将电路分割成可独立测试的模块,从而提高测试的效率和灵活性。
DFT软件是用于实施可测性设计的工具,可以帮助设计工程师分析和优化设计,以满足测试要求。
主要功能包括:1.扫描链生成与优化:DFT软件可以自动生成扫描链,并根据测试目标对扫描链进行优化。
它还可以按照指定的扫描链长度进行荷载分析,以确定扫描链的最佳长度。
2.灵活的测试模式生成:DFT软件可以根据设计规范和测试要求,生成高质量的测试模式,并提供多种测试模式生成方法,如随机模式生成和割线测试。
3.冗余设计分析:DFT软件可以快速分析设计中的冗余元件,并根据故障覆盖率和面积开销等指标,提供最佳的冗余设计方案。
4.测试覆盖率评估:DFT软件可以评估测试向量对设计中故障的覆盖率,并根据测试覆盖率结果,优化测试向量生成策略。
5.割线分析:DFT软件可以对割线进行分析,并根据割线的特性和测试需求,优化割线的位置和数量。
可测性设计技术摘要本文从可测性设计与VLSI测试,VLSI设计之间的关系出发,将与可测性设计相关的VLSI 测试方法学、设计方法学的内容有机地融合在一起,文中简要介绍了VLSI可测性设计的理论基础和技术种类,可测性设计的现状,发展趋势,可测试性设计的内涵、意义和分类,并且探讨了可测性设计的实现方法。
关键词:可测性设计,自动测试生产,扫描技术,边界扫描技术,嵌入式自测试。
1可测性设计技术概述可测性的起源于发展过程20世纪70年代,美军在装备维护过程中发现,随着系统的复杂度不断提高,经典的测试方法已不能适应要求,甚至出现测试成本与研制成本倒挂的局面。
20世纪80年代中,美国军方相继实施了综合诊断研究计划。
并颁布《系统和装备的可测性大纲》,大纲将可测性作为与可靠性及维修等同的设计要求,并规定了可测性分析,设计及验证的要求及实施方法。
该标准的颁布标志这可测性作为一门独立学科的确立。
尽管可测性问题最早是从装备维护的角度提出,但随着集成电路(IC)技术的发展,满足IC测试的需求成为推动可测性技术发展的主要动力。
从发展的趋势上看,半导体芯片技术发展所带来的芯片复杂性的增长远远超过了相应测试技术的进步。
随着数字电路集成度不断提高,系统日趋复杂,对其测试也变得越来越困难。
当大规模集成电路LSI和超大规模集成电路VLSI问世之后,甚至出现研制与测试费用倒挂的局面。
这就迫使人们想到能否在电路的设计阶段就考虑测试问题,使设计出来的电路既能完成规定的功能,又能容易的被测试,这就是所谓的可测性设计技术。
因此也就出现了可测性的概念。
可测性的基本原理可测试性大纲将可测试性(testability)定义为:产品能及时准确地确定其状态(可工作、不可工作、性能下降),隔离其内部故障的设计特性。
以提高可测试性为目的进行的设计被称为可测试性设计(DFT: design for testability)。
可测试性是测试信息获取难易程度的表征。
可测性设计技术【摘要】随着微电子技术的迅速发展、芯片集成度的不断提高以及电路板复杂性的不断增加,传统的测试模型和测试方法已经不能满足当前的测试要求,测试费用急剧增加。
本文介绍了可测试性设计的内涵、意义和分类,可测试性设计有两种方法:专项可测试性设计和结构化可测试性设计(边界扫描和内建自测试),并讲述了这些方法的基本原理。
【关键词】可测试性设计;边界扫描;内建自测试随着数字电路集成度不断提高,系统日趋复杂,对其测试也变得越来越困难。
当大规模集成电路LSI和超大规模集成电路VLSI问世之后,甚至出现研制与测试费用倒挂的局面。
这就迫使人们想到能否在电路的设计阶段就考虑测试问题,使设计出来的电路既能完成规定的功能,又能容易的被测试,这就是所谓的可测性设计技术。
因此也就出现了可测性的概念。
一、基本概念在可测性的概念出先不久之后,人们又遇到了一个难题,即大家设计出来的电路在测试方面到底谁优谁劣,没有统一的标准,因此就需要对电路的测试难易程度进行数量描述,即可测性分析。
可测性分析是指对一个初步设计好的电路或待测电路不进行故障模拟就能定量地估计出其测试难易程度的一类方法。
在可测性分析中,经常遇到三个概念:可控制性、可观察性和可测性。
可控制性:通过电路的原始输入向电路中的某点赋规定值(0或1)的难易程度。
可观察性:通过电路的原始输入了解电路中某点指定值(0或1)的难易程度。
可测性:可控制性和可观察性的综合,它定义为检测电路中故障的难易程度。
可测性分析就是对可控制性、可观察性和可测性的定量分析。
但在分析过程中,为了不失去其意义,必须满足下面两条基本要求:(1)精确性,即通过可测性分析之后,所得到的可控制性、可观察性和可测性的值能够真实的反映出电路中故障检测的难易程度。
(2)复杂性,即计算的复杂性,也就是对可控制性和可观察性的定量分析的计算复杂性要低于测试生成复杂性,否则就失去了存在的价值。
二、可测性设计的意义据统计资料表明,检测一个故障并排除它,所需的开销若以芯片级为1,则插件级为10,系统级为100,机器使用现场为1000。
这表明,故障一定要在芯片级测出并排除它,绝不能把坏芯片带到插件中去。
但由于现在的芯片,一般都是几千到几百万个门的电路,而外部可用于测试的端脚又非常的少,因此,芯片的测试是一件十分困难的事。
尽管新的测试方法不断涌现,但由于集成技术的快速发展,测试生成的速度远远赶不上集成度的增长的需要。
根据很多实验证实,测试生成和故障模拟所用的计算机的时间与电路中门数的平方到立方成正比,也就是说测试的开销呈指数关系增长。
但另一方面,由于微电子技术的发展,研制与生产成本的增长速度远远小于指数增长。
因此,就使得测试成本与研制成本的比例关系发生了极大的变化,有的测试成本甚至占产品总成本的70%以上,出现了测试与研制开销倒挂的局面。
图2.1 测试生成处理开销与电路规模的关系1所示。
图中DT表示可测性设计,UD表示无拘束设计,H表示测试开销,G表示电路中的门数。
从图中可以看出,对于无拘束设计,测试开销将随电路规模的增大呈指数上升,而采用了可测性设计之后,测试开销与电路规模基本上呈线性增长关系。
因此,我们可以得出结论:对于LSI和VLSI,可测性设计是必不可少的。
三、可测性设计的目标可测性设计,简单地说,就是使逻辑电路易于测试的设计,或者说是以改善逻辑电路可测性、可诊断性为目标的设计。
可测性设计并不是改变原来电路的功能和能力,而是尽量少用附加的硬件,力求用一个简单的测试序列去测试逻辑电路的一种设计方法。
从上述观点出发,可得可测性设计目标为:(1)缩短测试序列的生成时间,也就是对被测电路生成测试码时,所用的算法尽量简单。
(2)缩小测试序列的集合,即使测试施加时间尽量缩短。
四、可测性设计的分类为了达到上述的可测性设计的目标,一般来说都会增加硬件的费用。
在这方面有两种基本的策略:一种是为了获得最大的可测性而不惜成本地作设计;另一种是采取一些有效的方法,增加少量或有限的硬件开销来提高电路的可测性。
基于这两种基本策略,把可测性设计方法分成两类:一类是专项设计,即按功能基本要求,采取一些比较简单易行的措施,使所设计电路的可靠性得到提高。
它是针对一个已成型的电路设计中的测试问题而提出来的。
它采用传统的方法对电路某些部分进行迭代设计,以提高可测试性。
另一类是结构设计,是从设计一开始就建立测试结构,每个子电路都具有嵌入式测试的特征。
它是根据可测性设计的一般规则和基本模式来进行电路的功能设计,主要包括扫描技术和内建自测试两种测试技术。
这两类设计中,前者处理时序电路是十分困难的,不能根本解决测试问题。
因此对时序电路可测性设计,只有采取结构设计才能解决测试时序电路的困难。
对于上述两类设计,它们的基本设计思想是一致的,首先要把电路分块。
因为电路的测试序列长度与电路的输入数与元件数有关。
前文提到,产生电路测试码时间与电路的门数的平方到立方成正比。
因此可以直观的看出若把电路均匀分成两块,则计算测试时间可下降到四分之一至八分之一左右。
其次是提高电路的可控制性值与可观察性值,也就是提高电路的可测性值。
提高了电路的可测性值,也就减少了测试矢量产生与施加的开销。
五、专项可测试性技术设计专项可测试性常用的方法是用可测试性的度量值来寻找有限的附加测试点和控制点,以提高电路的可观性和可控性,从而提高电路的可测试性。
为了对可测试性进行量化分析,Goldstein于1979年提出了可测试性度量的概念进而对可测试性的两个度量:可控性值和可观性值进行了定义,Goldstein 于1980年提出的SCOAP(Sandia Controllability/Observability Analysis Program)可测试性度量被广为接受。
SCOAP可测试性度量规定电路中每个节点由6个参量来描述,即组合0可控性(CC0),组合1可控性(CC1),时序0可控性(SC0),时序1可控性(SC1),以及组合可观性(CO)和时序可观性(SO)。
可控性值范围在1~∞之间,可观性值位于0~∞之间。
线路度量值越高,控制和观测将越困难。
可控性值的估计:定义1:欲置节点N值为组合逻辑值0(1),需要对相关节点赋以确定组合逻辑值的最小赋值次数,称为节点N的组合0(1)可控性值,用CC0(N)(CC1(N))表示。
定义2:欲置节点N值为时序0(1),需要对相关节点赋以确定时序逻辑的最小赋值次数,称为节点N的时序0(1)可控性值,用SC0(N)(SC1(N))表示。
实际上,时序可控性值提供了控制节点所需的时段数。
为了计算数字系统各节点的可控性值,首先将原始输入的组合可控性值置为‘1’,时序可控性值置为‘0’。
然后,从原始输入开始,按照电路描述,用表5.1列出的标准单元可控性值计算公式,依次计算电路各节点的可控性值。
表5.1标准单元的可控性值计算公式可观性值的估计:定义3:为把节点N的信息传播到原始输出,所需最少的组合逻辑值赋值次数叫节点N的组合可观性值,CO(N)表示。
定义4:为把节点N的信息传播到原始输出,所需最少的时序逻辑值赋值次数叫节点N的时序可观性值,SO(N)表示。
为了计算电路各节点的可观性值,首先将原始输出端的可观性值置为‘0’。
然后,从原始输出开始,按照表5.2列出的标准单元可观性值计算公式,用前面已算出的可控性值,即可求出电路各节点的可观性值。
表5.2标准单元的可控性值计算公式专用可测试性技术采用迭代的方法对局部电路进行修改,而结构化可测试性设计技术则是从全局的角度出发对电路进行系统化设计,在结构化可测试性技术形成之前,采用传统方法改善可测试性,例如时序电路测试前先进行初始化,插入测试点,及电路分块。
以图5.1(a)为例,说明专项可测性技术的具体实现:图5.1(a)原始电路图5.1(a)电路中1,2,3为原始输入,对图中各节点进行‘0’可控性值的计算,如下:CC0(1)=CC0(2)=CC0(3)=CC1(1)=CC1(2)=CC1(3)=1(原始输入)CC0(4)=CC1(3)+1=2CC1(4)=CC0(3)+1=2CC0(7)=min[CC0(1),CC0(2)]+1=2CC0(8)=CC1(2)+1=2CC0(10)=min[CC0(8),CC0(9)]+1=3(CC0(9)虽然没有计算,但是显然大于2)CC0(11)=[CC0(7)+CC0(10)]+1=6CC0(6)=CC1(11)+1=min[CC1(7),CC1(10)]+1=CC1(7)+1=CC1(1)+CC2(2)+2=4CC1(4)=CC0(3)+1=2CC0(5)=CC0(6)+CC0(4)+CC1(4)=7+2+2=11CC0(12)=CC0(5)+CC0(4)+CC0(4)=11+2+2=15CC0(9)=CC0(5)+CC0(12)+1=11+15+1=27可见在节点9处的‘0’可控性值最大,为27,即该点可控性最差,如在该节点处插入两输入与门,则CC0(9)将由27降为2。
插入与门后的电路如图5.1(b)所示。
因此电路的可控性值减小,可控性将提高。
同样,对图2.3所示电路,可计算出各节点的‘1’可控性值和可观性值。
通过插入或门和引出观测点则可降低节点的‘1’可控性和可观性值。
图5.1(b)插入与门后的电路六、边界扫描技术边界扫描测试是通过在芯片的每个I/O脚附加一个边界扫描单元以及一些附加的测试控制逻辑实现的,BSC主要是由寄存器组成的。
每个I/O管脚都有一个BSC,每个BSC有两个数据通道:一个是测试数据通道,测试数据输入、测试数据输出;另一个是正常数据通道,正常数据输入(Normal Data Input,NDI)、正常数据输出(Normal Data Output,NDO)。
如图6.1所示。
在正常工作状态,输入和输出数据可以自由通过每个BSC,正常工作数据从NDI进,从NDO出。
在测试状态,可以选择数据流动的通道:对于输入的集成电路(Integrated Circuit,IC)管脚,可以选择从NDI或从TDI输入数据;对于输出的IC管脚,可以选择从BSC输出数据至NDO,也可以选择从BSC输出数据至TDO。
图6.2给出了基本扫描单元的电路,模块MUX21是一个二选一,PI:并行输入,PO:并行输出,clk1和clk2是两个时钟信号,SI:串行输入,SO串行输出,shift:移位/装载,test mode:测试方法选择。
每一个扫描单元有四个端口:PI,PO,SI 和SO,具有移位(Shift)、捕获(Capture)、刷新(Update)三种功能。
图6.1 边界扫描单元BSC的连接图6.2 基本的边界扫描测试单元BSC边界扫描的整体结构如图6.3所示,主要由以下硬件组成:1.具有4或5个引脚的测试存取通道(Test Access Port,TAP);2.一组边界扫描寄存器,指令寄存器(Instruction Register,IR)数据寄存器(Data Register,DR);3.一个TAP控制器。