边界扫描的测试原理及九大指令

九大指令

 指令(必须/可选)操作码 模式  选择数据寄存器
 EXTEST 0...0*  测试 Boundary 
 SAMPLE/PRELOAD 用户定义 一般 Boundary
 BYPASS 1...1 一般 Bypass
 INTEST 用户定义 测试 Boundary
 RUNBIST 用户定义 测试 用户定义
 INCODE 用户定义 一般 器件ID
 USERCODE 用户定义 一般 器件ID
 CLAMP 用户定义 测试 Bypass
 HIGHZ 用户定义 测试 Bypss
 用户定义 用户定义 用户定义 用户定义

Extest指令--强制指令

用于芯片外部测试,如互连测试

测试模式下的输出管脚,由BSC update锁存驱动(BSC注释:寄存器的每一个单元分配给IC芯片的相应引脚,每一个独立的单元称为BSC(Boundary-Scan Cell)边界扫描单元。)

BSC scan锁存捕获的输入数据

移位操作,可以从TDI输入测试激励,并从TDO观察测试响应。

在移位操作后,新的测试激励存储到BSC的update锁存

原先EXTEST指令时强制为全“0”的,在IEEE 1149.1--2001中,这条强制取消了。选择EXTEST指令时,IC工作在边界扫描外部测试模式(external boundary-test mode),也就是说对IC的操作影响芯片的正常工作。选择边界扫描寄存器连通TDI和TDO。在这种指令下,可以通过边界扫描输出单元来驱动测试信号至其他边界扫描芯片,以及通过边界扫描输入单元来从其他边界扫描芯片接收测试信号。EXTEST指令是IEEE 1149.1标准的核心所在,在边界扫描测试中的互连测试(interconnect test)就是基于这个指令的。

(该指令初始化外部电路测试,主要用于板级互连以及片外电路测试。EXTEST指令在Shift-DR状态时将扫描寄存器BSR寄存器连接到TDI与TDO之间。在Capture-DR状态时,EXTEST指令将输入管脚的状态在TCK的上升沿装入BSR中。EXTEST指令从不使用移入BSR中的输入锁存器中的数据,而是直接从管脚上捕获数据。在Update-DR状态时,EXTEST指令将锁存在并行输出寄存器单元中的数据在TCK的下降沿驱动到对应的输出管脚上去。)


Sample/Preload指令--强制指令

在进入测试模式前对BSC进行预装载

输入输出管脚可正常操作

输入管脚数据和内核输出数据装载到BSC的scan锁存中。

移位操作,可以从TDI输入测试激励,并从TDO观察测试响应。

在移位操作后,新的测试激励存储到BSC的update锁存。

原先这两个指令是合在一起的,在IEEE 1149.1--2001中这两个指令分开了,分成一个SAMPLE指令,一个PRELOAD指令。选择SAMPLE/PRELOAD指令时,IC工作在正常工作模式,也就是说对IC的操作不影响IC的正常工作。选择边界扫描寄存器连通TDI和TDO。 SAMPLE指令---通过数据扫描操作(Data Scan)来访问边界扫描寄存器,以及对进入和离开IC的数据进行采样。PRELOAD指令---在进入EXTEST指令之前对边界扫描寄存器进行数据加载。

(在Capture-DR状态下,SAMPLE/PRELOAD指令提供一个从管脚到片上系统逻辑的数据流快照,快照在TCK上升沿提取。在Update-DR状态时,SAMPLE/PRELOAD指令将BSR寄存器单元中的数据锁存到并行输出寄存器单元中,然后由EXTEST指令将锁存在并行输出寄存器单元中的数据在TCK的下降沿驱动到对应的输出管脚上去。)


Bypass指令--强制指令

提供穿透芯片的最短通路。

输入输出管脚可正常操作

选择一位的旁路(Bypass)寄存器

强制全为1和未定义的指令为Bypass指令 BYPASS指令为全“1”。选择BYPASS指令时,IC工作在正常工作模式,选择一位的BYPASS寄存器连通TDI和TDO,数据的通过不影响IC的正常工作。

