扩展JTAG控制器和使用扩展JTAG控制器进行功能调试的方法与流程

文档序号:25542423发布日期:2021-06-18 20:38阅读:133来源:国知局
扩展JTAG控制器和使用扩展JTAG控制器进行功能调试的方法与流程

本发明公开了一种基于扩展联合测试行动组的控制器及使用该扩展联合测试行动组的控制器进行功能调试的方法。

现代数字集成电路由基于联合测试行动组(jtag)的基础结构组成,用于功能调试,即所有寄存器都可以读写,这些寄存器连接到ic的内部总线。图1说明了如何通过jtag控制器将外部调试器连接到内部寄存器。缺点是并非所有寄存器都可以通过这种方式读写,例如内部状态机寄存器。另一个缺点是,如果总线被阻塞或处于死锁阶段,则无论如何都无法读取或写入寄存器。

每个集成电路(ic)都需要可测性设计(dft)结构来进行生产测试,以确保生产的ic的全部功能。因此,可测性设计包括向硬件产品设计添加可测试性功能的ic设计技术。增加的功能使开发制造测试和将该测试应用到设计的硬件变得更容易。制造测试的目的是验证产品硬件不包含可能对产品的正确功能产生不利影响的制造缺陷。测试可以应用于硬件制造流程中的几个步骤,也可以用于客户环境中的硬件维护。测试通常由测试程序驱动,用于发现和指示存在的缺陷(即测试失败),测试可以记录有关遇到的测试失败性质的诊断信息。诊断信息可用于定位故障源。换句话说,将来自良好电路的向量(模式)的响应与来自被测设备(dut)的向量(使用相同模式)的响应进行比较。如果响应相同或匹配,则电路良好。否则,电路的制造就不符合预期。

可测性设计的一部分是扫描测试,另一部分是内建自测试(bist)——内存和/或逻辑的内置自测试。在扫描测试中,测试ic子部件的每个触发器之间的简单连接。图2显示了这样一个结构。在扫描测试中,设计中的寄存器(触发器或锁存器)连接在一个或多个扫描链中,用于访问ic的内部节点。扫描链或扫描结构是用于可测性设计的技术。测试模式通过扫描链移入,功能时钟信号在“捕获周期”期间被脉冲化以测试电路,然后将结果移出芯片输出引脚并与预期的“良好机器”结果进行比较。除了对制造“通过/不通过”测试有用外,扫描链还可用于“调试”芯片设计。在这种情况下,芯片在正常的“功能模式”下运行(例如,计算机或移动电话芯片可以执行汇编语言指令)。在任何时候,芯片时钟可以停止,并将芯片重新配置到“测试模式”。此时,可以使用扫描链将完整的内部状态转储或设置为任何所需的值。扫描辅助调试的另一种用法是在初始状态下扫描所有内存元素,然后返回功能模式以执行系统调试。优点是无需经过许多时钟周期即可使系统进入已知状态。因此,常规的可测性设计结构提供了多个扫描链,这些扫描链由ic的串行连接寄存器组成。因此,基于jtag的可测性设计控制器是测试程序设计的核心。

本发明的挑战是使所有寄存器对外部调试器可见,这些寄存器没有连接到内部总线。还必须保证所有寄存器都可以读取或写入。另一方面,由电池供电的低功耗设备需要非常低的功耗。这意味着ic应该具有尽可能少的门数,因为门数越少意味着功耗越小。满足功能调试要求的附加硬件应具有尽可能少的门,以免增加静态和动态功耗。

因此,本发明的目的是降低功耗(动态和泄漏),但同时提供测试和调试过程的相同功能。

本发明的目的将通过扩展联合测试行动组(jtag)控制器来解决,该扩展联合测试行动组控制器通过使用集成电路(ic)上的扫描基础结构的可测性设计,测试集成电路(ic)中寄存器的触发器,所述集成电路(ic)包括至少一个扫描链,其中,调试器通过由调试控制器扩展的jtag控制器连接到扫描基础结构的可测性设计,然而,从扫描链的输出到扫描链的输入多路复用器形成反馈回路,并且根据扩展jtag控制器激活扫描链以直接测试其功能。扫描链由包含触发器的寄存器构成。

通过将基础结构的可测性设计与基础结构的调试相结合,可以节省集成电路的门电路,使外部调试器可以访问集成电路的所有寄存器,以及降低功耗。外部调试器可以访问所有内部寄存器,这是因为不再需要通过内部总线访问寄存器。因此,由于内部总线被阻塞或处于死锁状态而导致的ic内部寄存器无法读写的问题,将不再存在。

