可测性设计-扫描通路
1、问题:扫描测试的原理
扫描测试的两个目的:
1、实现对组合逻辑电路输入的控制。
2、对组合逻辑电路的输出进行观察。
如图所示:当前状态即寄存器的输出,一般直接接到组合逻辑的输入端口,通过对寄存器扫描特定的数值,即可完成对组合电路输入的控制。
同时,当前的组合逻辑的输出也接到寄存器的输入端口,在测试数据施加之前,有必要将当前的输出扫描出来。
整个扫描测试分为三部分:
A. Mode = 0,执行一次扫描操作,将100(组合电路的结果)扫描到寄存器中。
B. Mode = 1,执行三次扫描操作,将测试模板110扫描到寄存器中,同时将上一次的结果(100)扫描出来。
C.Mode = 0,电路进入工作模式,此时即完成对组合逻辑输入的控制。
2、边界扫描单元

shiftDR = 0:捕获模式,TAP状态机在Capture—DR状态,clockDR有效一次,将器件输入输出管脚的电平信号,存储到Sacn_Register中。TAP控制器的这一步骤对应于前面分析的扫描测试的阶段A。
shiftDR = 1:移位模式,TAP状态机在Shift—DR状态,clockDR有效N次,将测试数据串行移入,存储到Sacn_Register中,同时扫出电路的当前状态。对应于前面分析的扫描测试的阶段B。
updateDR:TAP状态机在Update—DR状态,UpdateDR有效一次,将Sacn_Register中的数据更新到输出寄存器中。对应于前面分析的扫描测试的阶段C。
3、支持JTAG边界扫描测试的IO电路设计边界扫描单元

如图所示的双向IO电路。
1、当其用作输入端口时,在正常模式即MODE=0时,信号从引脚PIN进来,从INJ进入到芯片内部。在测试模式即MODE=1,SHIFT信号有效(SHIFT(S_Shift_DR状态)信号有效之前,在S_Capture_DR状态下,ClockDR有效一次,将电路的当前输入状态寄存到寄存器中,后面在扫描出来。),在ClockDR的控制下,测试模板通过SDI串行传输被移入捕获/扫描寄存器,当测试数据扫描传输完毕之后,通过UpdateDR信号触发,捕获/扫描寄存器中的数据并行装入,更新数据到输出寄存器,然后通过INJ进入到芯片内部。
2、当其用作输出端口时,在正常模式即MODE=0时,信号从OUTJ进来,从PIN_OUT输出到芯片外部。在测试模式即MODE=1,首先在S_Capture_DR状态下,ClockDR有效一次,将电路的当前输出响应加载到扫描测试寄存器,然后进入S_Shift_DR状态,SHIFT信号有效,在ClockDR的控制下,测试模板的输出响应通过SDI串行传输到下一个捕获/扫描测试寄存器,当测试数据扫描传输完毕之后。数据模版的响应就从SDO口扫描出来。
4、边界扫描测试电路在ASIC中的嵌入
ASIC的IO端口和支持边界扫描测试接口的连接过程中(以一个4位加法器来说),ASIC保留自身的端口结构,然后通过总线连接到扫描寄存器。设计时扫描寄存器(见图中的Scan_Register)被连接到ASIC的输出端和芯片原始输入引脚,输出寄存器(见图中的Output_Register)被连接到芯片原始输出引脚和ASIC输入端。

如图:ASIC内核通过总线连接到支持边界扫描测试的IO电路。然后将该段边界扫描链引入到JTAG边界扫描控制器中并对其编码使其成为一条专用的边界扫描寄存器链,然后应用JTAG边界扫描控制器就可以实现对ASIC的测试。
开始测试时,TAP控制器在TMS、TCK的控制下进入S_Shift_IR状态下,将测试指令扫描进指令寄存器,经指令译码,依据不同的测试模式,选择特定的边界扫描寄存器位于TDI至TDO之间并输入测试模板。下面以INTEST(内部测试模式)为例进行说明。
(1)当ASIC从正常工作模式转化到测试模式前,ASIC输入引脚的信号Pin_a, Pin_b, Pin_cin存在于ASIC的端口a, b, cin上,相对应的输出响应存在于ASIC的端口sum, cout上。当进入到测试模式后,TAP状态机经S_Capture_DR状态,将引脚信息Pin_a, Pin_b, Pin_cin加载到Scan_Register0中,同时之前输入引脚的信息Pin_a, Pin_b, Pin_cin对应的输出响应加载到Scan_Register1中。然后TAP状态机经S_Shift_DR状态,将引脚信息Pin_a, Pin_b, Pin_cin及其对应的输出响应扫描出来。
(2)在数据从TDO出来的同时,测试模板Pattern1加载到Scan_Register0和Scan_Register1中。直到TAP状态机进入S_Update_DR状态后,updateDR有效,Scan_Register0对应的一段测试模板(对应到ASIC输入端的那段Pattern1)更新到ASIC的端口a, b, cin上,与该段模板相对应的输出经组合逻辑输出到ASIC的端口sum, cout。然后TAP状态机进行下一轮的变化,扫入测试模板Pattern2。经S_Capture_DR状态,将引脚信息Pin_a, Pin_b, Pin_cin再次加载到Scan_Register0中,同时ASIC的端口sum, cout信息即Pattern1产生的响应加载到Scan_Register1中。然后TAP状态机经S_Shift_DR状态,将引脚信息Pin_a, Pin_b, Pin_cin及Pattern1的输出响应扫描出来。
(3)同理在数据从TDO出来的同时,测试模板Pattern2加载到Scan_Register0和Scan_Register1中。直到TAP状态机进入S_Update_DR状态后,updateDR有效,Scan_Register0对应的一段测试模板(对应到ASIC输入端的那段Pattern2)更新到ASIC的端口a, b, cin上,与该段模板相对应的输出经组合逻辑输出到ASIC的端口sum, cout。重复以上步骤,即可获取各个模板的输出响应。
5、仿真测试

其中,红色的标志为Capture_DR状态下,对当前数据进行捕获。
本文来自博客园,作者:hematologist,转载请注明原文链接:https://www.cnblogs.com/littleMa/p/5315283.html
posted on 2016-03-24 14:02 hematologist 阅读(1106) 评论(0) 收藏 举报

浙公网安备 33010602011771号