一种边界扫描测试的实现方法及装置的制作方法

文档序号:6368954阅读:295来源:国知局
专利名称:一种边界扫描测试的实现方法及装置的制作方法
技术领域
本发明涉及测试技术,特别涉及一种边界扫描测试的实现方法及装置。
背景技术
在边界扫描器件中,每个重要的输入输出管脚,都增加了一个多用途的存储单元,被称为边界扫描单元。输入管脚上的边界扫描单元称为输入单元,输出管脚上的边界扫描单元称为输出单元,输入和输出是相对器件的内部逻辑来看的。在边界扫描器件中,边界扫描单元被组织成并行输入PI(Paralell Input)、并行输出PO(Paralell Output)的移位寄存器,如图1所示。并行输入(Capture)操作,使器件输入管脚上的信号值,被装入输入单元中;器件内部逻辑的值被装入输出单元中。并行输出(Update)操作,使输出单元里的值送到器件的输出管脚上;输入单元里的值送到器件内部逻辑上。
图2是一种常见的边界扫描单元,称之为BC_1(Boundary-Scan Cell)。边界扫描单元里的值还可以串行地移位,从器件专用的输入管脚TDI开始,到器件的专用输出管脚TDO结束。测试时钟从器件的另一个专用输入管脚TCK输入,而运行模式由器件的专用输入管脚TMS来串行控制。JTAG组织建议的芯片边界扫描测试结构如图3,其中包含以下内容1、四个专用测试管脚,测试数据输入TDI(Test Data In),测试数据输出TDO(Test Data Out),测试模式选择TMS(Test Mode Select)和测试时钟TCK(Test Clock),一个可选的测试复位管脚TRST(Test Reset)。这些测试管脚一起被称之为测试通道口TAP(Test Access Port)。
2、器件每个重要的输入输出管脚上都有一个边界扫描单元,内部连接成串行的边界扫描寄存器(Boundary Scan)。
3、由输入信号TCK、TMS和TRST来控制TAP有限状态机。
4、一个N(N>=2)位的指令寄存器(除指令寄存器外的寄存器统称为数据寄存器)。
5、一个1位的直通(Bypass)寄存器。
6、一个可选的32位识别码寄存器,用来保留一个永久的器件识别码。
TAP控制器,根据指令寄存器中的命令码,在Update_IR时译码指令。不同的指令选中不同的寄存器,命令译码后,TDI至被选中寄存器至TDO串接在一起。
JTAG组织定义的强制测试命令如下1、外部测试(Extest)指令,选中边界扫描寄存器,指令码为全0。
2、直通(Bypass)指令,选中直通寄存器,指令码为全1。
3、预装/采样(Preload/Sample)指令,选中边界扫描寄存器,指令码未作规定。图4表示的是TAP控制器的16状态机,在TAP状态框外的数字是TMS的值。TAP控制器的状态在TCK的上升沿改变,而控制器的输出值在TCK的下降沿改变。从图中可以看到,16状态机中有6个稳定状态(在TMS不变时,状态机状态不变)测试逻辑复位(Test_Logic_Reset),空闭(Run_Test_Idle),指令移位(Shift_IR),数据移位(Shift_DR),指令移位暂停(Pause_IR)和数据移位暂停(Pause_DR)。
TAP控制器,在上电初始化和TRST=0时,状态为Test_Logic_Reset,当TMS保持为1(缺省值)时,状态机状态保持不变。另外,无论状态机处在什么状态,保持TMS为高,输入连续5个TCK时钟后,状态机都能回到Test_Logic_Reset状态。在Test_Logic_Reset状态下,选中的寄存器是直通寄存器或识别码寄存器(如器件有识别码寄存器,则选中识别码寄存器;如没有识别码寄存器则选中直通寄存器)。在TMS和TCK的控制下,可将指令移入指令寄存器(选择图4中的右侧路径),在更新指令(Update_IR)时,指令将会被译码,同时会选中相应的数据寄存器。此时,TMS和TCK控制状态机,走图4左边的路径(不经过Test_Logic_eset),可将数据从TDI移入,同时数据寄存器中原来的数据从TDO移出。
图5是JTAG测试的基本原理。图中是由4个器件组成的JTAG链,TCK和TMS送到每个器件上,这样,每个器件的TAP状态机是同步运行的。TDI接到右上的第一个器件U1上,它的TDO输出接至下一个器件U2的TDI输入,将4个器件连成一条串行链,最后U4的输出接至TDO。
这样,就可以将指令和测试数据串行地送到各个器件上,对各器件的信号连接关系进行测试。
在图5连接成的JTAG链中,假定所有器件的命令寄存器均为2位,每个器件管脚的边界扫描单元均为1位,器件上方为输入管脚,下方为输出管脚。如果要测试器件U3的O1输出与器件U2的I3输入的连接关系,可以让U3的O1管脚,分别输出高电平和低电平,在U2的I3上进检测。具体实现步骤,从Test_Logic_Reset开始,控制TMS,使所有器件的TAP状态均进入Shift_IR,链上U1和U4两个器件移入Bypass指令,U2和U3两个器件移入Extest外部测试命令指令,数据序列如下,X为任意值TMS01100 00000001 10TDIXXXXX 11000011 XX上面的TMS和TDI数据,在TCK时钟的控制下移入器件后,U1和U4装入了直通指令,U2和U3装入了外部测试指令。所有器件均处在Run_Test_Idle状态。
然后控制TMS,使所有器件的TAP状态进入到Shift_DR,移入测试数据(由于U1和U4器件是Bypass,移位21次后,最先移入的TDI数据,到达U3器件最后一个管脚的扫描单元),TDI和TMS的数据序列如下
TMS 100 000000000000000000001 10TDI XXX 11111XXXXX11111XXXXXX XX走完上面的状态时,所有器件的TAP状态,又处在Run_Test_Idle。但在经过更新数据(Updata_DR)状态时,从左至右第8个TDI的值1将从U3的O1管脚上输出。
上面的两次边界扫描单元移动数据时,都没有关注TDO的输出,在每次从TDI输入数据到器件的同时,也从器件的TDO输出数据。当再次从Run_Test_Idle状态进入Shift_DR,中间的捕获数据(Capture_DR)会将输入管脚脚上的值装入移位寄存器中。对器件U2的I3脚来说,在执行Capture_DR时,会将U3的O1输出值捕到移位寄存器中,接着进入到Shift_DR时,移出的数据如下TMS 100 000000000000000000001 10TDO XXX XXXXXXXXXXXXXXXXXX1XX XXTDI XXX XXXXXXXXXXXXXXXXXXXXX XX由于U2的I3排在扫描链的第19位(从TDO开始计数),所以值1会在TDO数据的第22个时候移出来(前面有3位TAP走状态机时的TDO移出值)。同理可让O1输出0,从I3上采回0。
以上是边界扫描测试的基本原理。用来产生和采样这些边界扫描信号(TRST、TCK、TMS、TDI和TDO)的器件或系统称为测试总线控制器TBC(Test_Bus_Control)。
在测试示例中可以看到,如果扫描链上有较多的边界扫描单元,测试数据量将会相当大(TMS、TDI和TDO);如果希望测试的连接关系越多,测试的数据量也越大。因此,如何组织测试数据,也是边界扫描测试的一个重点。
目前,有很多厂家和公司都有自己的边界扫描测试总线控制器,如TI公司的LVT8980,NS公司的SCANSTA101等,用以控制一个产品的系统级或单板级的JATG测试总线,以实现对产品和单板的结构测试。
对于边界扫描的测试数据,业界应用较多的是一种称之为SVF格式的文件,它是一种文本文件,用文本来表示指令和相应的测试数据。因此,这种格式的文件数据量较大。
NS有一种EVF格式的文件,是专为该公司的SCAN系列测试总线控制器(SCANPSC100、SCANSTA101)而设计的。这种文件格式的数据量比SVF稍小,但需要专门的硬件支持。
Altera公司为实现其可编程器件的加载,设计了一种Jam解释器。边界扫描数据,可以以压缩格式来存放,数据量较小。但这种数据文件不能分段处理。大数据的存放仍需占用较多的资源。
业界还有一些厂家和供应商有自己的语言和解释器,但通常都需专用的软件或硬件来支持,解释边界扫描测试命令。且测试数据的数据量都比较大,占用的资源较多。

