4. 边界扫描寄存器(BSR):BSR结构、边界扫描单元(BSC)、输入/输出/控制单元

边界扫描寄存器(Boundary-Scan Register, BSR)是 IEEE 1149.1 标准中最重要的数据寄存器之一。它由一组串联的边界扫描单元(Boundary-Scan Cell, BSC)构成,这些单元被放置在芯片的每个数字功能引脚与内部核心逻辑之间。BSR 的核心作用是在测试模式下,实现对芯片输入/输出状态的捕获(Capture)、移位(Shift)和更新(Update),从而在不依赖物理探针的情况下完成板级互连测试。

4.1 BSR 整体结构

BSR 是一个串行移位寄存器链,其长度等于芯片上所有数字 I/O 引脚的数量(包括双向引脚和控制引脚)。每个引脚对应一个 BSC。在测试模式(如 EXTEST)下,BSR 串联在 TDI 和 TDO 之间,形成一条从芯片边界到边界的扫描路径。

结构要点:
  • 串联拓扑:所有 BSC 首尾相连,数据从 TDI 输入,经每个 BSC 移位后从 TDO 输出。
  • 并行接口:每个 BSC 同时与芯片内部核心逻辑(System Logic)和外部引脚(Pad)相连。
  • 模式控制:通过 TAP 控制器产生的时钟(TCK)和模式信号(Mode)控制 BSC 的工作状态。
边界扫描寄存器(BSR)整体结构 BSR 整体结构:串联 BSC 链 芯片核心逻辑 (System Logic) 外部引脚 (Pads) BSC 1 BSC 2 BSC n TDI → → TDO BSR 链长度 = 芯片数字 I/O 引脚总数;每个 BSC 对应一个引脚

4.2 边界扫描单元(BSC)结构

边界扫描单元(BSC)是 BSR 的基本组成单元。标准定义了多种 BSC 类型,以适应输入、输出、双向和控制引脚的不同需求。一个典型的 BSC 包含两个主要的锁存器:捕获/移位寄存器(Capture/Shift Register)和更新寄存器(Update Register)。

典型 BSC 内部组件
组件 功能描述 时钟域
捕获/移位寄存器 在 Capture-DR 状态下捕获引脚或核心逻辑的数据;在 Shift-DR 状态下将数据沿 BSR 链移位。 TCK(上升沿)
更新寄存器 在 Update-DR 状态下锁存来自捕获/移位寄存器的数据,并驱动到输出引脚或核心逻辑。 TCK(下降沿)
多路选择器(MUX) 根据 TAP 控制器的模式信号,选择正常功能数据或测试数据路径。 组合逻辑
设计要点:更新寄存器在 TCK 的下降沿动作,而捕获/移位寄存器在上升沿动作,这种“双沿”设计确保了数据在移位和更新阶段不会相互干扰,是 BSC 稳定工作的关键。
典型边界扫描单元(BSC)内部结构 典型 BSC 内部结构(输出型) 核心逻辑数据 捕获/移位 寄存器 更新 寄存器 MUX 外部引脚 Mode(来自 TAP) TCK(上升沿) TCK(下降沿) 来自前级 BSC (SI) 去往后级 BSC (SO) BSC 工作流程 1. 捕获(Capture-DR): 核心逻辑数据或引脚数据被加载到捕获/移位寄存器。 2. 移位(Shift-DR): 数据沿 BSR 链从 TDI 向 TDO 移位,同时新数据从 TDI 注入。 3. 更新(Update-DR): 捕获/移位寄存器中的数据被锁存到更新寄存器,并驱动到输出。 4. 正常模式: MUX 选择核心逻辑数据直通,BSC 对功能无影响。

4.3 输入/输出/控制单元

根据引脚类型的不同,BSC 的实现方式也有所差异。标准定义了三种主要的 BSC 类型,分别对应输入、输出和控制引脚。

4.3.1 输入单元

输入 BSC 用于捕获来自外部引脚的数据,并将其传递给芯片核心逻辑。在测试模式下,它可以观察(Observe)外部信号,而不影响核心逻辑的正常接收。

  • 数据流: 引脚 → 捕获寄存器 → 核心逻辑(正常模式)或 BSR 链(测试模式)。
  • 典型应用: 在 EXTEST 指令下,捕获来自相邻芯片的输出信号,用于互连测试。

4.3.2 输出单元

输出 BSC 用于将核心逻辑的数据驱动到外部引脚。在测试模式下,它可以控制(Control)引脚状态,将测试向量施加到互连线上。

  • 数据流: 核心逻辑 → 更新寄存器 → 引脚(正常模式);BSR 链 → 更新寄存器 → 引脚(测试模式)。
  • 典型应用: 在 EXTEST 指令下,通过 BSR 链将测试向量(如 0/1 序列)驱动到输出引脚。

4.3.3 控制单元

控制 BSC 通常用于双向引脚或三态输出。它包含一个额外的控制寄存器,用于决定输出驱动器的使能状态(高阻、驱动高、驱动低)。

三种 BSC 单元对比
特性 输入单元 输出单元 控制单元
主要功能 观察外部信号 驱动内部信号到外部 控制输出使能/方向
捕获数据来源 外部引脚 核心逻辑 核心逻辑或 BSR 链
更新数据去向 核心逻辑 外部引脚 输出使能端
典型指令 EXTEST, SAMPLE EXTEST EXTEST, HIGHZ
工程注意事项: 对于双向引脚,通常需要两个 BSC:一个用于输出数据,另一个用于控制输出使能。在 PCB 测试中,必须确保控制单元正确配置,避免总线冲突(如两个输出同时驱动同一网络)。
输入/输出/控制单元在芯片边界的位置 输入/输出/控制单元在芯片边界的位置 核心逻辑 输入 BSC 输出 BSC 控制 BSC 输入引脚 输出引脚 使能引脚 单元功能说明 • 输入 BSC:捕获引脚信号到核心 • 输出 BSC:驱动核心信号到引脚 • 控制 BSC:控制输出使能/方向 • 双向引脚需输出+控制两个 BSC

4.4 BSR 在测试中的应用流程

以典型的板级互连测试(EXTEST)为例,BSR 的工作流程如下:

  1. 加载指令: 通过 TAP 控制器将 EXTEST 指令移入指令寄存器。
  2. 捕获数据: 在 Capture-DR 状态下,所有输入 BSC 捕获外部引脚状态,所有输出 BSC 捕获核心逻辑状态。
  3. 移位数据: 在 Shift-DR 状态下,将捕获的数据通过 TDO 移出,同时从 TDI 移入新的测试向量。
  4. 更新数据: 在 Update-DR 状态下,将新测试向量锁存到输出 BSC 的更新寄存器,驱动到外部引脚。
  5. 重复执行: 重复步骤 2-4,完成所有测试向量的施加和响应采集。
关键指标:
  • 测试覆盖率: 通过 BSR 链,可以 100% 覆盖所有数字 I/O 引脚的互连故障(如开路、短路、桥接)。
  • 测试时间: 与 BSR 链长度成正比。链越长,移位所需 TCK 周期数越多。
  • 诊断精度: 可精确定位到单个引脚级别的故障,极大简化板级调试。

通过以上结构和工作流程,边界扫描寄存器(BSR)为板级测试提供了一种高效、标准化的解决方案,是现代复杂 PCB 和系统级测试不可或缺的核心组件。