数字信号处理

平台

DSP 设计支持

入门

在 SoC 调试中重塑 JTAG 的作用


您希望在设计方案中率先实施 JTAG 调试接口吗? 本文将详尽介绍即将推出的 IEEE 1149.7 标准的相关情况

作者:Stephen Lau,德州仪器

作为获得广泛采用的 IEEE 1149.1 (JTAG) 标准的扩展集,IEEE 1149.7 的使用历史已经超过了 20 年。尽管新的 IEEE 1149.7 标准还未最终确定,但其发展方向及其为工程师带来的优势已非常明确,对于开发和调试复杂系统软件的工程师而言尤为如此。

IEEE 1149.7 标准的制定全面兼顾了以下目标,即保持与 IEEE 1149.1 标准的向后兼容性、提升调试性能。此外,IEEE 1149.7 还能降低片上系统 (SoC) 的引脚数量要求,支持标准化的节电工作条件。需要指出的是,虽然 IEEE 1149.7 为现有标准增加了大量功能,但它并不会取代 IEEE 1149.1。新标准保持了向后兼容性,任何电路板或系统只要集成了支持新旧两种标准的芯片,就能运行检测或调试程序。

优势


新标准可为设计人员提供多种优势,其中包括:

  • 能以业界标准方式控制调试——逻辑功耗。IEEE 1149.1 只有一种“始终开启”的状态,而 IEEE 1149.7 则能提供四种可选电源模式,以支持超低功耗器件。
  • 能快速通过多个器件访问系统中的特定器件。通过实施系统级旁路,扫描环节得以大幅缩短,从而直接改进了调试体验。
  • 推出星形拓扑配合标准的串行拓扑。采用叠层裸片器件 (stacked-die device)、多芯片模块和插入卡的设计人员希望使用星形拓扑,因为这有助于简化物理器件互连。
  • 除了 IEEE 1149.1 所需的四引脚操作外还支持双引脚操作。由于当今大多数系统都集成了多个 IC,在尺寸方面有着较大限制,因此减少引脚和线迹数量有助于设计人员满足空要求,支持附加功能引脚和/或降低封装成本。后台数据传输 (BDX) 为发送仪表数据提供了业界标准的方法。以前,不同的厂商就仪表信息采用不同的方法,难以提供工具支持。通过标准化,用户将能更方便地选择多种产品。

JTAG 基础


由于新标准大多使用当前的术语与技术,因此有必要先简单回顾一下 IEEE 1149.1 标准。

上世纪 80 年代中期,多层电路板与非引线框架 IC 成为标准。不过,由于 IC 之间的连接不能检测子系统探针,因此检测工作越来越困难。为解决这一问题,于 1985 年成立了联合测试行动小组 (JTAG)。

尽管人们认为 IEEE 1149.1 标准实际上就是JTAG,不过该标准的官方称谓是“标准测试访问端口与边界扫描架构 (Standard Test Access Port and Boundary-Scan Architecture)”。它定义了利用边界扫描检测 PC 电路板的检测访问端口 (TAP) 等。

目前,JTAG 不仅用于 PC 电路板检测,还能访问集成电路的子块,并调试嵌入式系统。

JTAG 社群主要包括 IC 设计人员,他们在每个芯片中嵌入检测逻辑,并将芯片中的内部寄存器与 JTAG 扫描链连接在一起。IEEE 1149.1 的硬件组件包括:

  • TAP:四个必备的引脚为:测试数据输入 (TDI)、测试数据输出 (TDO)、测试模式选择 (TMS) 以及测试时钟 (TCK)。此外还定义了可选的 TRST/复位引脚。驱动为低时,将对内部状态机进行复位。
  • TAP 控制器:具备 16 种状态,以 TMS 与 TCK 作为输入的有限状态机。输出包括 ClockDR、UpdateDR、shiftDR、ClockIR、UpdateIR、ShiftIR、Select、Enable、TCK 以及可选的 TRST。
  • 指令寄存器
  • 测试数据寄存器

图 1 显示了 IEEE 1149.1 的基本 IC 架构。

测试工程师以这些结构作为内建自测试 (BIST) 的访问点。JTAG 与 BIST相结合,广泛用于部署低成本嵌入式测试解决方案,可检测短路、开路和逻辑错误等静态故障。

就软件调试而言,设计工程师采用内电路仿真器来访问片上调试模块,通过 JTAG 接口集成到 CPU 中。这种调试模块使软件开发人员能实现 CPU 的加载、运行、暂停与步进。

