JTAG 电路原理图,Boundary scan 测试以及主要指令操作总结

一.JTAG 状态机,右边是指令寄存器分支,左边是数据寄存器分支

  • • 只有在移位时 ( Shift-DR or shift-IR ) TDO输出才有效

  • • 测试操作受TMS输入的序列“1”和 0” 控制

  • • TRST可以异步复位

  •  当TMS在连续五个TCK时钟周期内保持高时,TAP控制器 ( TAP controllen)也会自动进入测试逻辑复位状态 ( Test-Logic-Reset)

  • 关于Pause-DR/Pause-IR状态

    这两个状态是暂停状态,比如说我们要通过32bit的总线从一个48长度的扫描链中读出相应管脚的状态,我们需要读两次才能将48bit的扫描链状态读出来,先经过32个TCK时钟读出高32bit的状态,然后转到Pause-DR状态等待总线读响应,响应完成后再进入Shift-DR经过16个TCK时钟读出低16bit数据。

二.让我们来看看实际如何来访问这条边界扫描链。

下图所示的是测试芯片及其被当前指令选定的长度为6的边界扫描链。由下图可以看出,当前选择的边界扫描链由6个边界扫描移位寄存器单元组成,并且被连接在TDI和TDO之间。

图片

       TCK 时钟信号与每个边界扫描移位寄存器单元相连。每个时钟周期可以驱动边界扫描链的数据由TDI到TDO的方向移动一位这样,新的数据可以通过 TDI 输入一位边界扫描链的数据可以通过 TDO 输出一位。经过6个时钟周期,就可以完全更新边界扫描链里的数据,而且可以将边界扫描链里捕获的6位数据通过TDO全部移出来。

三. bscan 的基本结构

BST电路主要包括

  • • 指令寄存器(IR)、

  • • 旁路寄存器(BR)、

  • • 边界扫描寄存器(BSR)

  • • 测试访问端口(TAP)控制器。

器件识别寄存器(ID)有32位,

  • • 其中31~28位是版本号,

  • • 27~12位是器件序列号,

  • • 11~1位是厂家标识,

  • • 第0位为1。

  • IEEEStd114911测试总线使用TCK的2个时钟沿, TMS和TDI在TCK的上升沿被采样,TDO在TCK的下降沿变化。

四. 对jtag 主要指令的理解,三步法:1.拆解 2.组装 3.数据流

#1.拆解

JTAG 电路拆解为4个部分:

1.Test Access Port(TAP)

2.TAP Controller(FSM->Finite State Machine)

3.Instruction Decoder

4.Register(Bypass Reg/Boundary Scan Reg/Data Reg/Instruction Reg)

#2.组装

     要对一个Core logic电路进行Boundary Scan 测试,需要给这个Core Logic添加JTAG相关组件电路;他们连接关系如下图,这个图如果要强行记忆不难,但是忘记它也会很容易

图片

如何能一次记对,只记一次呢?通过数据流的方式记忆,当然如果你耐心将这本书第8章学习完,也能达到这个效果。(量变引起质变)

图片

 第三:数据流

      通过Data Flow 来学习不同组件间的逻辑连接关系。上面这张图画的太好了;我们基于这张图来学习。根据我个人的理解,JTAG 1149.1 协议最初目的:为了解决PCB板级芯片的互连线之间的测试,又叫Boundary Scan Test 。通过上面的图片,我们分析数据流:

      ①来自TDI端口的数据流向,如下图所示:

Boundary Scan Re/Data Reg/Bypass Re/Instruction Re的数据都来自TDI。从TDI Shift-In 的数据会经过这些Register,再流向MUX1,最后通过MUX2选择后从TDO输出。

图片

      ②TAP Controller的数据流向:

TAP控制器产生控制信号;这些控制信号,流向Instruction Register、流向MUX选择器、流向解码器单元(后续通过PRELOAD和EXTEXT例子,更好理解),也产生Enable 信号控制三态缓冲器

图片

     ③流向TDO的数据:

BoundaryScan Reg/Data Reg/Bypass Reg的输出Data经MUX1(Mux 的Select信号由解码器输出信号提供)选择后-> 到MUX2(Mux的Select端信号由TAP Controller的输出信号提供)-> 经过DFF ->再三态缓冲器(使能端被TAP Controller的Enable信号控制)输出端流向 TDO

