JTAG和IJTAG是电子设计与测试领域两个密切相关但目标和应用场景存在显著差异的工业标准。它们的关系和区别可以从多个维度进行深入分析。
1. 核心关系:演进与扩展
简单来说,IJTAG是JTAG标准在更高层次、更复杂场景下的演进和功能扩展。可以将JTAG视为基础协议,而IJTAG是在此基础上构建的更灵活、更强大的片上测试与调试基础设施。它们共同服务于芯片和系统的可测性设计(DFT),但侧重点不同。
| 特性维度 | JTAG (IEEE 1149.1) | IJTAG (IEEE 1687) |
|---|---|---|
| 主要目标 | 板级/芯片间互连测试、程序下载与调试 | 芯片内部嵌入式仪器的访问与控制 |
| 关注层次 | 芯片引脚(Pad)与PCB板级 | 芯片内部IP核、逻辑模块、传感器等 |
| 核心架构 | 固定的边界扫描链(Boundary Scan Chain) | 可动态重配置的访问网络(Instrument Connectivity Network, ICN) |
| 控制单元 | TAP (Test Access Port) 控制器(16状态有限状态机) | 内嵌式控制器(如TAP、微控制器等),通过SIB动态配置路径 |
| 描述语言 | BSDL (Boundary Scan Description Language) | ICL (Instrument Connectivity Language) 和 PDL (Procedural Description Language) |
| 数据寄存器 | 固定的几种(如Bypass, ID, Boundary Scan) | 可灵活定义和访问的TDRs (Test Data Registers),数量众多 |
| 测试效率 | 链式串行访问,路径固定,长链访问慢 | 支持并行、分段和动态配置访问路径,效率更高 |
| 应用场景 | PCB焊接测试、芯片功能调试、Flash编程 | 内建自测试(BIST)、电压/温度监控、IP核配置与验证、复杂SoC调试 |
2. 详细对比分析
2.1 设计哲学与架构差异
JTAG的核心是边界扫描(Boundary Scan)。它在芯片的每个I/O引脚内部插入一个边界扫描单元(Boundary Scan Cell),并将它们串接成一条或多条固定的扫描链。通过TAP控制器的状态机(包含Capture-DR, Shift-DR, Update-DR等状态),可以控制这些单元来捕获引脚状态或施加测试激励,从而测试芯片引脚间的互连以及芯片本身的基本功能。其访问路径是静态且全局的。
-- 简化的JTAG边界扫描单元结构示意(基于) -- 包含用于捕获(Capture)、移位(Shift)和更新(Update)的触发器 entity boundary_scan_cell is port ( TCK : in std_logic; -- 测试时钟 TDI : in std_logic; -- 串行输入 TDO : out std_logic; -- 串行输出 CaptureDR : in std_logic; -- 来自TAP控制器的控制信号 ShiftDR : in std_logic; UpdateDR : in std_logic; -- 连接至芯片核心逻辑和引脚 Core_In : in std_logic; -- 来自核心的数据 Core_Out : out std_logic; -- 输出到核心的数据 Pad_In : in std_logic; -- 来自引脚的数据 Pad_Out : out std_logic -- 输出到引脚的数据 ); end entity;IJTAG的核心是可重配置的访问网络(ICN)和嵌入式仪器(Instrument)。它定义了标准的访问接口(如TAP)和一套描述语言(ICL/PDL),用于描述如何通过扫描链网络访问芯片内部的各种测试、测量和调试资源(统称为Instrument)。关键组件是段插入位(Segment Insertion Bit, SIB),它像一个开关,可以动态地将某一段扫描链接入或旁路主访问路径,从而实现灵活的拓扑结构 。
// 简化的IJTAG网络节点(如SIB)结构示意(基于) module sib ( input logic tck, tms, tdi, // 标准JTAG接口 input logic select, // 控制信号,决定是否接入该段 output logic tdo, // 连接至下级仪器或另一个SIB output logic tdi_down, input logic tdo_down ); logic shift_reg; // 移位寄存器,用于存储控制位 always_ff @(posedge tck) begin if (select) shift_reg <= tdi; // 在Shift-IR/DR状态下移位控制位 end // 根据控制位决定数据路径 assign tdo = shift_reg ? tdo_down : tdi; // 旁路或接入 assign tdi_down = shift_reg ? tdi : 1'bz; endmodule2.2 应用场景与优势对比
JTAG的优势与典型应用:
- 优势:协议成熟、硬件简单、兼容性极广。几乎所有现代处理器、FPGA、复杂芯片都支持JTAG。
- 应用:
- PCB/板级测试:检测BGA封装芯片的焊接短路、开路问题 。
- 程序下载与调试:通过JTAG接口将程序烧录到Flash,并进行源码级单步调试、断点设置 。
- 芯片功能验证:访问芯片内部的某些寄存器,进行基本的功能测试。
IJTAG的优势与典型应用:
- 优势:灵活性和可扩展性。能够高效管理成百上千个嵌入式仪器,支持并行测试,减少测试时间。
- 应用:
- 内建自测试(BIST)控制:动态配置和管理内存BIST(MBIST)、逻辑BIST(LBIST)的启动、停止和结果读取 。
- 模拟与混合信号测试:访问片上的ADC、DAC、PLL等模块的配置和状态寄存器。
- 系统监控与调试:读取温度传感器、电压监控器的数据,进行性能分析和功耗管理 。
- IP核集成与测试:为第三方IP核提供标准化的测试访问接口,方便集成到大型SoC中 。
2.3 标准与工具的协同
在工具链和流程上,两者也紧密相关。IJTAG的描述语言ICL/PDL比JTAG的BSDL更强大,能够描述复杂的层级关系和仪器行为。现代的DFT工具(如Siemens Tessent)同时支持JTAG和IJTAG,并能将传统的BSDL描述转换为ICL描述,以便在IJTAG框架下复用JTAG的测试资源 。在实际的SoC中,JTAG TAP控制器常作为IJTAG网络的顶层访问入口,即通过标准的JTAG接口(TCK, TMS, TDI, TDO)来访问整个IJTAG网络 。
3. 总结与关系比喻
可以将二者的关系比喻为:
- JTAG像一条贯穿整个建筑的固定主干道(扫描链),它连接了所有房间(芯片引脚)的大门,检查门是否完好、通道是否畅通(互连测试),并提供了一个基础的入口(调试)。
- IJTAG则是在这个建筑内部署了一套智能的电梯和门禁系统(ICN与SIB)。它不仅知道如何到达每个房间,还能动态规划路径(旁路不需要访问的区域),直接进入房间内部(嵌入式仪器),操作里面的各种设备(BIST、传感器等),功能更强大、访问更高效。
因此,IJTAG并非取代JTAG,而是扩展和增强了JTAG的能力,使其从专注于外部互连测试,延伸到芯片内部复杂资源的深度访问与控制,以适应现代大规模、高集成度SoC的设计与测试需求 。
参考来源
- 【DFT】【JTAG & IJTAG】【1】JTAG 基础
- 【JTAG】IJTAG vs JTAG vs IEEE1500 ECT
- SSN和ijtag在scan中的应用与区别
- JTAG调试原理
- IEEE 1687 ICL 与 BSDL 对比解析:3 个关键差异与转换实践
- DFT学习笔记(二)|常用的DFT技术