IEEE 1149.7


目前看来,IEEE 1149.7 标准将于 2009 年得到批准。开发这种新标准的 IEEE 工作组与其他两家标准机构合作,即为移动产业处理器接口 (MIPI) 联盟与 NEXUS (IEEE ISTO 5001) 协会,并从中获得借鉴。

新标准的功能被方便地分为六大类,每一类都建立在前一类开发的基础之上。

前四类(Class T0 到 T3)基本上是对 IEEE 1149.1 的扩展。第二组(T4 与 T5)实施并使用高级双引脚运行模式。通过采用这种步进式开发模式,工作组可使设计人员能够更简单地了解新标准的含意,并确保器件能够实现必需的功能。

Class T0


Class T0 可确保符合当前业界基于 IEEE 1149.1 的测试基础局端标准。对于 T0 而言,测试逻辑复位 (Test-Logic-Reset) 后,所有 IEEE 1149.7 多插头器件 (multi-tap device) 都必须符合 IEEE 1149.1 的强制指令行为要求,并就旁路指令实施一位 DR 扫描。

Class T1


Class T1 定义的控制系统随后成为各类高级功能的基础。

简而言之,这种创新型控制系统采用兼容于 IEEE 1149.1 的 TAP 状态序列和状态移动监视功能来创建控制系统,同时在确保符合 IEEE 1149.1 标准的芯片完全不受影响时采用零位 DR Scans (ZBSs) 来设置符合 IEEE 1149.7 标准的芯片状态。

ZBS 状态序列在 IEEE 1149.1 系统中几乎从不与 BYPASS 和IDCODE 指令同时使用,也不执行真正的功能(见图 2),这是由于带上述指令的 ZBS 比较温和,不能实际改变测试逻辑的状态。

图 2 中的黄线标出了 ZBS 状态序列的路径。当“监视”并对工程师启动的 ZBS 数量进行计数时,结构图左侧的卡通图代表控制系统。

ZBS 从选择 DR 扫描 (Select-DR-Scan) 状态开始,经过退出 (exit) 到 Update-DR TAP 控制器状态,而不会对 TAP 控制器造成任何改变。对于 IEEE 1149.1 标准而言,不会产生任何影响。

不过,图 2 中的卡通图标所代表的逻辑会持续计算 ZBS 状态序列启动的次数。当从 Capture-DR 状态转至 Shift-DR 状态时,ZBS 序列断开,这时逻辑就会锁定 ZBS 计数。

锁定 ZBS 计数会激活等于 ZBS 计数(从 1 到 7)的控制级。控制级2用于创建 IEEE 1149.7 系统的指令。控制级功能如表 1 所示。

当特定事件发生时就会退出控制级。这些事件包括 Select-IR-Scan 控制器状态、Test-Logic-Reset 状态以及某些旨在同步 Class T4 与 T5 控制器操作的控制器指令与事件。

此外,Class T1 也有助于控制功率。IEEE 1149.7 可定义四种降低功率的模式,专用于电路板测试、芯片测试以及应用调试等情况。为调试逻辑定义的功率下降模式有助于降低系统功耗,并为工具厂商开发可降低功率的器件提供一种标准的方式。

Class T2


通过实施芯片级的旁路机制,Class T2 可通过大幅缩短扫描链来为芯片计数高的应用提升调试性能。

由于每个芯片中的 TAP 控制器均为串行链接,因此在 IEEE 1149.7 标准之前,采用多个器件的设计方案在扫描链的每个器件中都要包括 TAP 控制器。图 3 给出的示例系统包括带五个内核的三个器件,扫描链共有 100 位。如果开发人员希望探询链上的最后一个器件,就必须每次扫描 100 个位。这样做的效率非常低,且会导致嵌入式软件开发人员访问器件的速度降低。

IEEE 1149.7 的全新芯片级旁路功能可冻结器件中无关的 TAP 控制器,将扫描位从 100 个减少为 8 个(图 3)。这就减少了需要在系统中移出的位数,从而大幅提高了扫描链的性能。 此外,该机制还可发挥防火墙的作用。如果目标电路板在工作时采用热连接,防火墙就非常实用。在 IEEE 1149.1系统中,连接至正在运行的目标可能导致不可预计的运行情况,这是因为这种连接可能会导致调试逻辑的混乱,从而产生电气问题。有了旁路机制作为防火墙,只有启动预确定的序列才能访问芯片 TAP。这一步骤可确保调试测试系统只有在目标有了稳定的电气连接后才能建立连接。

