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


     

    图一

    图1 中“TAP Controller”其实质上是一个状态机,它根据不同的操作指令能产生16 个不同的状态,具体状态逻辑参考图2。从一个状态切换成另一个状态总是发生在TCK 的上升沿,由TMS从两个状态选择其中一个状态。在测试向量寄存器中,既有指令寄存器(IR),又有数据寄存器(DR),为了区分是指令还是数据,扫描链路中的状态图有两个独立的完全类似的结构(Scan DR / Scan IR)。


    测试操作的最重要步骤是移入和同步移出测试数据(DR SHIFT),新的数据进入移位链,测试数据传送到测试单元(DR-update)的输出锁存器中,对于指令寄存器(IR-shift,IR-capture,IR-update)同样如此。除了边界扫描寄存器(Boundary Scan Register),IEEE 1149.1标准还定义了在数据寄存器附近至少存在一个旁路寄存器,用来将TDI 到TDO 的可以直连接。数据寄存器根据指令寄存器的指令寻址,然后在TDI 和TDO 的引脚之间,各个数据寄存器结合成移位路径。正如图2 所示,从一个状态转换成另一个状态由信号TMS 的逻辑电平决定。“TAP ”是一个时钟系统,它的时钟是由信号TCK 提供。信号TMS 和信号TCK共同作用,使得数据一位一位从TDI 移入,最后由TDO 移出。
    各种边界扫描单元是否有效取决于是否实行测试或者得到激励。


    图3 就是一个最普通的边界扫描单元的结构图。第一个锁存器锁存数据由移位寄存器(SHIFT DR)决定从前一个扫描单元移出的数据(SCAN IN)或者是扫描输入的数据(DATA IN),并且由CLOCK DR控制锁存输出。在第一个锁存器移出数据稳定后,第二个锁存器由UPDATE DR 控制锁存输出第一个锁存器移出的数据。MODE 信号的电平决定是测试模式还是工作模式。边界扫描单元既有输入又有输出。一般来说,在每一个物理引脚不论输入还是输出,都有一个独立的边界扫描单元,但区别是输入在每一个物理引脚的后面,而对于所有的输出是在每一个物理引脚的前面。

    MODE, SHIFT DR, UPDATE DR 以及CLOCK DR 这些全局信号线与所有扫描单元都相连接,而且同一个时间状态都一样。这样,TAP 状态在CAPTURE DR 时,所有的扫描单元都能在CLOCK DR 的上升沿取样输入数据。测试数据的输出也相类似,它是在TAP 状态在UPDATE DR 的下降沿时将扫描输入端锁存并输出。所有的扫描单元都能完成以上功能。所有的扫描单元运行在工作模式还是在测试模式,由MODE 信号控制选择其一,同时运行在两个模式是不可能的。而MODE 信号是由扫描指令控制的。

    九大指令

     指令(必须/可选) 操作码  模式   选择数据寄存器
     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的输出。

     

     



  • 相关阅读:
    8月18号心得
    题解
    考试题
    1055心得
    1055解
    1055题
    心得
    考试三道题
    2017.8.1 居然是倒数第二天了……
    1055
  • 原文地址:https://www.cnblogs.com/YINBin/p/10768948.html
Copyright © 2020-2023  润新知