2. IEEE 1149.1 标准核心概念

IEEE 1149.1 标准(又称 JTAG 边界扫描标准)定义了数字集成电路的测试与调试架构。其核心在于通过一组标准的逻辑电路和协议,实现对芯片引脚、内部逻辑及板级互连的访问与控制。本章将深入剖析该标准的四大核心支柱:标准架构、TAP 控制器、指令寄存器和数据寄存器。

工程提示:理解这四大核心概念是掌握边界扫描测试的基础。在实际工程中,TAP 控制器是“大脑”,指令寄存器是“调度员”,数据寄存器是“执行者”,而标准架构则是“骨架”。

2.1 标准架构

IEEE 1149.1 标准定义了一种围绕芯片外围的测试架构。该架构在芯片的每个功能 I/O 引脚与内部核心逻辑之间,插入一个称为“边界扫描单元(BSC)”的存储单元。这些 BSC 串联成一条“边界扫描寄存器(BSR)”,形成一条环绕芯片的“数字围栏”。

标准架构包含以下关键组件:

  • 测试访问端口(TAP): 一组专用的测试引脚,用于控制测试逻辑。
  • TAP 控制器: 一个 16 状态的有限状态机,负责管理测试操作序列。
  • 指令寄存器(IR): 用于存储当前要执行的测试指令。
  • 数据寄存器组(DR): 一组用于存储测试数据的寄存器,包括边界扫描寄存器、旁路寄存器、器件 ID 寄存器等。

下图展示了 IEEE 1149.1 标准架构的顶层结构,清晰呈现了 TAP、TAP 控制器、指令寄存器和数据寄存器之间的连接关系。

IEEE 1149.1 标准架构顶层结构图 IEEE 1149.1 标准架构顶层结构 芯片核心逻辑 (Core Logic) 边界扫描寄存器 (BSR) - 环绕芯片外围 BSC BSC BSC BSC TAP 控制器 (16 状态 FSM) 指令寄存器 (IR) (Instruction Register) 数据寄存器组 (DR) (BSR / Bypass / IDCODE) 控制信号 控制信号 指令译码 测试访问端口 (TAP) 引脚:TCK, TMS, TDI, TDO, (TRST) TDI TDO
架构要点:边界扫描寄存器(BSR)是标准架构的核心,它使得测试设备能够在不直接接触芯片引脚的情况下,通过 TAP 串行地“观察”和“控制”每个引脚的状态。这种“虚拟探针”技术是边界扫描测试的精髓。

2.2 TAP 控制器

TAP 控制器是一个 16 状态的有限状态机(FSM),它是整个边界扫描测试逻辑的“大脑”。TAP 控制器由 TCK(测试时钟)和 TMS(测试模式选择)两个输入信号驱动。在每个 TCK 的上升沿,TAP 控制器根据 TMS 的逻辑电平进行状态跳转。

TAP 控制器的状态图分为两大分支:

  • 指令寄存器(IR)分支: 用于将指令移入指令寄存器。
  • 数据寄存器(DR)分支: 用于将数据移入选定的数据寄存器。

下图展示了 TAP 控制器的完整 16 状态转移图,这是 IEEE 1149.1 标准中最经典的图示之一。

TAP 控制器 16 状态转移图 TAP 控制器 16 状态转移图 Test-Logic-Reset Run-Test / Idle Select-DR-Scan Select-IR-Scan Capture-DR Capture-IR Shift-DR Shift-IR Exit1-DR Exit1-IR Pause-DR Pause-IR Exit2-DR Exit2-IR Update-DR Update-IR 0 1 1 0 0 0 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 图例:状态框内文字为状态名称;连接线上数字为 TMS 逻辑电平;所有状态跳变发生在 TCK 上升沿。
常见误区:初学者容易混淆“Shift-DR”和“Shift-IR”状态。记住:Shift-DR 用于向数据寄存器(如 BSR)移入测试向量,而 Shift-IR 用于向指令寄存器移入指令码。两者在状态图中的位置和功能是严格区分的。

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 用于测试芯片内部逻辑。
工程要点:在板级测试中,EXTEST 指令是最常用的。它允许测试设备通过 BSR 向一个芯片的输出引脚施加测试向量,并在另一个芯片的输入引脚捕获响应,从而检测焊接短路、断路等互连故障。

2.4 数据寄存器

数据寄存器(DR)是一组用于存储测试数据的寄存器。TAP 控制器通过“Select-DR-Scan”分支将数据从 TDI 移入选定的数据寄存器。标准定义了多种数据寄存器,每种都有特定的用途。

主要的数据寄存器包括:

  • 边界扫描寄存器(BSR): 最重要的数据寄存器,由所有边界扫描单元串联而成,用于控制和观察芯片引脚状态。
  • 旁路寄存器(Bypass Register): 一个 1 位寄存器,用于在不需要测试某芯片时,将其 TDI 与 TDO 直接连通,缩短扫描链长度。
  • 器件 ID 寄存器(IDCODE Register): 一个 32 位寄存器,存储芯片的制造商、器件编号和版本信息,用于器件识别。
  • 用户自定义寄存器: 芯片设计者可以根据需要添加额外的数据寄存器,用于实现特定的测试或调试功能。

下图展示了在 EXTEST 指令下,数据寄存器(BSR)如何被用于板级互连测试的典型流程。

EXTEST 指令下 BSR 互连测试流程 芯片 A (驱动端) Core Logic BSR (输出单元) 芯片 B (接收端) Core Logic BSR (输入单元) PCB 走线 (待测互连) 施加测试向量 (0/1) 捕获响应 (0/1) ← 上一章 📖 返回目录 下一章 →