发明内容
本发明提供一种边界扫描测试的实现方法及装置,以解决现有测试技术中因需要处理数据太多而导致占用资源太多的缺点。
本发明的实现方案一种边界扫描测试的实现方法,该方法通过终端、测试总线控制器配合对边界扫描器件进行测试,所述终端向测试总线控制器提供边界扫描测试数据,所述总线控制器向边界扫描器件提供测试数据输入数据和测试模式选择,包括如下步骤A、终端根据边界扫描测试数据中的命令,将该边界扫描测试数据中的测试向量数、扫描链长度及测试模式选择序列分别写入测试总线控制器的测试向量计数器、扫描链长度寄存器和测试模式选择序列移位寄存器;
B、测试时钟控制测试总线控制器状态机将扫描链长度值写入扫描链长度计数器,以及移出测试模式选择序列移位寄存器的值,同时将移出的该值返回到该寄存器的尾部重新排队以形成循环移位;C、在测试模式选择序列的第8位移出时,检测扫描链长度计数器;如果扫描链长度计数器的值表示无测试数据输入数据移出,则继续循环移位,然后进行步骤E;否则,测试模式选择序列移位寄存器停止移位,并保持测试模式选择值为该第8位值不变;D、测试总线控制器状态机在测试时钟控制下将测试数据输入移位寄存器中的数据移出,每移出一位将扫描链长度计数器递减,直到扫描链长度为1时移出最后一位数据;E、继续循环移位测试模式选择序列移位寄存器,并在移出第16位时检查测试向量计数器,如果测试向量计数器的值表明所有测试向量已全部传送完,则测试总线控制器状态机停止测试,否则将测试向量计数器的值减1并进行步骤B。
根据上述方法进行步骤D前测试总线控制器状态机检查测试数据输入移位寄存器是否有数据,如果没有数据则停止测试时钟并等待写入数据。
步骤D中还包括终端将测试数据输出移位寄存器中的数据读出。
所述边界扫描测试数据由多个双字节的数据包头和测试数据输入/测试数据输出数据组成,该数据包头中包括命令/状态字、特殊控制字、测试向量数、扫描链长度及测试模式选择序列。
测试数据输入数据与测试向量数和扫描链长度对应,并且其总长度为16的倍数。
一种边界扫描测试总线控制器,其包括总线,通过接口与外部控制器交互信息;
测试总线控制器控制状态机,用于控制测试总线控制的状态;测试向量计数器,与总线连接和测试总线控制器控制状态机相连;扫描链长度值寄存器,与总线连接,用于存储扫描链上扫描单元的个数;扫描链长度计数器,通过总路线与扫描长度值寄存器连接,通过信号线与测试总线控制器控制状态机连接;测试模式选择序列移位寄存器,分别与总线和测试总线控制器控制状态机连接;测试数据输入移位寄存器,分别与总路线和测试总线控制器控制状态机连接;测试数据输出移位寄存器,与总线连接;时钟,向前述的计数器和寄存器提供工作时钟。
本发明有如下优点1、测试总线控制器不需要解释边界扫描的各种命令。
2、由于测试模式选择(TMS)序列的重用,减少了传输的数据量、同时减少了CPU的占用时间。
3、软件和硬件实现简洁,占用资源少。采用本发明特定格式的数据,几乎可以完全透明地传递测试数据。需要的软硬件资源都很少。若用Altera的EPLD逻辑实现,宏单元将不超过128个。可充分节省硬件资源。