要画好电路图:重点理解这两个MUX1/MUX2的作用

MUX1 的S端由解码器单元驱动,且MUX1会选择当前指令选中的 数据寄存器来进行输出。

MUX2 的S端由TAP Controller驱动,它可以选择使用一个Data Reg输或者选择 指令寄存器 输出到TDO

#强制命令BYPASS/EXTEXT /INTEXT /SAMPLE /PRELOAD 的操作流程

这里只介绍BYPASS PRELOAD 和EXTEXT这三个命令的操作流程

1.BYPASS

旁路指令通过绕过一些不参与某一轮测试的Core单元,来缩短扫描链的长度。只要使用Bypass Reg ,测试时我们就需要用一个时钟周期通过它,并达到下一个芯片内核。图8-12 显示在BYPASS模式中,如何bypass左侧的Core 来缩短扫描链长度,达到减少测试时间的目的。要bypass 一个芯片内核,芯片的TAP Controller 会首先进入状态图的指令栏(第8章的223页有介绍),使用BYPASS指令和 更新该芯片的指令寄存器(图8-7是指令寄存器单元,里面包含一个Capture Reg 和一个 Update Reg),然后TAP Controller 移动到Capture_DR 状态下将0加载到bypass寄存器单元内。TAP Controller 进入到这种状态后,将置于SHift_DR状态。并在被绕过期间一直保持这个状态。

图片

下图8-12 还显示了一个没有被绕过的Core,右侧芯片的边界扫描寄存器被选定,串行数据被移入这个Boundary Scan Cell(简称BSC)内。同时此处独立的TAP Controller 也在Shift_DR 状态中发生移位。

图片

2.PRELOAD

该指令先进入TAP controller的状态图的指令分支上,在Update_IR状态下加载对应的指令向量;PRELOAD指令会初始化扫描单元。指令被加载到 Instruction Register 之内,TAP Contrller的状态切换到Shift_DR 状态,并执行指令的第一个阶段:

       在Shift_DR状态下,SelectBR = 1  ShiftBR =1 都被置1;边界扫描寄存器被选中,并且处于Scan_Shifting的模式下 (下图是Boundary Scan cell:的数据通路): Chain的通路被选通,完成必要的测试Data Shift过程。

图片

完成数据Shifting之后,TAP Controller 的状态切换到Update_DR状态并执行指令的第二个阶段:

      在UPdate_BR 会为BSC里的Update Reg提供时钟,这样我们可以在其他测试指令中使用Update Reg里面的数据。下图整个PRELOAD指令的数据流图。

图片

 2.EXTEXT

      外测试指令是 1149.1边界扫描标准的一个重要指令。

该指令会测试两个芯片之间的连线,它在引脚允许模式下工作,它不是测试Core logic内部的连线。因此当正在测试芯片之间的互连线时,这个芯片不能工作在正常的Function模式。(这个很好理解,参考下面BSC示意图理解;在Boundary Scan 测试模式下,ModeControl =1 ,这个时候Din 和Dout 之间的连接被暂时断开,也就是Core logic 被暂时Isolation)

      第一次执行EXTEXT命令,必须先执行PRELOAD流程,将测试Data预加载到BSC的Update Reg中。预加载完成后,一旦EXTEXT指令被加载到Instruction Reg内,预加载的测试Data就会在输出引脚Dout 处变为可用。第一轮EXTEXT测试完成后,在移出的上一轮测试Response时,新的测试数据也会移入。

图片

下面我们讨论一下,已经完成第一轮EXTEXT之后,如下图8-15: 这时如果激活EXTEXT测试指令时,左边 Core1 的逻辑输出和右边Core2 的逻辑输入之间的互连线正在测试中。在测试后Data被移入Core1 的 Capture Reg内,TAP Controller进入Update_DR状态,以将测试数据Load到Update Reg内。在这种状态下,将Mode Control 设置1后,测试数据会通过互连线驱动下一个芯片Core2的输入端。

图片

特别感谢微信公众号 TrustZone 和 少数派说投资 的总结

