3、扫描测试原理:扫描链结构、扫描触发器类型、扫描使能与时序

扫描测试(Scan Testing)是数字集成电路可测试性设计(DFT)的基石。其核心思想是将芯片内部难以直接观测和控制的时序单元(触发器)通过额外的测试逻辑连接成一条或多条移位寄存器链,从而在测试模式下将复杂的时序电路问题转化为组合逻辑测试问题。本章将深入剖析扫描链的物理结构、扫描触发器的类型选择、扫描使能(Scan Enable)信号的控制策略以及相关的时序约束,帮助学员建立从电路结构到测试时序的完整认知。

扫描测试原理:结构·类型·时序 扫描链结构 组合逻辑 扫描触发器 (FF1~FFn) D→Q SI (Scan In) 移位路径 SO SE (Scan Enable) 控制模式切换 扫描触发器类型 Muxed-D 最常用 LSSD 电平敏感 时钟边沿型 上升/下降沿 双沿触发器 DDR 扫描时序关键参数 • 建立时间 (Setup) • 保持时间 (Hold) • 时钟偏移 (Skew) • 移位频率 (Shift Freq) • 捕获脉冲 (Capture Pulse) SE 必须在时钟沿前稳定 扫描测试工作流程 1. Shift 移位 SE=1, 加载测试向量 2. Capture 捕获 SE=0, 组合逻辑响应 3. Shift 移位 SE=1, 移出响应 4. 比对分析 ATPG 工具比对 时序示意: CLK SE 捕获窗口

3.1 扫描链结构与工作原理

核心原理:扫描链的本质是在功能触发器的数据输入端(D)前插入一个二选一多路选择器(MUX),由扫描使能信号(SE)控制选择功能数据路径还是扫描数据路径。当 SE=1 时,所有触发器首尾相连形成移位寄存器链,测试向量通过扫描输入引脚(SI)逐周期移入;当 SE=0 时,触发器恢复功能模式,捕获组合逻辑的响应结果;随后再次置 SE=1,将捕获结果通过扫描输出引脚(SO)移出芯片,与 ATPG(自动测试向量生成)工具预期的响应进行比对。

一条完整的扫描链包含以下关键要素:

  • 扫描输入(SI):通常连接芯片的专用测试引脚或复用功能引脚,用于串行输入测试激励。
  • 扫描输出(SO):串行输出测试响应,可连接至芯片输出引脚或片上比较器(如 MISR)。
  • 扫描使能(SE):全局或局部控制信号,决定触发器工作在移位模式还是捕获模式。
  • 扫描时钟(Scan Clock):在移位阶段驱动触发器工作的时钟,通常与功能时钟同源或独立。

扫描链的长度(即链上触发器的数量)直接影响测试时间。假设一条链上有 N 个触发器,加载一个测试向量需要 N 个移位时钟周期,移出响应也需要 N 个周期,因此单向量测试时间约为 2N 个周期。为了平衡测试时间和引脚开销,设计者通常将芯片内的触发器划分为多条长度相近的扫描链,每条链分配独立的 SI/SO 引脚。

工程经验:扫描链划分时需考虑物理布局。如果一条链上的触发器跨越了较远的物理距离,会导致布线拥塞和时钟偏移增大。建议在综合阶段使用 set_scan_chain 约束将同一功能模块或同一时钟域的触发器优先分配到同一条链,同时控制每条链的长度差异在 5% 以内,以均衡测试时间。

3.2 扫描触发器类型与选型

根据实现工艺和测试需求的不同,扫描触发器主要有以下几种类型,每种类型在面积、时序和测试可靠性方面各有取舍。

类型 结构特点 面积开销 时序影响 适用场景
Muxed-D 触发器 在 D 输入端前增加 2:1 MUX 约增加 10%~15% 增加一个 MUX 延迟 标准数字电路,最广泛使用
LSSD(电平敏感扫描设计) 双锁存器结构,使用两相非重叠时钟 约增加 20%~30% 无竞争风险,时序稳健 高性能 CPU、对时序要求极苛刻的设计
时钟边沿型扫描触发器 在时钟路径上插入 MUX 或门控 约增加 15% 可能增加时钟延迟 需要独立时钟控制的特殊设计
双沿触发器(DDR) 在时钟上升沿和下降沿均采样 约增加 25% 时序收敛难度大 低功耗或高速接口设计

选型判断方法:对于绝大多数 ASIC 设计,Muxed-D 触发器是默认选择,因为它结构简单、对功能路径的延迟影响最小。LSSD 虽然面积开销大,但消除了时钟竞争问题,特别适合在 5nm 以下先进工艺中作为可选的 DFT 策略。在低功耗设计中,如果使用了多电压域或时钟门控,需要仔细评估扫描触发器的保持时间(Hold Time)是否满足要求,必要时插入保持时间修复单元。

设计提示:在 RTL 代码中,应避免使用异步置位/复位(Set/Reset)的触发器作为扫描单元,因为异步控制信号在扫描移位时可能造成不确定状态。如果必须使用,需要在扫描使能有效时强制屏蔽异步控制信号,或者使用带同步复位的扫描触发器。

3.3 扫描使能(SE)信号与时序控制

