3、时钟门控的DFT测试策略:时钟门控单元的测试覆盖率,如何插入测试点,ATE测试时的时钟控制

3.1 时钟门控——DFT的“老大难”问题

时钟门控,说白了就是通过一个使能信号来控制时钟的开关。这玩意儿在低功耗设计里太常见了,几乎每个模块都在用。但到了DFT测试阶段,它就变成了一个让人头疼的家伙。

为什么?因为时钟门控一旦关掉,后面的寄存器就收不到时钟了。收不到时钟,也就没法扫描测试。你想想看,整个链路上几百上千个寄存器,全被一个门控给“掐断”了,测试覆盖率能高才怪。

我个人习惯,在项目初期就要把时钟门控的测试策略定下来。别等到网表都出来了,才发现覆盖率惨不忍睹,那时候再改就晚了。

核心问题:时钟门控单元(ICG)本身是否可测?被门控的寄存器链是否能在测试模式下正常工作?

3.2 时钟门控单元的测试覆盖率

先说说ICG单元本身。一个典型的时钟门控单元,包含一个锁存器和一个与门。锁存器在时钟低电平时采样使能信号,高电平时保持。与门再把锁存后的使能信号和时钟做与运算。

这个结构,在功能模式下没问题。但在测试模式下,我们需要确保ICG的每个节点都能被覆盖到。比如锁存器的输入、输出,与门的输入、输出,这些节点都要有故障模型覆盖。

我在项目中遇到过一个问题:ICG的锁存器输出节点,在扫描测试时很难被观测到。因为它的输出直接连到了与门,而与门的另一个输入是时钟。时钟在测试时是高频切换的,导致锁存器输出的变化很难被稳定捕获。

解决方法是啥?嗯,这里要注意:在测试模式下,强制将ICG的使能信号拉高。这样锁存器输出就一直为高,与门就变成了一个时钟缓冲器。ICG内部的节点,就可以通过扫描链来测试了。

个人经验:我曾经在一个28nm的项目里,因为ICG的测试覆盖率不够,导致ATE测试时漏掉了一个关键故障。后来花了整整两周时间重新插入测试点。从那以后,我每次做DFT都会先检查ICG的覆盖率报告。

3.3 如何插入测试点

测试点插入,是解决时钟门控测试问题的关键手段。说白了,就是在关键节点上“开个口子”,让测试模式下的控制路径和观测路径变得可控。

常见的测试点插入策略有这几种:

  • 强制使能测试点:在ICG的使能信号上插入一个MUX,测试模式下强制拉高。这是最常用的方法。
  • 时钟旁路测试点:在ICG的输出端插入一个MUX,测试模式下直接绕过ICG,把时钟源引到后面的寄存器链。
  • 观测测试点:在ICG的输出节点上插入一个观测点,把信号引到扫描链的某个观测寄存器上。

我个人比较推荐第一种方法。为什么呢?因为它简单、直接,而且对功能路径的影响最小。你只需要在使能信号上加一个MUX,测试模式信号作为选择端,测试模式下选通VDD即可。

代码示例是这样的:

// 原始时钟门控
ICG u_icg (
  .clk(clk),
  .en(enable),
  .clk_gated(gated_clk)
);

// 插入测试点后的时钟门控
assign test_enable = scan_mode ? 1'b1 : enable;

ICG u_icg (
  .clk(clk),
  .en(test_enable),
  .clk_gated(gated_clk)
);

你看,就加了一行assign语句和一个MUX(综合工具会自动推断)。但这一行代码,就能让ICG在测试模式下永远处于开启状态,后面的寄存器链就能正常扫描了。

注意:强制使能测试点会影响ICG的功耗测试。如果你需要做IDDQ测试或者功耗感知测试,记得在测试模式下保留一部分ICG的使能控制。

3.4 ATE测试时的时钟控制

到了ATE测试阶段,时钟控制就变成了一个更实际的问题。ATE机台不像仿真环境那么“温柔”,它有时钟频率限制、有时序精度要求、还有通道数量的限制。

我记得有一次在ATE上调试一个芯片,发现扫描链的时钟路径上有很多ICG。每个ICG的使能信号都需要单独控制,但ATE的通道数量有限,根本不够用。后来怎么解决的?我们把所有ICG的使能信号在测试模式下合并成了一个全局信号,用一个ATE通道来控制。

具体做法是这样的:

  1. 时钟分组:把同一个时钟域下的ICG归为一组,共享一个测试使能信号。
  2. 时钟树平衡:在测试模式下,确保所有ICG的时钟路径延迟一致,避免时钟歪斜导致测试失败。
  3. ATE时序设置:在ATE的时序文件中,把ICG的使能信号设置为“测试模式高电平”,这样ATE在加载扫描链时,ICG始终处于开启状态。

这里有一个表格,总结了不同时钟控制策略的优缺点:

策略 优点 缺点 适用场景
强制使能 简单、对功能影响小 无法测试ICG的使能路径 大多数低功耗设计
时钟旁路 完全绕过ICG,测试最稳定 需要额外MUX,面积开销大 高频设计、时序紧张
分组控制 节省ATE通道,灵活性强 需要额外的控制逻辑 ATE通道资源受限

在ATE测试时,还有一个容易被忽略的问题:时钟门控的毛刺。ICG在使能信号切换时,可能会产生一个窄脉冲毛刺。这个毛刺在功能模式下可能没问题,但在测试模式下,它可能会触发寄存器的错误翻转。

我曾经就吃过这个亏。ATE测试时,扫描链的某些位总是出错,查了半天才发现是ICG的毛刺问题。后来我们在ICG的输出端加了一个毛刺滤波器,问题就解决了。

避坑指南:在ATE测试的pattern生成阶段,建议对时钟门控路径做一次静态时序分析(STA)。确保测试模式下的时钟路径没有setup/hold违例。我见过太多项目,因为忽略了这一步,导致ATE测试时频繁失败。

3.5 总结一下

时钟门控的DFT测试策略,说白了就是三件事:

  • 覆盖率:确保ICG内部的每个节点都能被测试到。
  • 测试点:在关键路径上插入MUX或观测点,让测试模式下的控制变得简单。
  • ATE控制:合理分配ATE通道资源,处理好时钟路径的时序和毛刺问题。

你想想看,如果这三件事都做好了,时钟门控就不再是DFT的“老大难”了。嗯,我个人觉得,时钟门控的测试策略,其实考验的是DFT工程师对低功耗设计和测试流程的综合理解。多花点时间在这上面,绝对值得。