VLSI测试及可测性设计方法4(论文资料).ppt
第 四 章,可 测 性 设 计,容易测试的电路的含义,测试生成、施加和分析应在预定的成本和时间内完成。在满足测试覆盖率的条件下测试图形的长度应尽可能短。,可 测 性 定 义,Bennetts于1984年提出:“A digital IC is testable if test patterns can be generated,applied,and evaluated in such a way as to satisfy predefined cost budget and time scale.”,可测性概念包括两方面内容,电路内的故障是否可以用有限的测试图形来检测或定位。故障效应观察的难易程度,也就是说检测故障所需的测试图形的长度和生成时间、施加时间长短的问题。,可测性设计的两种基本策略,为了获得最大的可测性而不惜成本地进行设计。采取一些切实有效的方法,增加少量或有限的硬件开销来提高系统和电路的可测性。,可测性设计可分为两大类,专项设计(Ad Hoc Design):安功能基本要求设计系统和电路,采取一些比较简单易行的措施,使它们的可测性得到提高。结构设计(Structured Design):根据可测性设计的一般规则和基本模式来进行电路的功能设计。这两种方法的指导思想来源于上述两种不同的基本策略。,第 一 节 特 定 测 试 法(Ad Hoc),Ad-Hoc常用的三种方法,在电路的某些“关键点”增加测试点把电路划分为功能块的形式(又称:“规划技术”)建立“测试总线”,1.可 测 性 分 析(增加测试点),可 控 性 值 的 估 计,举 例,可 观 性 值 的 估 计,定义5.3 为把节点N的信息传播到原始输出,所需最少的组合逻辑值赋值次数叫做节点N的组合可观性值,用CO(N)表示。定义5.4 为把节点N的信息传播到原始输出,所需最少的时序逻辑赋值次数叫做节点N的时序可观性值,用SO(N)表示。,举 例,计算可控性值的流程图,计算可观性值的流程图,应 用 举 例(此例和后一页仅供同学参考),插 入 观 察 点,插 入 控 制 点,2.电 路 分 块,划 分 分 块 依 据,以功能模块如ALU操作单元、控制单元来进行划分。以时序逻辑、开关网络进行划分,这些单元可以组成一个系统。根据逻辑结构进行划分。划分方法的一般规则是采用多路转换器和通道系统,每个部分测量的细节依赖于这个部分的逻辑功能及相应的单元实现情况。,电路分块的三点实施措施,分块后,可将一些控制点和观察点引出。在各块之间利用选通信号来构成通路。总线结构可以很方便地控制各模块之间的信号沟通,因总线具有处高阻状态的第三态,很容易使若干模块相互隔离和分块。,此页后两页例仅供同学参考,第二节 结构可测性设计方法,LSSD技术设计的电路结构示意图,第三节 扫 描 测 试(Scan Test),扫描设计的主要思路,将电路中的组合元件与时序元件隔离开来,其中组合电路可以用组合电路的测试方法来测试,而其中的时序电路是串接成移位寄存器形式,以便把测试信号移入时序元件内,也便于将时序元件的状态移出来,使之得以观察。,Scan Design总体框图,主 要 测 试 步 骤,(1)将电路置成扫描测试状态,利用扫描时钟(系统时钟)和扫描信号输入使移位寄存器置成全0和全1的状态,以检查每个触发器是否有两种稳定状态;然后用输入序列00110011检查每个触发器翻转功能等。(2)检查组合电路N和存储元件之间的连接关系。可以先在“测试”状态下用测试号(扫描信号输入)把时序元件置成某个状态,并在组合电路N的原始输入端PI输入必要的测试矢量;然后把电路置成“正常”方式,把N的输出信号送入时序元件;最后又返回“测试”状态,利用扫描方式,在原始输出端PO处观察响应(也可以在扫描的串行输出端 观察),以判定连接电路是否有故障。,主 要 测 试 步 骤(续),(3)组合电路N的测试 在测试组合电路N时,它的测试激励来自原始输入端PI和时序元件Yi的输出端,显见PI端的信号可直接施加,而Yi的状态需要从“扫描输入”端逐位移入。N的输出也有两部分,一部分是直接可观察到的原始输出端PO,另一部分送到时序元件Yi的输入端,这部分信号的观察要分两步操作:第一步是将这些信号锁存到时序元件Yi中,第二步是将时序元件Yi中的状态逐位移出,以便在“扫描信号输出”端观察它们。测试组合电路的测试向量可以用组合电路的测试生成方法来生成。,切 换 逻 辑,两 种 途 径,第一种途径是:选用由时钟控制的电平触发器或其它存储元件来设计电路,而不采用常用的由时钟的上升沿或下降沿来触发的边沿触发的时序元件,以克服切换时产生的竞态现象对测试的影响。其典型例子是选用电平触发的主从结构的触发器。当然用主从结构触发器将影响工作速度。第二种途径是:采用专用的移位式锁存器SRL(Shift Register Latch)。,移位式锁存器SRL(1),移位式锁存器SRL(2),第 一 种 方 案,利用L1/L2型的SRL进行设计。它的主要做法是将一般时序电路模式中的每个时序元件Yi都用一个SRL替代,每个SRL的L2作为正常输出端。在进行测试时,把丫i+1的L2输出作为Yi的移位输入信号,从而组成一个移位寄存器。这种做法本质上是用主从结构的触发器作为时序元件,因此电路在正常工作和测试时都是以主从结构方式工作。它的主要缺点有两个:一个是所用的元件较多(一对L1和L2只作一个时序元件使用),另一个是正常工作时信号的路径比较长,影响工作速度的提高。,第 二 种 方 案,第 三 种 方 案,第三种方案缺点,测试时有时不能得到所需要的测试信号。因为在测试组合电路N(1)和N(2)时需要Y(1)和Y(2)提供必要的测试信号,因此Y(1)和Y(2)应该是随意可控的。但是注意到L1/L2*型SRL的特点,在扫描时钟A和B的激励下,每个SRL的L2*应该是L1的前一拍信号,而每个SRL的L1应该是前一个SRL的L2*的前一拍信号,这样所给出的信号就有一定的约束。,利用SRL进行扫描设计的基本原则,1)所用的存储元件必须都是SRL,而不能只在其中部分使用。2)每个SRL均用两个相位相反的时钟来控制,同时前级SRL的输出应能送至后级SRL的输入端,以便能接成移位寄成器和传输工作信号。3)必须能直接分别控制SRL的各组时钟,以便某一时钟工作时,其他时钟不工作或无效。4)各组时钟必须连接至SRL的时钟输入端,而不能连至数据输入端(经过组合电路后连至数据输入端也是不允许的。)5)所有SRL均应连接到扫描通路中去,使之能得到全面的测试,同时应有原始的扫描输入端、扫描输出端和扫描时钟输入端。6)必须可以利用原始输入端直接控制电路,使之有“工作”与“测试”两种工作方式,并且各时钟应能分别控制。,优 点,首先这种设计的测试对象主要是组合电路,因此测试的过程比较简单,测试所用的矢量的生成可用常规的FAN等算法来计算。其次由于组合电路与时序元件隔离,因此故障的定位比较方便,时序电路的测试变得异常简单。最后由于可用一组设计的基本原则来校验电路设计的有效性,因此电路设计的合理性比较易于满足,同时由于使用SRL作为存储元件,对元件的交流参数要求比较低,所以易于集成。,缺 点,它需要增加若干原始输入端和原始输出端,因此使集成芯片的引出脚和插件板的引出端增多,同时扫描设计大约要增加4%-20%的门,从而增加了硬件的开销。由于测试时移位寄存器以串行方式工作,同时测试过程中又需要在“测试”和“工作”两种状态之间切换,因此测试的时间比较长,尤其是当时序元件数比较多时,这个问 题更显得突出。虽然可用并行的方式来替代串行的工作方式,但这又要增加许多硬件和众多的输入输出端,不易于实际使用。在测试时,电路没有按正常工作的速度来进行,因此有些时序上的故障还不一定能精确地测试出来。设计者所使用的元件限制较大,它不允许设计者使用速度较快的异步时序元件。同时,并非所有的电路都能设计成可扫描的,因此设计过程并不比常规设计更简单,相反可能要花费更多的时间。,第四节 内建自测试技术(BIST),扫描内测试一般模式,对激励源的基本要求,要求激励源能使所测节点的电平至少变化一次,并能传输至测试点。通常这个要求叫做“激活节点”的要求。,常 用 激 励 源,常用的激励源有两种,一种是伪随机信号,它可以用线性反馈移位寄存器来产生。用这种方法虽然不能完全保证产生完备的测试信号,但在一般情况下经常是可以满足实用要求的。另一种激励源是确定型的,它可用各种基本算法来生成(如利用D算法),适用于不宜用穷举法的大型组合电路的测试。所确定的各种测试矢量可以固化在只读存储器中,或先存在随机存储器中,在作测试时,只要依次将它们读出并送至测试输入端。但即使是确定型的激励信号,如果存在某种规律的话,也可以设计一种特殊的线性移位寄存器来产生。,三 种 不 同 方 案,扫描电路设计,标准模块组成的内测试扫描电路一般结构,扫 描 测 试 方 式,1)令C1(1)=C2(1)=1,把B(1)置成正常工作方式2)令C1(2)=C2(2)=0,把B(1)置成扫描方式(即构成串行输入的移位寄成器方式)3)在SD(2)输入串行数据,在CLK(2)作用下,使B(2)置成所需状态,它的输出Y(2)作为测试N(1)的一部分4)在PI(1)施加合适信号,与Y(2)一起构成N(1)的一个潮湿测试向量5)利用CLK(1)将N(1)的响应锁存在B(1)中6)令C1(1)=C2(1)=0,将 B(1)置成扫描工作方式7)利用CLK(1),将B(1)中内容移出来,在SDO(1)处观察,并同标准值比较8)重复执行1-7,直至N(1)测试完毕可见,测N(1)时,B(2)作为激励源,B(1)作为数据采集。,LFSR 测 试 方 式,1)令C1(1)=C2(1)=0,把B(1)置成的 多输入的并行LFSR2)先在B(2)中置一个非“0”的状态,令C1(2)=1,C2(2)=0,令Zi=0(I=1,2。n),把B(2)置成一个伪随机信号发生器3)利用B(2)的输出,如必要的话,在P(I)(1)也输入合适的信号,两者一起组成N(1)的测试矢量4)在N(1)测试过程中,由B(1)连续“计算”出N(1)响应特征,测试结束后,在B(1)中存有最终的特征5)令C1(1)=C2(1)=0,把B(1)置成扫描方式,利用CLK(1)将B(1)中存有的特征移出来观察和比较,第五节 边界扫描可测性设计(Boundary Scan),全 称,IEEE Std 1149.1-1990测试访问口和边界的扫描结构(Test Access Port and Boundary Scan Architecture),IEEE Std 1149.X标准,IEEE Std 1149.1标准:数字系统测试的置入逻辑结构标准IEEE Std 1149.4标准:增加了模拟部分IEEE Std 1149.5标准:系统级置入逻辑结构标准,它是在核心逻辑电路的输入输出端都增加一个寄存器,这些寄存器有如下特点:(1)每个寄存器都可输入数据,也可输出数据。(2)所有的寄存器可连接成一个移位寄存器。,边界扫描技术的基本原理,边界扫描结构示意图,两 种 基 本 测 试,1.测试核心逻辑 将核心逻辑电路的输出端的寄存器置为输入方式,输入端的寄存器置为输出方式,并通过一定的方式,将核心逻辑电路输入端的寄存器置入测试激励向量以驱动核心逻辑,同时将其响应采集到核心逻辑输出端的寄存器中,最后将其响应逐位移出,即可得到测试结果。,2.测试IC或PCB之间的连线 将每个欲测试的连线的一端的寄存器置为输出方式,并以一定方式预置激励向量,另一端的寄存器置为输入方式,以采集该线上的响应值,通过比较响应与激励之间的关系就可判断所测连线是否有故障(开路或短路)。,边界扫描设计的硬件结构 和 IEEE 1149.1标准,边界扫描设计的硬件应包括以下四个部分,(1)测试存取通道(TAP)(2)TAP控制器(3)指令寄存器(IR)(4)测试数据寄存器组(TDR)其中测试数据寄存器组又包括边缘扫描寄存器(BSR)、旁路寄存器(BYR)和器件标志寄存器(IDR)。有时还可包括一个或几个专用的其它寄存器。,测 试 逻 辑 结 构,边界扫描设计的基本结构,测 试 存 取 通 道(TAP),测试存取通道TAP提供IC或PCB测试所需要的各种数据。在边界扫描设计中将TAP的端子压缩到仅有4个,它们分别是:(1)测试时钟TCK(输入)(2)测试方式选择TMS输入)(3)串行测试数据输入TDI输入)(4)串行测试数据输出TDO(输出),测试时钟TCK(输入),边界扫描设计中的测试时钟是独立的,因此与原IC或PCB上的时钟是无关的,这个时钟TCK也可借用原系统的时钟。测试时钟是完成测试过程中的各个步骤的基准,一般应设计成用TCK的上升沿来获取(锁入)数据,用TCK的下降沿输出(选通)数据。,测试方式选择TMS(输入),由于在测试过程中,需要有数据捕获、移位、暂停和输出刷新等不同的工作模式,因此需要有工作方式选择来确定。这里仅有一根输入线控制,所以必须有一个输入序列来确定工作模式。TMS信号是由TCK的上升沿来采样的,采样信号结合已输入的指令以及当前的状 态来确定下一个状态,并产生相应的控制信号。,串行测试数据输入TDI(输入),以串行方式输入的数据TDI有两种:一种是指令信号,它送入指令寄存器;另一种是测试数据(激励、输出响应和其他信号),它输入到相应的测试数据寄存器中去。TDI的信号在TCK的上升沿被采样和输入。,串行测试数据输出TDO(输出),以串行方式输出的数据也有两种:一种是从指令寄存器移出来的指令位;另一种是从各数据寄存器移出来的数据位。它们决定于TAP控制器当前的状态。TDO的信号是在TCK的下降沿开始输出的。,测 试 存 取 通 道(TAP),除了上述4条IEEE 1149.1标准强制规定有的TAP通道外,该标准还提供一个“测试系统复位”的输入通道。它的作用是令测试系统强制复位,即与边界扫描系统当前的状态和TCK均无关。如果没有“测试系统复位”输入端,则要求在TMS输入序列中确定一个子序列作为“复位”序列。通常以TMS-11111.1(至少5个1)作为复位序列。,TAP 控 制 器,TAP控制器的作用是:将串行输入的TMS信号进行译码,使边界扫描系统进入相应的测试模式,并产生该模式下所需要的各个控制信号。例如:*允许指令装入指令寄存器;*将串行输入信号TDI逐位移入数据寄存器,同时将数据寄存器中的数据以串行方式从TDO移出;*执行捕获测试数据,移位操作和刷新输出数据等操作。,TAP 控 制 器,图中各个状态的意义和功能:(1)测试逻辑复位(test logic reset)(2)运行一测试空闲(run-test/idle)(3)捕获数据(capture DR)(4)数据寄存器移位(shift DR)(5)数据锁存器更新(update DR)(6)捕获指令(capture IR)(7)指令寄存器移位(shift IR)(8)指令锁存器更新(update IR),(1)测试逻辑复位(test logic reset),边界扫描系统处于“逻辑复位”状态时,测试逻辑部分全部失效,从而保证原核心逻辑正常工作。欲进入测试逻辑复位状态,只要在TMS端连续加5个TCK脉冲宽度的1信号即可,而与起始时TAP控制器的状态无关。,(2)运行一测试空闲(run-test/idle),这是在测试过程中的一个控制状态,只要TMS保持为0,它始终维持这种状态。此时测试逻辑的操作决定于已送入指令寄存器IR中的指令。这个状态的设置是为自测试等与边界扫描测试无关的测试功能准备的。,(3)捕获数据(capture DR),测试数据寄存器 DR中的内容可以从系统核心逻辑输出端以并行方式装入,这个功能主要用于采集核心逻辑或连线测试的响应。某些特殊的设计和用途时,可由测试人员以其它方法以并行方式预装数据寄存器一个给定值。,(4)数据寄存器移位(shift DR),在测试时钟TCK的控制下,组成各扫描链的移位寄存器都向TDO方向移动一位。所移动的寄存器由TAP控制器的状态和IR中的指令来确定。,(5)数据锁存器更新(update DR),每个数据寄存器都有一个对应的锁存器,当数据寄存器进行数据捕获或移位操作时,数据锁存器中的内容均不会变化,只有在数据锁存器状态,它的内容才被数据寄存器的内容所替代。显见,数据锁存器的作用是暂存数据。数据锁存器更新的操作发生在TCK的下降沿。,(6)捕获指令(capture IR),捕获指令状态是以并行方式向指令寄存器IR装入数据或指令。一般向IR装入指令是以串行方式从TDI逐位移入的,但有时为了检查IR是否有正常的移位功能,可以以并行方式用其它已设置好的方法(如用开关)输入一个数据或指令。,(7)指令寄存器移位(shift IR),操作指令寄存器IR从TDI向TDO方向移一位。这与数据寄存器移位(shift DR)是相似的。,(8)指令锁存器更新(update IR),指令寄存器IR也带有相应的锁存器。锁存器的内容不会因为IR作操作而改变。只有在指令锁存器更新状态,锁存器的内容才会被IR的内容所替代。,TAP 控 制 器,除了上述8种重要的状态外,还有两种辅助状态,它们对测试没有直接的贡献,但是对TAP控制的译码却有重要作用。(1)退出状态(exit)(2)暂停(pause),指 令 寄 存 器 IR,指令寄存器IR可完成下述功能,(1)在TCK的激励下,以串行方式将指令从TDI逐位 移入指令寄存器IR,并在TDO处移出。(2)在指令流程中的指令锁存器状态下,将IR中的 内容装入锁存器。(3)在指令流程中的指令捕获状态,以并行方式将专门设置的数据装入指令寄存器IR。(4)在复位状态将指令锁存器复位。(5)在指令流程中的指令寄存器移位的状态下,可将指令寄存器向TDO方向移位。,指令寄存器工作方式,在进行测试时,指令经TDI移入指令寄存器IR,然后送入指令锁存器,最后将锁存器中的指令译码后,配合TMS信号产生控制边界扫描电路的各种信号。在正常的工作条件下,指令寄存器IR的最低两位应分别为0和1(最低位为1)。,IR的基本单元and指令安装,测 试 数 据 寄 存 器 组,测试数据寄存器组中,旁路寄存器BR和边界扫描寄存器BSR是必须有的,第三个寄存器器件标志识别寄存器(IDR)通常也应该设置,而一个或几个专用功能的寄存器则不是必需的,视测试的要求和测试的便利性需求而异。测试数据寄存器组中的每个寄存器都可以接入扫描链之中(即从TDI开始到TDO之间的扫描路径之中)。在某个时刻接入哪一个寄存器则决定于当时在指令寄存器中的指令。在一般的设计中,欲接入旁路寄存器BR和器件标志寄存器IDR时均设有专用的指令,一般情况下均是将边界扫描寄存器接入扫描链之中。显然,若要将专用寄存器接入扫描链之中,应该使用专门设计的指令。,测 试 数 据 寄 存 器 组,BS 单 元 布 置 图,各个数据寄存器的功能,(1)旁路寄存器BR:,(2)边界扫描寄存器BSR:,(3)器件标志寄存器IDR:一般的边界扫描设计中,在数据寄存器中都包含有一个固化有该器件标志的寄存器。它是一个32位的标准寄存器,其内容有关于该器件的版本号、器件型号、制造厂商等信息。,置于输入端的BS单元举例(置于输出端的BS单元举例),举 例,指 令,边 界 扫 描 指 令,指令用于确定哪一个测试数据寄存器被选择且接入从TDI-TDO的扫描链中。在IEEE 1149.1的标准中,指令有两类。一类是公共指令,即每个边界扫描设计都是通用的;另一类是专用指令,这是设计者或生产厂商为专用的测试数据寄存器完成特定的测试功能而专门设计的。,边 界 扫 描 的 公 共 指 令(续),公用指令:1.旁路(BYPASS)2.采样/预装(SAMPLE/PRELOAD)3.外测试(EXTEST)非必须有的:1.内测试(INTEST)2.运行内测试(RUNBIST)3.取器件标志码(IDCODE)4.用户代码(USERCODE)可选择的指令:1.组件(CLAMP)指令 2.输出高阻(HIGH)指令。,旁路 BYPASS,旁路指令是一条11.1的全1串指令。它的功能是:选择该IC(或PCB)中的数据寄存器为旁路寄存器BR,即使该IC(或PCB)的扫描链仅由一位的BR构成。,采样/预装 SAMPLE/PRELOAD,采样指令用于在不影响核心逻辑正常工作的条件下,将有关采样点(即边界扫描设计中的并行输入端)的信号捕获至边界扫描寄存器中,以便进行监测和分析核心逻辑电路的工作情况。在测试时,通过采样指令可以捕获所测核心逻辑电路的响应。预装指令与采样指令的逻辑功能是一样的,只是此时装入边界扫描寄存器的数据是编程者已知的或已确定的。例如在进行某种测试时,可以先预装一个特定的数据,使边界扫描寄存器输出一种完全安全的状态。,外测试 EXTEST,外测试指令主要用于测试IC或PCB之间的联线或边界扫描设计以外的逻辑电路。执行该指令的主要操作为:将边界扫描寄存器(移位寄存器)中的数据锁入数据锁存器,以激励被测的连线或外部逻辑电路,同时该寄存器又捕获被测连线或外部逻辑电路在该激励下的响应。显然要完成“整个”外测试的过程,在执行外测试指令前应用预装指令将激励向量装入BSR。在执行完外测试指令后,应使用移位指令将测试结果移出来,以便检查测试结果。,内测试 INTEST,内测试指令用于测试核心逻辑电路。它的执行过程与外测试指令基本相似,只是由于被测对象的位置恰好相反,所以它的激励端和响应测试端正好相反。,运行内测试 RUNBIST,如果该IC或 PCB的核心逻辑电路本身设计有内驻自测试功能,则可使用运行自测试指令来执行它的自测试功能。一般自测试功能不需要提供附加的测试向量,且测试的速度也很高,甚至可以达到正常工作时的速度。执行运行内测试指令RUNBIST实际比是令边界扫描系统进入它的运行一测试空闲状态,并维持预定的时间,在自测试完成之后再退出这种状态。在执行自测试功能时,有些核心电路需要提供一些固定的控制信号,例如使能自测试信号、某些边界限制信号等。,取器件标志码 IDCODE,从器件标志寄存器中将器件标志代码取出的方法有两种。一种是:使用取器件标志指令,将标志代码取入标志移位寄存器中;另一种方法是:在TAP控制器处于测试复位状态时,指令寄存器自动装入该指令,从而可将标志代码自动取入标志移位寄存器中,使用数据移位指令,可将该标志代码移出并检查。,用户代码 USERCODE,如果器件中设有器件标志寄存器,且该器件是用户可编程的,则用户可使用这条指令将器件标志代码写入该器件标志寄存器中。器件标志代码中的第28位到第31位的版本号代码可以设置一些特殊的控制位,因此用户可根据自己的测试要求,预先装入一些特殊的测试信息。,组件指令 CLAMP,执行这条指令所完成的逻辑操作有两个:其中一个操作是使能该IC的旁路寄存器,即该IC的数据扫描路径是呈“短路”状态;另一个操作是使边界扫描寄存器BSR的锁存器输出一组给定的固定电平。使用这条指令可对一组IC进行测试,同时也可增加核心逻辑电路测试时所需的测试向量的维数或测试图形。,输出高阻指令 HIGH,这条指令将使IC的所有输出端都呈高阻状态,即无效状态。它在作非边界扫描测试和边界扫描测试时都可以使用,主要防止输出端对其它电路的影响,同时也保护了这些输出缓冲器。,