扫描使能信号是扫描测试的核心控制信号,它的时序行为直接决定了测试的可靠性。SE 信号必须在时钟有效沿之前稳定,否则会导致触发器误采样。具体而言,SE 信号需要满足以下时序要求:

  1. 建立时间(Setup Time):SE 必须在时钟沿到来之前提前 Tsetup 时间稳定,确保 MUX 选择路径正确。
  2. 保持时间(Hold Time):SE 在时钟沿之后必须保持 Thold 时间不变,防止时钟沿附近的变化影响数据捕获。
  3. 时钟偏移(Clock Skew):如果 SE 信号到达不同触发器的时间不一致,可能导致部分触发器先进入捕获模式,部分仍在移位模式,造成数据错乱。

在实际工程中,SE 信号通常由测试控制单元(TCU)或 IEEE 1149.1 TAP 控制器产生,并通过专门的时钟树(类似时钟信号的分布网络)进行布线,以保证其到达各触发器的偏差在可控范围内。对于大规模芯片,SE 信号可能需要分成多个域,每个域独立控制,以避免同时翻转引起的 IR Drop 问题。

// 典型扫描测试时序约束(SDC 示例)
// 定义扫描使能信号的时钟域
create_clock -name func_clk -period 10 [get_ports clk]
set_scan_enable -signal [get_ports scan_en] -clock func_clk
set_scan_enable -setup 2.0
set_scan_enable -hold 0.5
// 约束扫描时钟偏移
set_clock_uncertainty -setup 0.3 [get_clocks func_clk]
set_clock_uncertainty -hold 0.2 [get_clocks func_clk]

案例拆解:某 28nm 工艺的 AI 加速芯片,包含约 200 万个触发器,工作频率 1GHz。在 DFT 阶段,设计团队最初将所有触发器划分为 32 条扫描链,每条链约 6 万个触发器。在 ATE(自动测试设备)上执行测试时,发现部分芯片在捕获阶段出现随机故障。通过波形调试发现,SE 信号在芯片内部存在约 0.8ns 的偏移,导致靠近 SE 驱动端的触发器先进入捕获模式,而远端的触发器仍在移位模式,组合逻辑的中间状态被错误捕获。

分析过程:团队使用 SPICE 仿真和片上延迟监控器定位到 SE 信号在第三层金属布线上的 RC 延迟过大。随后采取以下措施:

  • 将 SE 信号改为双层金属布线,并增加中继缓冲器(Repeater),将偏移降低至 0.3ns 以内。
  • 在 SE 路径上插入延迟匹配单元,确保与时钟路径的延迟差满足建立/保持时间要求。
  • 调整 ATPG 工具中的捕获时钟设置,增加一个额外的捕获脉冲(Capture Pulse),允许组合逻辑有更长的稳定时间。

结果对比:修复后,芯片的测试良率从 92.3% 提升至 99.1%,测试时间仅增加了 2%(因增加了一个捕获周期)。该案例表明,SE 信号的时序质量对测试可靠性至关重要,必须在物理实现阶段给予与时钟信号同等的重视。

风险提示:在低功耗设计中,如果 SE 信号跨电压域(如从 1.8V 域到 0.8V 域),必须使用电平转换器(Level Shifter)并确保其延迟满足时序要求。此外,在时钟门控(Clock Gating)电路中,扫描移位时需强制旁路门控逻辑,否则门控关闭会导致触发器无法移位。

3.4 扫描时序的完整流程与常见误区

一个完整的扫描测试时序流程包括以下阶段:

阶段 SE 状态 时钟行为 触发器行为
移位加载 SE=1 连续 N 个移位时钟脉冲 数据从 SI 逐级移入,形成测试向量
捕获 SE=0 通常 1~3 个捕获脉冲 组合逻辑响应被捕获到触发器
移位输出 SE=1 连续 N 个移位时钟脉冲 捕获结果从 SO 逐级移出,同时可加载下一向量

常见误区一:认为 SE 信号只需要在捕获阶段保持低电平即可。实际上,SE 信号在移位阶段和捕获阶段的切换瞬间最容易出现问题。如果 SE 信号在时钟沿附近发生跳变,触发器可能同时看到功能数据和扫描数据,导致亚稳态。

常见误区二:忽略捕获时钟的个数。对于组合逻辑深度较大的设计,一个捕获脉冲可能不足以让信号传播到所有触发器。此时需要增加捕获脉冲数量,但过多的捕获脉冲会增加测试时间并可能掩盖真实故障。通常建议使用 ATPG 工具自动计算所需的捕获脉冲数,或通过静态时序分析(STA)确定最大组合逻辑延迟。

常见误区三:在扫描链插入后不进行后仿真验证。扫描链的物理布线可能引入额外的 RC 延迟,导致移位时钟频率无法达到预期。建议在布局布线后提取寄生参数,对扫描链进行动态仿真,验证最高移位频率是否满足 ATE 的测试频率要求。

总结复盘:扫描测试原理的核心在于三点:一是通过 MUX 结构实现功能模式与测试模式的切换;二是通过 SE 信号的精确时序控制保证数据加载与捕获的正确性;三是通过合理的扫描链划分和触发器选型平衡测试时间、面积开销和时序收敛。在实际项目中,建议在 DFT 规划阶段就完成扫描链的架构设计,包括链数量、链长度、SE 信号分布策略和时钟方案,并在物理实现阶段将 SE 信号作为高速信号进行特殊布线处理。