在本发明的一个实施例中,所有扫描链都具有相同数量的触发器。这样做的优点是,到下一扫描链的改变可以由移位时钟脉冲的数量来控制,这对于所有扫描链都是相同的。当所选择的扫描链中的触发器的状态被传输到带有插入调试控制器的扩展jtag控制器时,其他扫描链中的触发器的状态被分别反馈到这些扫描链的输入多路复用器。因此,如果由扩展jtag控制器选择并激活扫描链,则这些状态将得以保存,并且可以进行调试。

在本发明的另一实施例中,如果一个扫描链中的触发器的数量不同于其它扫描链,则在该扫描链中插入虚拟触发器。必须平衡每次扫描的触发器数量。如果触发器的数量不平衡,也就是说如果一个链的触发器较少,则需要插入虚拟触发器以满足要求。如果触发器数量不平衡,本发明将不起作用。

在本发明的另一实施例中,扫描链的输出连接到输出多路复用器,该输出多路复用器将扫描链的输出传输到扩展jtag控制器。这用于将所选扫描链的触发器内容馈送到jtag控制器。

在本发明的另一个实施例中,外部调试器监控ic的触发器状态,并通过扩展jtag控制器替换触发器状态。jtag控制器和外部调试器将监控扫描链的输出。在调试模式下,监控到的触发器状态或触发器状态可以用新值代替。这样做的优点是支持调试器的读取/修改操作。

在另一优选实施例中,扩展jtag控制器包括事件触发器。根据本发明,事件是jtag控制器中的周期计数器/计时器。如果达到编程的周期计数器值/计时器值,则生成事件。如果事件发生,jtag控制器将切换到可测性设计模式并停止所有时钟,这意味着系统停止。此时系统可以进行调试。如果上述事件发生,jtag控制器也可以将所有寄存器状态转移到外部或内部存储器。

在本发明的扩展jtag控制器的另一实施例中,指定扫描链的最后一个触发器被设计为硬件断点。这个扫描链在jtag控制器的设计过程中进行指定。为此,设置扫描链的输出多路复用器,以便将指定扫描链的最后一个触发器切换到jtag控制器。原则上,可以将链的所有最后的触发器作为一个事件使用。因此,jtag控制器中需要一个额外的寄存器来定义事件的极性。硬件断点用作上述定义的事件。

总之,jtag控制器通过两个附加功能进行扩展:一种周期计数器/计时器,使集成电路在一定的时间/时钟内自动运行。与单独为每个扫描链编程每个时钟周期相比,这可以提供更好的调试效果,并且速度更快。其次,硬件断点是扫描链的最后一个寄存器。相应的寄存器通过输出多路复用器定义。这需要在jtag控制器中有一个附加寄存器,该寄存器定义事件的极性,即寄存器的高电平或低电平是否有效。

这些扩展必须在jtag控制器(op代码)中定义并必须实现。

本发明的目的还包括通过使用本发明的扩展联合行动组(jtag)对ic的寄存器进行功能调试的方法,其中在调试模式下

-选定的扫描链连接到jtag控制器,

-jtag控制器监控选定的扫描链,

-jtag控制器控制输出多路复用器和所选定的扫描链的相应输入多路复用器,所述输出多路复用器用于复用所连接的扫描链的输出,而

-jtag控制器控制移位时钟周期的数量,以及

-所选定的扫描链可以由jtag控制器修改,而所选定的扫描链从jtag控制器反馈给该选定的扫描链的输入多路复用器,

-同时将ic的所有其他扫描链设置为环回模式。

在本发明方法的一个实施例中,对外部调试器未监控到的扫描链的触发器进行反馈,因此处于环回模式。这使得扩展jtag控制器的硬件设计不那么复杂。扩展jtag控制器为所有扫描链生成时钟脉冲数。如果环回不在,由于没有选定的链的内容丢失,或者剩余链的时钟控制硬件过于复杂,设备状态将会破坏,即每个扫描链需要自己的时钟脉冲发生器。

在本发明方法的另一实施例中,如果外部调试器正在访问所述扫描链,则jtag控制器切换到下一扫描链。如果外部调试器正在访问控制器,则可以将其切换到另一个扫描链。外部调试器具有选择哪个扫描链的控件。通常,调试器可以读取所有扫描链。这个构思是获取所有触发器的内容,这使得在调试器中具有完整的设计状态,这对于调试事件确实很有帮助。调试器可以通过从一个扫描链切换到另一个扫描链并转移内容来读取每个扫描链。这当然会花费时间,但是如果调试器足够智能,则只需读取必要的扫描链。