### 回答1: 非常感谢您对我的提问。关于您的问题,我将尽力为您解答。 JTAG(Joint Test Action Group)是一种测试和调试电路板的标准接口。它通常用于芯片级别的调试和测试,并可以通过单个测试接口控制多个设备。JTAG可以在设计、制造和测试过程中检测硬件故障和错误,并允许进行调试和修复。在产品的生命周期中,JTAG也可以用于软件更新和配置。 Boundary scan是一种基于JTAG测试技术,它使用在芯片上的专门设计的测试电路来检测和验证电路板的连通性和功能。Boundary scan测试可以通过JTAG接口进行控制,使用少量的针脚就可以检测和测试整个电路板。Boundary scan技术通常用于测试电路板的集成电路和连接器,并在电路板的设计、制造和维护过程中发挥重要作用。 希望我的回答对您有所帮助。如果您有其他问题,请随时提出,我将尽力为您解答。 ### 回答2: JTAG(Joint Test Action Group)和边界扫描(Boundary Scan)是测试和调试电子系统中常用的两种技术。 JTAG是一种基于硬件的测试方法,它通过在芯片上添加专门的测试逻辑电路(TAP控制器)来实现测试功能。TAP控制器可以通过特殊的测试信号激活芯片内部的测试模式,从而对芯片进行测试和调试。JTAG能够测试芯片内部的逻辑电路、寄存器和其他关键部分,以验证芯片的正确性和功能。 边界扫描是一种基于软硬件的测试方法,它通过在芯片的边界上添加边界扫描电路来实现测试功能。边界扫描电路控制器(BSC)可以读取和写入芯片的边界扫描测试数据,对芯片内部的逻辑电路进行测试。边界扫描主要用于测试芯片引脚之间的连接和信号传输,检测芯片引脚的短路、开路和逻辑错误等问题。 总体来说,JTAG不仅可以进行边界扫描测试,还可以测试芯片内部的逻辑电路,因此JTAG测试范围更广。而边界扫描主要用于测试芯片的引脚连接和信号传输,适用于芯片引脚众多且复杂的场景。另外,JTAG技术需要在设计阶段进行相关电路的设计和布局工作,而边界扫描则需要为芯片添加专门的边界扫描电路。 综上所述,JTAG和边界扫描是两种不同的测试技术,各有优势和适用场景。在实际应用中,根据具体的测试需求和芯片设计情况,可以选择合适的测试方法或结合两种技术来进行综合测试。 ### 回答3: JTAG(Joint Test Action Group)和Boundary Scan是两种用于测试和调试电子设备的技术。它们可以用来检测和验证电路板上各个连接之间的连通性和电气特性。虽然两者都属于测试和调试领域,但它们有一些区别。 首先,JTAG是一种测试和调试技术,它通过扫描链(Scan Chain)来进行测试。通过在芯片上放置特殊的测试逻辑,例如JTAG Boundary Scan Register,可以对部分或全部芯片的功能进行测试JTAG技术可以用于在芯片的内部进行测试,但也可以用于外部设备的测试。 相比之下,Boundary Scan是一种更广泛的测试方法,它是由JTAG技术发展而来的。Boundary Scan扩展了JTAG的功能,可以通过在IC引脚上加入测试逻辑来测试和调试整个电路板上的连接。Boundary Scan技术允许在没有直接访问电路板上连接的情况下进行测试,因为它可以通过扫描链在IC引脚之间传递测试信号。 其次,JTAGBoundary Scan的应用范围也有所不同。JTAG主要用于测试芯片内部电路的连通性和电气特性,而Boundary Scan则更适用于测试整个电路板上的连接和信号传输。Boundary Scan技术可以检测电路板上的开路、短路和信号反射等问题,并帮助定位故障点。 此外,JTAGBoundary Scan在使用上也略有不同。JTAG测试通常需要外部测试设备与芯片连接,而Boundary Scan则通常需要专用的Boundary Scan控制器。此外,Boundary Scan还需要设计者在电路板设计过程中添加特殊的测试逻辑。 综上所述,JTAGBoundary Scan虽然有共同点,但在测试范围、功能和应用方面有所不同。JTAG主要用于测试芯片内部连接,而Boundary Scan则更适用于测试整个电路板上的连接和信号传输。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值