图1为边界扫描原理示意图;图2为BC-1扫描单元结构示意图;图3为芯片JTAG结构示意图;图4为测试通道口控制器状态示意图;图5为JTAG测试基本原理图;
图6为本发明的边界扫描测试总线控制器原理图;图7为本发明的流程图。
具体实施例方式
从边界扫描测试的基本原理测试示例中可看出测试数据的规律(见背景技术),在进行状态迁移时(一行两边的测试模式选择值),测试数据输入(TDI)和测试数据输出(TDO)是没有意义的;而在数据移位(Shift_IR和Shift_DR状态)时(一行中间的TMS值),测试模式选择值(TMS)有规律,即进入数据移位状态后,测试模式选择值一直保持不变,只在离开数据移位状态时才开始变化。另外,从图4的状态机中可以看到,无论是要进行指令移位还是数据移位,从一个稳定状态到另一个稳定状态最多不会超过8个测试模式选择值。
用16个测试模式选择序列来控制状态机的走向,其中第8个和第16个测试模式选择值使状态机处在稳定状态。对于移入指令的操作,TMS的序列如下1------89-----16TMS11011000 11000000在第7个TMS处,TAP状态机进入Shift_IR状态。第8位TMS处,TDI数据开始移入扫描链(IR寄存器),在最后一位数据移入TDI之前,TMS将一直保持第8位的值不变。在最后一位TDI数据移入时,TMS的第9位同时移入,并用TMS的第10位至第15位来控制TAP的状态迁移,进入Run_Test_Idle。TMS的第16位,可控制TAP状态机在此等待。
由以上原理可知,对于任一条指令扫描操作和数据扫描操作,只用16位测试模式选择数据就可以完成,可以大大减少测试的数据量。如将一次数据(指令)扫描移入过程称为一个向量,那么,实际边界扫描测试中,有很多测试向量用的是相同的测试模式选择序列,如从Run_Test_Idle到Shift_DR再回到Run_Test_Idle。这样可用一个计数器来表示扫描链的长度,另外一个计数器来表示测试向量的个数。反复使用同一个测试模式选择序列,而不需要新的测试模式选择数据。
基于上述原理,为减少边界扫描测试数据的数据量、便于测试数据的通信传输。定义一种特定格式的边界扫描测试数据,如下表所示。