在本发明方法的另一实施例中,如果扩展jtag控制器处于可测性设计模式中,则jtag控制器控制输入多路复用器,而默认值通过扫描链进行路由。扫描链的输入多路复用器具有三个输入端,第一个用于可测性设计,第二个用于环回,第三个用于监控器/设置寄存器内容。当jtag控制器处于功能模式时,扫描链的输入多路复用器将设置为环回。jtag控制器在测试模式和功能模式下控制此输入多路复用器。输入多路复用器的默认设置是用于测试的设计。jtag控制器可以将输入多路复用器设置为功能模式,以实现环回模式以及监控/设置寄存器内容模式。

将使用示例性实施例更详细地解释本发明。

附图显示

图1ic中共同联合测试行动组的基础结构(现有技术);

图2ic中测试结构的常规设计(现有技术);

图3本发明中用于测试和调试扩展jtag控制器的合并基础结构;

图4基于本发明的扩展jtag控制器,在扫描链中插入反馈环;

图5ic内的jtag控制器的详细示意图。

图3示出了本发明的扩展jtag控制器1,其中外部调试器12通过jtag控制器连接到扫描基础结构的可测性设计,jtag控制器1由调试控制器11扩展。扫描基础结构的可测性设计与调试基础结构合并在一起,以节省ic3的门电路,同时使外部调试器12可以访问ic3的所有寄存器2,从而降低功耗。

外部调试器12可访问所有内部寄存器2,一方面无需访问内部总线,另一方面无需增加功耗。如果内部总线被阻塞或处于死锁状态,这无关紧要,因为所有寄存器2都可以通过扫描链5读写。

图4显示了扫描链5中插入的反馈回路10。模块2表示由n个触发器组成的寄存器。图4显示了两个寄存器,其中n+m连接到一个扫描链。为了保存该扫描链的所有触发器的内容,必须进行环回。每个扫描链5具有相同数量的触发器6。如果不是这种情况,则将插入虚拟触发器7,以便在每个扫描链5中具有相同数量的触发器。原因是,在调试模式中,未选定的扫描链5将其内容移回反馈回路10中进行保存,直到这些扫描链5也进行调试为止。在调试模式中,所选定的扫描链5的内容将通过合并的扩展jtag控制器1进行移动并反馈。可以在控制器中监控或替换扫描链5的内容。

图5示出了本发明中ic3内部的jtag控制器1的详细示意图。利用常规的jtag控制器进行可测性设计任务和功能调试,可以通过减少ic3中的门数来降低功耗。

用于测试/调试控制器的合并联合测试行动组(jtag)设计满足ieee1149.1标准(边界扫描)和ieee1500标准(核心封装测试)的要求。

因此,可测性设计(dft)的功能集与标准dft控件相同。可测性设计模式中的调试功能集控制输入多路复用器(imux’s),而默认值是通过扫描链输入进行路由。在调试模式下,选定的扫描链连接到控制器,该控制器控制所连接的扫描链的输出多路复用器(omux)和链的相应输入多路复用器(imux)。jtag控制器将所有其他扫描链设置为环回模式,并控制移位时钟周期数。

为了实现新的扩展jtag控制器和使用扩展jtag控制器进行功能调试的方法,需要新的jtagop代码用于调试模式、输入多路复用器控制、输出多路复用器控制、时钟网络的移位值和移位控制以及移位内容的监控和替换。

本发明的优点是不需要额外的硬件来读取和/或修改所有寄存器。使用这种新方法,可以记录所有寄存器,这是现有技术所无法做到的。在现有技术中,所有符合调试条件的寄存器必须连接到内部总线,以便调试控制器可以访问。本发明依赖于现有的可测性设计(dft)结构,并且只需要对组合jtag/调试控制器、输入和输出多路复用器以及多路复用器和时钟周期的控制逻辑添加额外的op代码。与通过总线访问每个寄存器的现有技术相比,这种方法的硬件成本非常低。

附图标记

1扩展联合行动组(jtag)控制器

2模块,寄存器

3集成电路(ic)

4基础结构的可测性设计

5扫描链

6触发器

61扫描链的最后触发器

7虚拟触发器

8输出多路复用器

9输入多路复用器

10反馈回路,环回

11调试控制器

12外部调试器

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1