JTAG链路测试方法及其装置转让专利

申请号 : CN200810097597.0

文献号 : CN101470170B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 曹锦业

申请人 : 华为技术有限公司

摘要 :

本发明提供一种JTAG链路测试方法及其装置。所述JTAG链路测试方法包括向JTAG链路置入一组全1指令码;根据所述全1指令码,选择1位移位数据寄存器连接在各个待测器件上,且所述移位数据寄存器捕获各个待测器件的状态;将包含特征码的测试向量通过JTAG链路置入所述移位数据寄存器中;移位数据寄存器输出的各个移位数据寄存器捕获的待测器件的状态和测试向量中的特征码;根据所述移位数据寄存器输出的待测器件的状态和特征码,判断JTAG链路是否正常。通过本发明实施例提供的技术方案,能够简单、方便的实现对JTAG链路的测试。

权利要求 :

1.一种联合测试行动组JTAG链路测试方法,用于测试由待测器件组成的JTAG链路,其特征在于,包括:向JTAG链路置入一组全1指令码,所述全1的指令码的长度大于或等于待测试器件的数量;

根据所述全1指令码,JTAG链路选择1位移位数据寄存器连接在JTAG链路各个待测器件上,且所述移位数据寄存器捕获各个待测器件的状态;

按照测试时钟,将包含特征码的测试向量中的比特通过JTAG链路依次输入各个移位数据寄存器中,所述测试向量的长度大于待测试器件的数量;

按照测试时钟,依次输出各个移位数据寄存器中捕获的待测器件的状态和测试向量中的特征码;

根据所述移位数据寄存器输出的待测器件的状态和特征码,判断JTAG链路是否正常。

2.根据权利要求1所述的JTAG链路测试方法,其特征在于,所述特征码为包含任意非全0的一个或多个比特。

3.一种联合测试行动组JTAG链路测试装置,用于测试由待测器件组成的JTAG链路,其特征在于,包括:测试时钟单元,用于产生测试时钟;

输入单元,用于向待测试的器件置入一组全1指令码,所述全1的指令码的长度大于或等于待测试的器件的数量,以及置入包含特征码的测试向量,所述测试向量的长度大于待测试器件的数量,并按照所述测试时钟单元产生的测试时钟,向移位数据寄存器依次输入所述测试向量中的比特;

指令寄存器,用于根据所述输入单元置入的全1指令码,选择1位的移位数据寄存器连接在各个待测器件上;

移位数据寄存器,用于根据输入单元置入的测试向量,按照所述测试时钟,依次输出各个移位数据寄存器捕获的待测器件的状态和测试向量中的特征码;

判断单元,用于根据移位数据寄存器输出的待测器件的状态和特征码,判断JTAG链路是否正常。

4.一种通信设备,包括JTAG链路测试装置,用于测试由待测器件组成的JTAG链路,其特征在于,包括:测试时钟单元,用于产生测试时钟;

输入单元,用于向待测试的器件置入一组全1指令码,所述全1的指令码的长度大于或等于待测试的器件的数量,以及置入包含特征码的测试向量,所述测试向量的长度大于待测试器件的数量,并按照所述测试时钟单元产生的测试时钟,向移位数据寄存器依次输入所述测试向量中的比特;

指令寄存器,用于根据所述输入单元置入的全1指令码,选择1位的移位数据寄存器连接在各个待测器件上;

移位数据寄存器,用于根据输入单元置入的测试向量,按照所述测试时钟,依次输出各个移位数据寄存器捕获的待测器件的状态和测试向量中的特征码;

判断单元,用于根据移位数据寄存器输出的待测器件的状态和特征码,判断JTAG链路是否正常。

说明书 :

JTAG链路测试方法及其装置

技术领域

[0001] 本发明涉及电子技术领域,特别涉及一种JTAG链路测试方法及其装置。

背景技术

[0002] 为了解决超大规模集成电路的测试问题,由联合测试行动组(JETA G,JointTest Action Group)提出了边界扫描技术,它通过存在于器件输入输出管脚与内核电路之间的边界扫描单元(BSC,Boundary Scan Description)对器件及其外围电路进行测试,从而提高了器件的可控性和可观察性,解决了现代电子技术发展带来的上述测试问题,可以较方便地完成由现代器件组装的电路板的测试。 通常这种测试被称为JTAG链路测试。
[0003] 现有技术提供的JTAG链路测试,一般都是基于单板的JTAG链路已经明确,然后使用一组或多组和JTAG链路一一对应的测试向量来进行测试。在JTAG链路测试过程中,从BSC的输入端输入特定的测试向量,然后观察BSC的输出端输出的测试结果,根据所述测试结果判断该JTAG链路是否正常。
[0004] 因此,在进行本发明创造过程中,发明人发现现有技术中至少存在如下问题:现有技术提供的技术方案中,对于测试不同的JTAG链路,需要输入不同的测试向量,因此现有技术提供的JTAG链路测试方法不具备通用性,使用起来不方便。