Class T3


通过使用芯片选择机制和 link-ID 分配,Class T3 使开发人员能创建星形配置,而不是 IEEE 1149.1 标准的传统串联配置。T3 采用 Star-4 或 Wide Star 配置方法,如图 4 所示。

为了创建星形配置,必须对相关芯片进行编号。不过在启动时,芯片在控制器中并未记录号码。Class T3 定义了一种方法,可以为芯片分配编号,这基本上是一种基于 IDCODE 与唯一 ID 的排除法。

Class T3 可创建星形配置,能够支持双引脚操作的重大革新,这种新技术在 Class T4 中实施。我们还应注意到,IEEE 1149.7 系统加电启动与 IEEE 1149.1 兼容。通过 ZBS 配置 IEEE 1149.7 逻辑,可提供 IEEE 1149.7 的高级功能。

Class T4


虽然我们可将 Classes T0 至 T3 视为IEEE 1149.1 标准的扩展,但 Class T4 却在功能方面实现了质的飞跃。主要优势在于所需的引脚数量从四个减少到了两个,而且还采用了新式扫描格式,支持优化处理,在引脚数量减少的配置情况下维持与改进了性能。

在器件裸片叠层的情况下,我们应该尽可能减少连接器的数量,因为连接器越多,芯片叠层就越困难,连接器越少也就越简单,因为每个连接器都会增加额外的成本。

简而言之,双引脚配置的关键就是清除原来的数据线路 (TDI/TDO),并通过 TMSC 线路实现串行数据的双向传输。

通过无缝星形配置减少引脚数可为采用叠层裸片与多芯片模块的系统设计人员提供重要特性,因为他可简化贴装点上调试引脚的布局,进而简化部件制造、贴装与存储,从而降低成本。 为了实施上述功能,我们采用 Class T3 中的无缝星形配置,这时不带有 TDI 与 TDO。在采用 Star-2 或 narrow-star 配置的图 5 中显示了有关情况。

除了减少引脚数之外,Class T4 还定义了优化的下载专用扫描模式。在这些模式中,只有有用的信息才可下载。为了在引脚减少的情况下提高性能,可以增加一倍的时钟速率。再配合上述的优化事务处理,我们就能保持性能,甚至在某些情况下还可提高性能。

Class T5


Class T5 使测试端口能同时执行调试与仪表操作,从而减少了仪表专用的引脚数量。由于仪表数据可在闲置时传输,而且任务过程中闲置时候很多,因此可以有效减少引脚数。通常情况下,有两个引脚是仪表专用的。

此外,Class T5 还支持自定义协议。该特性的很大部分都包括在标准中,因为工作组认识到许多器件厂商都已具备自定义协议了。Class T5 可将该进程标准化,从而在实施自定义协议的同时确保用于启用它们的业界标准方法得以实施。

实施


芯片设计人员如果希望在器件中实施 IEEE 1149.7 功能,可在器件中集成协议转换器。该转换器简化了添加基本 IEEE 1149.7 的工作,比如可减少引脚与现有仅兼容于 IEEE 1149.1 的 IP 的连接。例如,图 6 显示了一个具有 IEEE 1149.1 支持的双核器件的实例。如果芯片设计人员希望添加 IEEE 1149.7 支持,只需在器件中采用协议转换器即可。这样做的优势在于,无需修改内核 A 与内核 B 的调试逻辑。此外,由于 IEEE 1149.7 系统还能在后台传输仪表数据,因此还能从系统中减少两个引脚,从而实现如图 7 所示的只需要两个功能引脚的器件。

我们从图 7 中看到,还可通过协议转换器使现有 IEEE 1149.1 系统与 IEEE 1149.7 器件协同工作,从而实现现有软硬件基础设施的重复使用,降低终端用户的入门成本。

双引脚比四引脚更好


IEEE 1149.7 标准在创建时就考虑到了要实现的一些目标,比如,特别是要确保与 IEEE 1149.1 的向后兼容性,并提高调试性能。IEEE 1149.7 还降低了片上系统 (SoC) 的引脚数量要求,并可提供标准化的省电工作环境。此外,该新标准还旨在简化多芯片模块与叠层裸片器件的制造,同时满足不同于 IEEE 1149.1 标准的现行工作实践的要求。

关于作者


Stephen Lau 现任德州仪器仿真技术产品经理,负责市场营销、产品定义(最终用户产品与 IP)以及第三方战略合作伙伴关系与客户关系管理。