2. IEEE 1149.1 标准核心概念
IEEE 1149.1 标准(又称 JTAG 边界扫描标准)定义了数字集成电路的测试与调试架构。其核心在于通过一组标准的逻辑电路和协议,实现对芯片引脚、内部逻辑及板级互连的访问与控制。本章将深入剖析该标准的四大核心支柱:标准架构、TAP 控制器、指令寄存器和数据寄存器。
2.1 标准架构
IEEE 1149.1 标准定义了一种围绕芯片外围的测试架构。该架构在芯片的每个功能 I/O 引脚与内部核心逻辑之间,插入一个称为“边界扫描单元(BSC)”的存储单元。这些 BSC 串联成一条“边界扫描寄存器(BSR)”,形成一条环绕芯片的“数字围栏”。
标准架构包含以下关键组件:
- 测试访问端口(TAP): 一组专用的测试引脚,用于控制测试逻辑。
- TAP 控制器: 一个 16 状态的有限状态机,负责管理测试操作序列。
- 指令寄存器(IR): 用于存储当前要执行的测试指令。
- 数据寄存器组(DR): 一组用于存储测试数据的寄存器,包括边界扫描寄存器、旁路寄存器、器件 ID 寄存器等。
下图展示了 IEEE 1149.1 标准架构的顶层结构,清晰呈现了 TAP、TAP 控制器、指令寄存器和数据寄存器之间的连接关系。
2.2 TAP 控制器
TAP 控制器是一个 16 状态的有限状态机(FSM),它是整个边界扫描测试逻辑的“大脑”。TAP 控制器由 TCK(测试时钟)和 TMS(测试模式选择)两个输入信号驱动。在每个 TCK 的上升沿,TAP 控制器根据 TMS 的逻辑电平进行状态跳转。
TAP 控制器的状态图分为两大分支:
- 指令寄存器(IR)分支: 用于将指令移入指令寄存器。
- 数据寄存器(DR)分支: 用于将数据移入选定的数据寄存器。
下图展示了 TAP 控制器的完整 16 状态转移图,这是 IEEE 1149.1 标准中最经典的图示之一。
2.3 指令寄存器
指令寄存器(IR)是一个可串行移位的寄存器,用于存储当前要执行的测试指令。TAP 控制器通过“Select-IR-Scan”分支将指令码从 TDI 移入 IR。指令码被译码后,用于选择要操作的数据寄存器以及定义测试操作的模式。
IEEE 1149.1 标准定义了一组强制性指令和可选指令:
| 指令类型 | 指令名称 | 指令码(示例) | 功能描述 |
|---|---|---|---|
| 强制性 | BYPASS | 111...1 | 将 TDI 与 TDO 通过 1 位旁路寄存器连接,用于旁路当前芯片。 |
| SAMPLE / PRELOAD | 000...1 | 在不影响芯片正常运行的情况下,捕获引脚状态(SAMPLE)或预加载数据到 BSR(PRELOAD)。 | |
| EXTEST | 000...0 | 将 BSR 置于测试模式,用于测试芯片间互连。这是板级测试的核心指令。 | |
| 可选 | IDCODE | 010...0 | 将芯片的 ID 寄存器连接到 TDI 与 TDO 之间,用于读取器件标识。 |
| INTEST | 001...0 | 将 BSR 用于测试芯片内部逻辑。 |
2.4 数据寄存器
数据寄存器(DR)是一组用于存储测试数据的寄存器。TAP 控制器通过“Select-DR-Scan”分支将数据从 TDI 移入选定的数据寄存器。标准定义了多种数据寄存器,每种都有特定的用途。
主要的数据寄存器包括:
- 边界扫描寄存器(BSR): 最重要的数据寄存器,由所有边界扫描单元串联而成,用于控制和观察芯片引脚状态。
- 旁路寄存器(Bypass Register): 一个 1 位寄存器,用于在不需要测试某芯片时,将其 TDI 与 TDO 直接连通,缩短扫描链长度。
- 器件 ID 寄存器(IDCODE Register): 一个 32 位寄存器,存储芯片的制造商、器件编号和版本信息,用于器件识别。
- 用户自定义寄存器: 芯片设计者可以根据需要添加额外的数据寄存器,用于实现特定的测试或调试功能。
下图展示了在 EXTEST 指令下,数据寄存器(BSR)如何被用于板级互连测试的典型流程。