发明内容

[0005] 本发明实施例要解决的技术问题是提供一种JTAG链路测试方法及其装置,能够避免测试不同的JTAG链路需要输入不同的测试向量。
[0006] 为解决上述技术问题,本发明实施例的目的是通过以下技术方案实现的:
[0007] 本发明实施例提供一种JTAG链路测试方法,其包括:
[0008] 向JTAG链路置入一组全1指令码,所述全1的指令码的长度大于或等于待测试器件的数量;
[0009] 根据所述全1指令码,JTAG链路选择1位移位数据寄存器连接在JTAG链路各个待测器件上,且所述移位数据寄存器捕获各个待测器件的状态;
[0010] 将包含特征码的测试向量通过JTAG链路置入所述移位数据寄存器中,所述测试向量的长度大于待测试器件的数量;
[0011] 移位数据寄存器输出的各个移位数据寄存器捕获的待测器件的状态和测试向量中的特征码;
[0012] 根据所述移位数据寄存器输出的待测器件的状态和特征码,判断JTAG链路是否正常。
[0013] 本发明实施例还提供一种JTAG链路测试装置,其包括:
[0014] 输入单元,用于向待测试的器件置入一组全1指令码,所述全1的指令码的长度大于或等于待测试的器件的数量,以及置入包含特征码的测试向量,所述测试向量的长度大于待测试器件的数量;
[0015] 指令寄存器,用于根据所述输入单元置入的全1指令码,选择1位的移位数据寄存器连接在各个待测器件上;
[0016] 移位数据寄存器,用于根据输入单元置入的测试向量,输出各个移位数据寄存器捕获的待测器件的状态和测试向量中的特征码;
[0017] 判断单元,用于根据移位数据寄存器输出的待测器件的状态和特征码,判断JTAG链路是否正常。
[0018] 本发明实施例还提供一种通信设备,包括JTAG链路测试装置,用于测试由待测器件组成的JTAG链路,包括:
[0019] 输入单元,用于置入一组全1指令码,所述全1的指令码的长度大于或等于待测试的器件的数量,以及置入包含特征码的测试向量,所述测试向量的长度大于待测试器件的数量;
[0020] 指令寄存器,用于根据所述输入单元置入的全1指令码,选择1位的移位数据寄存器连接在各个待测器件上;
[0021] 移位数据寄存器,用于根据输入单元置入的测试向量,输出各个移位数据寄存器捕获的待测器件的状态和测试向量中的特征码;
[0022] 判断单元,用于根据移位数据寄存器输出的待测器件的状态和特征码,判断JTAG链路是否正常。
[0023] 通过本发明实施例提供的JTAG链路测试方法及其装置,通过移位数据寄存器捕获各个待测器件的状态,当移位数据寄存器输入含特征码的测试向量时,输出待测器件的状态和测试向量中的特征码,因此根据输出的待测器件的状态和特征码,能够判断JTAG链路是否正常,对于不同的JTAG链路可以输入相同的测试向量,能够简单、方便的实现对JTAG链路的测试。

附图说明

[0024] 图1为本发明JTAG链路测试方法一个实施例的流程图;
[0025] 图2为本发明JTAG链路测试装置一个实施例的结构图。

具体实施方式