(BYPASS指令通过在TDI和TDO之间放置一个1位的旁通寄存器,这样移位操作时只经过1位的旁通寄存器而不是很多位(与管脚数量相当)的边界扫描寄存器BSR,从而使得对连接在同一JTAG链上主CPU之外的其他芯片进行测试时提高效率。)


INTEST指令 ---可选指令

选择INTEST指令时,IC工作在边界扫描内部测试模式(internal boundary-test mode),选择边界扫描寄存器连通TDI和TDO。在这种指令下,可以通过边界扫描输出单元来驱动测试信号至其内部逻辑,以及通过边界扫描输入单元来从 其内部逻辑接受测试信号。


RUNBIST指令 ---可选指令

选择RUNBIST指令时,IC工作在自测试模式(self-test mode),对IC的内部逻辑进行全面的自测试,通过选择用户自定义的数据寄存器连通TDI和TDO。在这种指令下,边界扫描单元的输出被内部逻辑控制了,所以外部信号不能干扰其相邻IC。


IDCODE指令 ---可选指令

选择IDCODE指令时,IC工作在正常工作模式,选择数据识别寄存器(data identification register)连通TDI和TDO。数据识别寄存器是一个32位的寄存器,内容包括IC的生产厂商,芯片类型,版本等。访问数据识别寄存器不会影响 IC的正常工作。由于IDCODE指令是可选的,不是每个芯片都有的,所以当对一个边界扫描链(scan chain)执行IDCODE指令来输出所有IDCODE时,有IDCODE指令的芯片就选择IDCODE寄存器,输出输出IDCODE,没有 IDCODE指令的芯片会自动选择BYPASS寄存器,输出一个“0”。 (读取CPU ID号指令。在设计中存在device identification register时,TAP强制定义。该指令将处理器的ID号寄存器连接到TDI和TDO之间。)


USERCODE指令 ---可选指令

选择USERCODE指令时,IC工作在正常工作模式,选择用户自定义数据寄存器(user defined test data register)连通TDI和TDO。USERCODE指令一般是在进行芯片内部测试时用的。


CLAMP指令 ---可选指令

CLAMP指令使IC的输出置于由边界扫描寄存器的当前内容决定的逻辑电平上,选择BYPASS寄存器连通 TDI和TDO。在加载这个指令之前,边界扫描寄存器的内容可以由SAMPLE/PRELOAD指令来预置。在CLAMP指令下,数据通过BYPASS寄 存器从TDI传递至TDO,不会影响此IC的输出。


HIGHZ指令 ---可选指令

HIGHZ指令使IC的所有输出置于高阻状态,选择BYPASS寄存器连通TDI和TDO。在HIGHZ指令下,数据通过BYPASS寄存器从TDI传递至TDO,不会影响此IC的输出

  • 0
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
边界扫描测试技术是软件测试中的一种常用方法,用于验证程序在边界值情况下的正确性。该技术通过选择测试用例,覆盖程序设计的边界条件,以发现潜在的错误和缺陷。 边界扫描测试技术的步骤包括确定被测对象的边界条件、定义边界值、选择测试数据、执行测试用例和分析测试结果。在确定边界条件时,可以考虑输入的最小值、最大值、边界值和非边界值等情况。边界值是指输入或输出处于边界条件的最小或最大值,通常是造成错误的关键因素。 边界扫描测试技术的优点是能够有效地发现边界条件下的错误,并提高测试覆盖率。它可以快速定位程序中可能存在的缺陷,同时节省测试成本和时间。边界扫描测试技术还可以帮助软件开发人员了解程序的边界情况,进一步优化程序的设计和实现。 然而,边界扫描测试技术也存在一些局限性。当边界条件非常复杂或边界值较多时,测试用例的选择和编写可能变得困难。此外,该技术不能覆盖所有可能的输入和输出情况,因此仍需要结合其他测试方法来进行全面的测试。 总之,边界扫描测试技术是一种有效的测试方法,可以帮助软件开发人员发现边界条件下的错误和缺陷。它可以提高软件质量,减少用户在使用过程中遇到的问题。同时,我们也需要注意该技术的局限性,并结合其他测试方法来进行全面的测试。对于关于边界扫描测试技术的更详细信息,您可以查阅谭剑波先生的《边界扫描测试技术》一文,该文可能可以在谭剑波先生的个人网盘上找到。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值