表中,前面是8个双字的数据包头,后面跟随的是测试数据。根据命令的定义,也可以没有测试数据。其中命令/状态使用者可自行定义,主要的两种命令为向扫描链发送数据(即不需要接收扫描链上的TDO)和同时收发扫描链上的数据(即在从TDI输入数据的同时,接收扫描链上的TDO输出数据)两种。也可定义其它的控制命令,由软件或硬件解释。在这种情况下,后面的参数可以不起作用。状态用于反向传送时的应答。当不需要反向传送TDO时,只应答数据包头。
TMS控制序列前面介绍的TMS序列。
特殊控制传递此次扫描操作的一些控制,使用者可自行定义。由软件或硬件解释。
扫描链长度扫描链上边界扫描单元的个数。
测试向量数重复使用TMS序列的次数减一,即当只使用一次时,此值为0。
TDI数据与测试向量数和扫描链长度对应的TDI数据。对每个测试向量而言(即进行一次数据移位或指令移位),在计算总的TDI数据长度时,长度应取为16的倍数。即如果扫描链长为21,则需用两个16位来传送TDI数据,且后面不足16位的TDI数据放在TDI数据的低位上(靠齐16位数据中的0位)。假如测试向量数为3,则总的TDI数据为2*16*3位数据,用6个16位来传送。因此,表1中的n=(扫描链长度/16+余数)*测试向量数,在该式中如果扫描链长度能被16整除,余数为0,否则余数为1。
保留保留备用。用户可根据自己的需求定义和解释。
本实施例利用上述特定的边界扫描测试数据,通过终端(如计算机终端或嵌入式CPU等功能类似的装置)、测试总线控制器和边界扫描器件连接对边界扫描器件进行测试,终端向测试总线控制器提供边界扫描测试数据,总线控制器向边界扫描器件提供测试数据输入数据和测试模式选择。
参阅图6,用逻辑实现的测试总线控制器包括CPU总线,通过接口与终端交互信息;测试总线控制器状态机,用于控制测试总线控制的状态迁移;16位的测试向量计数器,与CPU总线连接和控制状态机相连;16位的扫描链长度计数器,与CPU总线连接,用于对扫描单元的个数进行计数;16位的扫描链长度值寄存器,与总线连接,用于存储扫描链上扫描单元的个数;16位的测试模式选择序列移位寄存器,分别与总线和控制状态机连接;8位或16位的测试数据输入移位寄存器,分别与总路线和控制状态机连接;8位或16位的测试数据输出移位寄存器,与所述总线连接;时钟,向前述的计数器和寄存器特提供工作时钟。
测试终端或嵌入式CPU预根据表一的描述的命令格式,预置测试总线控制器中的测试向量计数器、扫描链长度计数器和TMS序列寄存器后,启动测试。测试总线控制器中的状态机根据前面的预置值来迁移自己的状态。
若用Altera的EPLD实现,宏单元将不超过128个。
参阅图6、图7,进行测试的步骤如下步骤10产生特定格式的边界扫描测试数据提供给终端。该数据中包括命令、TMS控制序列扫、描链长度、测试向量数和TDI数据。在本例中命令为向扫描链发送数据。
步骤20终端对边界扫描测试数据中的命令进行解释,并根据向扫描链发送数据命令将边界扫描测试数据中的测试向量数、扫描链长度值和TSM序列分别写入测试总线控制器的测试向量计数器、扫描链长度值寄存器和TSM序列移位寄存器。
步骤30终端控制测试起停控制信号,起动测试。
此时TBC控制器状态机,在工作时钟的控制下,将扫描链长度值装入扫描链长度计数器,并控制TSM序列移位寄存器移位,在每个测试时钟(TCK)的下降移出TMS值,同时将TMS移出的值反回到TMS序列寄存器的尾部重新排队,即形成循环移位。
步骤40移出前7位TMS值后,将第8位TMS值送出,同时,检测扫描链长度计数器是否为0。
如果为0,表明不需TDI数据移位,只是做TAP状态迁移,转到步骤60。
如果描链长度计数器不为0,则表明有TDI数据要移出,此时TBC控制器状态机将检测TDI移位寄存器中有无数据等待移出,如没有,则会停住TCK输出,等待CPU装入TDI数据。
步骤50终端重复检测TDI移位寄存器可写数据标志,写入TDI数据(2n个字节)。若需要采样TDO数据,则还需从TDO移位寄存器中读出采样回来的数据。
TBC控制器状态机检测到TDI移位寄存器中有数据等待移出后,在TCK下降沿,移出TDI数据。同时在TCK上升沿采样TDO数据并移位。每移出一位,将扫描链长度计数器减1。此时TMS一直保持TSM序列中第8位TMS的值。当扫描链长度计数器被减到1时,移出这一测试向量的最后一位TDI。
步骤60继续移出TMS序列的后8位TMS值。
步骤70在移出TMS序列的最后一位TMS值时(即第16位时),检查测试向量计数器是否为0。
如果为0,表明所有测试向量已全部传送完,TBC控制器状态机停住TCK,等待停止测试信号。
如果不为0,表明测试向量未全部传送完,返回到步骤30。由于此时的TMS移位寄存器总共循环移位过16次,回到了最初CPU装入的初始值状态。返回到第30步会重新将扫描链长度值装入扫描链长度计数器。
步骤80终端控制测试起停控制信号,停止测试。
TBC控制器状态机收到停止测试信号后,回到初始状态。
由以上可以看出,利用表一定义数据结构,几乎可以完全透明地传递测试数据。需要的软硬件资源都很少。若用Altera的EPLD逻辑实现,宏单元将不超过128个。可充分节省硬件资源。另外由于TMS序列的重用,减少了测试数据量,同时还减少了CPU的操作,可以减少CPU的占用时间。
权利要求
1.一种边界扫描测试的实现方法,该方法通过终端、测试总线控制器配合对边界扫描器件进行测试,所述终端向测试总线控制器提供边界扫描测试数据,所述总线控制器向边界扫描器件提供测试数据输入数据和测试模式选择;其特征在于该方法包括步骤A、终端根据边界扫描测试数据中的命令,将该边界扫描测试数据中的测试向量数、扫描链长度及测试模式选择序列分别写入测试总线控制器的测试向量计数器、扫描链长度寄存器和测试模式选择序列移位寄存器;B、测试时钟控制测试总线控制器状态机将扫描链长度值写入扫描链长度计数器,以及移出测试模式选择序列移位寄存器的值,同时将移出的该值返回到该寄存器的尾部重新排队以形成循环移位;C、在测试模式选择序列的第8位移出时,检测扫描链长度计数器;如果扫描链长度计数器的值表示无测试数据输入数据移出,则继续循环移位,然后进行步骤E;否则,测试模式选择序列移位寄存器停止移位,并保持测试模式选择值为该第8位值不变;D、测试总线控制器状态机在测试时钟控制下将测试数据输入移位寄存器中的数据移出,每移出一位将扫描链长度计数器减1,直到扫描链长度为1时移出最后一位数据;E、继续循环移位测试模式选择序列移位寄存器,并在移出第16位时检查测试向量计数器,如果测试向量计数器的值表明所有测试向量已全部传送完,则测试总线控制器状态机停止测试,否则将测试向量计数器的值减1并进行步骤B。
2.如权利要求1所述的方法,其特征在于进行步骤D前测试总线控制器状态机检查测试数据输入移位寄存器是否有数据,如果没有数据则停止测试时钟并等待写入数据。
3.如权利要求1所述的方法,其特征在于步骤D中还包括终端将测试数据输出移位寄存器中的数据读出。
4.如权利要求1、2或3所述的方法,其特征在于所述边界扫描测试数据由多个双字节的数据包头和测试数据输入/测试数据输出数据组成,该数据包头中包括命令/状态字、特殊控制字、测试向量数、扫描链长度及测试模式选择序列。
5.如权利要求4所述的方法,其特征在于测试数据输入数据与测试向量数和扫描链长度对应,并且其总长度为16的倍数。
6.如权利要求4所述的方法,其特征在于所述数据包头中还包括保留字节。
7.如权利要求4所述的方法,其特征在于命令/状态和特殊控制字分别占一字节,测试向量数、扫描链长度、测试模式选择序列和一组测试数据输入/测试数据输出数据分别占两字节。
8.一种边界扫描测试总线控制器,其特征在于包括总线,通过接口与外部控制器交互信息;测试总线控制器状态机,用于控制测试总线控制的状态;测试向量计数器,与总线连接和测试总线控制器状态机相连;扫描链长度值寄存器,与总线连接,用于存储扫描链上扫描单元的个数;扫描链长度计数器,通过总路线与扫描长度值寄存器连接,通过信号线与测试总线控制器状态机连接;测试模式选择序列移位寄存器,分别与总线和测试总线控制器状态机连接;测试数据输入移位寄存器,分别与总路线和测试总线控制器状态机连接;测试数据输出移位寄存器,与所述总线连接;时钟,向前述的计数器和寄存器提供工作时钟。
9.如权利要求8所述的测试总线控制器,其特征在于所述的测试向量计数器、扫描链长度值寄存器、扫描链长度计数器和测试模式选择序列移位寄存器均为16比特位。
10.如权利要求8或9所述的测试总线控制器,其特征在于所述的测试数据输入移位寄存器和测试数据输出移位寄存器为8比特位或16比特位。
11.如权利要求8所述的测试总线控制器,其特征在于所述的测试总线控制器状态机为16状态机。
全文摘要
本发明公开了一种边界扫描测试的实现方法,该方法通过定义特定的数据结构,重复利用一组16位的测试模式选择序列进行测试,大幅度地减少了测试数据量。若用Altera的EPLD逻辑实现,宏单元将不超过128个,可充分节省硬件资源。本发明还公开了一种边界扫描测试总线控制器。
文档编号G06F11/22GK1577284SQ0314390
公开日2005年2月9日 申请日期2003年7月28日 优先权日2003年7月28日
发明者王 华 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1