[0026] 本发明实施例提供一种JTAG链路测试方法及其装置。 为使本发明的技术方案更加清楚明白,以下参照附图并列举实施例,对本发明进一步详细说明。
[0027] 请参照图1,为本发明JTAG链路测试方法的第一实施例的流程图。 本实施例中,假设连接在JTAG链路上的待测试的器件有三个。
[0028] JTAG链路测试的具体过程包括:
[0029] 步骤101:向JTAG链路置入一组全1指令码,所述全1的指令码的长度大于或等于待测试的器件的数量;
[0030] 待测试的器件通过JTAG接口串接在一起,形成JTAG链路。 其中,每个待测试的器件都连接在对应的JTAG接口上,每个JTAG接口均包括四个输入接口和一个输出接口。 其中,四个输入接口分别为:测试数据输入(TDI,TestDate Input)、测试时钟输入(TCK,Test Clock Input)、测试模式选择(TMS,TestMode Selection Input)、测试复位(TRST Test Reset Input),输出接口为测试数据输出(TDO,Test Date Output)。 数据通过TDI引脚输入JTAG接口;数据通过TDO引脚从JTAG接口输出;TMS用来设置JTAG接口处于某种特定的测试模式;TRST用于测试复位,低电平有效。
[0031] 因此,向JTAG链路中的TDI引脚输入一组全1的指令码。对所有器件而言,全1指令码为BYPASS指令。 所述全1的指令码需要包含足够多的比特位,能够保证JTAG链路上的待测器件之间的指令寄存器均能移入1个比特位的指令,因此所述全1的指令码的长度要大于或等于待测试的器件的数量。
[0032] 步骤102:根据所述全1指令码,选择连接在JTAG链路中的每个JTAG接口的TDI和TDO之间的1位的移位数据寄存器,且所述选择的移位数据寄存器捕获各个待测器件的状态;
[0033] 待测试器件的输入输出管脚之间连接有边界扫描寄存器单元,通常,边界扫描寄存器单元包括数据寄存器和指令寄存器。 指令寄存器用来实现对数据寄存器的控制,数据寄存器用来实现对芯片的输入输出的观察和控制。 对于待测试器件的输入管脚,可以通过与之相连的数据寄存器把数据加载到该输入管脚中;对于待测试器件的输出管脚,也可以通过与之相连的数据寄存器捕获(Capture)该输出管脚上的输出信号。
[0034] 本实施例中,通过BYPASS指令可以选择具有1比特位的移位数据寄存器,因此通过向JTAG链路置入一组足够长的全1指令码,相当于选择1位的移位数据寄存器,连接在JTAG链路中的每个JTAG接口的TDI和TDO之间。 所述1位的移位数据寄存器在数据移位过程中捕获的状态是0比特。
[0035] 步骤103:通过JTAG链路向所述移位数据寄存器置入包含特征码的测试向量,所述测试向量的长度大于待测试器件的数量;
[0036] 所述特征码可以为包含任意非全0的一个或多个比特。 如果特征码所包含的比特数大于待测试的器件数量,所述测试向量可以只包含特征码,也可以包含其他比特;如果特征码的所包含的比特数小于待测试的器件数量,可以在测试向量中添加其他比特直到测试向量的长度大于待测试器件的数量。所述测试向量以右移方式排列。 例如本实施例中,待测试的器件有三个,假设特征码是0101,则输入JTAG链路的测试向量可以为...1110101、...0000101等等。
[0037] 所述测试向量是在TCK的驱动下,通过TDI接口一位一位串行输入JTAG链路中的,也就是说每个TCK的时钟周期,均向TDI接口输入一位测试向量中的比特。由于每个JTAG接口的TDI和TDO之间连接了1个1位的移位数据寄存器,因此所述测试向量在TCK的控制下,最终将会通过TDI接口输入到所述移位数据寄存器中,而所述移位数据寄存器所捕获的待测试器件的状态以及特征码也会被TDO接口一位一位串行输出。
[0038] 步骤104:移位数据寄存器输出测试结果,所述测试结果包括各个移位数据寄存器捕获的待测器件的状态和测试向量中的特征码;
[0039] 下面举例具体描述JTAG链路测试向量输入和测试数据输出的过程:
[0040] 本实施例中,有三个待测试的器件连接在JTAG链路上,假设置入JTAG链路的测试向量为...1110101,其中0101为特征码。
[0041] 在全1的指令输入JTAG链路后,移位寄存器从各待测试器件捕获的状态均为0。
[0042] 当TCK第一个时钟周期的触发沿到来时,测试向量的第一个比特1通过TDI接口输入第一个待测试器件对应的移位数据寄存器中,同时,第三个待测试器件对应的移位数据寄存器中的0从TDO接口输出JTAG链路,因此TCK第一个时钟周期里,从JTAG链路输出的比特为0;
[0043] 当TCK第二个时钟周期的触发沿到来时,测试向量的第二个比特0通过TDI接口输入第一个待测试器件对应的移位数据寄存器中,同时,第一个待测试器件中原先存储的1被移位到第二个待测试器件对应的移位数据寄存器中,第二个待测试器件中原先存储的0被移位到第二个待测试器件对应的移位数据寄存器中,第三个待测试器件对应的移位数据寄存器中的0从TDO接口输出JTAG链路,因此TCK第二个时钟周期里,从JTAG链路输出的比特为0;
[0044] 当TCK第三个时钟周期的触发沿到来时,测试向量的第三个比特1通过TDI接口输入第一个待测试器件对应的移位数据寄存器中,同时,第一个待测试器件中原先存储的0被移位到第二个待测试器件对应的移位数据寄存器中,第二个待测试器件中原先存储的1被移位到第三个待测试器件对应的移位数据寄存器中,第三个待测试器件对应的移位数据寄存器中的0从TDO接口输出JTAG链路,因此TCK第三个时钟周期里,从JTAG链路输出的比特为0;
[0045] 当TCK第四个时钟周期的触发沿到来时,测试向量的第四个比特0通过TDI接口输入第一个待测试器件对应的移位数据寄存器中,同时,第一个待测试器件中原先存储的1被移位到第二个待测试器件对应的移位数据寄存器中,第二个待测试器件中原先存储的0被移位到第三个待测试器件对应的移位数据寄存器中,第三个待测试器件对应的移位数据寄存器中的1从TDO接口输出JTAG链路,因此TCK第三个时钟周期里,从JTAG链路输出的比特为1;
[0046] 以此类推,经过7个TCK周期后,从JTAG链路输出的比特依次为0101000。
[0047] 步骤105:根据所述移位数据寄存器输出的待测器件的状态和特征码,判断JTAG链路是否正常。
[0048] 例如,输出的测试结果中包含完整的特征码,且偏移了3个0,链路上待测时器件数目为3个,因此可以判断待测试器件均正常。
[0049] 请参照图2,为本发明JTAG链路测试装置一个实施例的结构图。 所述JTAG链路测试装置包括输入单元21、指令寄存器22、移位数据寄存器23,测试时钟输入单元24、判断单元25。
[0050] 所述输入单元21,用于向待测试的器件置入一组全1指令码,所述全1的指令码的长度大于或等于待测试的器件的数量,以及置入包含特征码的测试向量,所述测试向量的长度大于待测试器件的数量。
[0051] 所述特征码可以为包含任意非全0的一个或多个比特。 如果特征码所包含的比特数大于待测试的器件数量,所述测试向量可以只包含特征码,也可以包含其他比特;如果特征码的所包含的比特数小于待测试的器件数量,可以在测试向量中添加其他比特直到测试向量的长度大于待测试器件的数量。
[0052] 所述选择单元22,用于根据所述接收单元21接收的全1指令码,选择1位的移位数据寄存器连接在各个待测器件上。
[0053] 对所有器件而言,全1指令码为BYPASS指令。 通过BYPASS指令可以选择具有1比特位的移位数据寄存器,因此通过向JTAG测试装置置入一组足够长的全1指令码,相当于选择1位的移位数据寄存器,连接在JTAG测试装置上。
[0054] 所述移位数据寄存器23,用于根据输入单元置入的测试向量,输出各个移位数据寄存器捕获的待测器件的状态和测试向量中的特征码。
[0055] 所述测试时钟单元24,用于产生测试时钟;所述输入单元21具体为第一输入单元,用于置入一组全1指令码,所述全1的指令码的长度大于或等于待测试的器件的数量,以及置入包含特征码的测试向量,所述测试向量的长度大于待测试器件的数量,并按照所述测试时钟,向所述移位数据寄存器23依次输入所述测试向量中的比特,所述移位数据寄存器23具体为第一移位数据寄存器,用于按照所述测试时钟,将待测器件的状态以及特征码作为测试结果依次输出。
[0056] 在全1的指令输入JTAG链路后,移位寄存器从各待测试器件捕获的状态均为0。
[0057] 所述判断单元25,用于根据移位数据寄存器输出的待测器件的状态和特征码,判断JTAG链路是否正常。
[0058] 另外,本发明实施例还提供一种通信设备,包括JTAG链路测试装置,用于测试由待测器件组成的JTAG链路。
[0059] 所述JTAG链路测试装置包括:
[0060] 输入单元,用于置入一组全1指令码,所述全1的指令码的长度大于或等于待测试的器件的数量,以及置入包含特征码的测试向量,所述测试向量的长度大于待测试器件的数量;
[0061] 指令寄存器,用于根据所述输入单元置入的全1指令码,选择1位的移位数据寄存器连接在各个待测器件上;
[0062] 移位数据寄存器,用于捕获各个移位数据寄存器待测器件的状态和测试向量中的特征码;
[0063] 判断单元,用于根据移位数据寄存器捕获的待测器件的状态和特征码,判断JTAG链路是否正常。
[0064] 所述JTAG链路测试装置还可以进一步包括:
[0065] 测试时钟单元,用于产生测试时钟;
[0066] 所述输入单元具体为第一接收单元,用于置入一组全1指令码,所述全1的指令码的长度大于或等于待测试的器件的数量,以及置入包含特征码的测试向量,所述测试向量的长度大于待测试器件的数量,并按照所述测试时钟单元产生的测试时钟,向所述移位数据寄存器依次输入所述测试向量中的比特,
[0067] 所述移位数据寄存器具体为第一移位数据寄存器,进一步用于按照所述测试时钟,依次输出待测器件的状态以及特征码。
[0068] 通过本发明实施例提供的JTAG链路测试方法及其装置,通过移位数据寄存器捕获各个待测器件的状态,当移位数据寄存器输入含特征码的测试向量时,输出待测器件的状态和测试向量中的特征码,因此根据输出的待测器件的状态和特征码,能够判断JTAG链路是否正常,对于不同的JTAG链路可以输入相同的测试向量,能够简单、方便的实现对JTAG链路的测试。
[0069] 以上对本发明所提供的一种JTAG链路测试方法及其装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明所揭示的技术方案;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。