3、扫描链插入的陷阱
扫描链,说白了就是给芯片做体检的通道。没有它,量产测试基本就是盲人摸象。但很多原理图里,扫描链的接法看着对,实际一跑测试就翻车。我见过不少项目,流片回来才发现扫描链根本用不了,那叫一个欲哭无泪。
今天咱们就聊聊扫描链最常见的三个坑:端口没引出、时钟被门控、复位信号乱接。每个坑我都踩过,希望你别再走一遍。
核心原则:扫描链的输入输出端口必须直接引出到芯片顶层;扫描链路径上的时钟必须保持自由运行;复位信号必须可控且不影响扫描移位操作。
3.1 扫描链的输入输出端口未引出
这个问题听起来很蠢,但真的会犯。我有个同事,做了一款MCU,扫描链内部连得好好的,结果顶层只留了一个测试模式使能脚,扫描输入输出全没引出来。测试工程师拿到芯片直接懵了——怎么测?
正确的做法是:
- 扫描输入(Scan In):至少一个专用引脚,或者与功能引脚复用(但必须保证测试模式下能独占)
- 扫描输出(Scan Out):同样需要引出,通常与功能输出复用
- 扫描使能(Scan Enable):控制扫描模式切换,必须独立可控
- 扫描时钟(Scan Clock):虽然通常和功能时钟共用,但必须保证测试模式下时钟路径不被关断
| 信号 | 必须引出? | 常见错误 |
|---|---|---|
| Scan In | 是 | 内部绑死到VDD/GND |
| Scan Out | 是 | 悬空或内部打结 |
| Scan Enable | 是 | 与复位信号共用 |
| Scan Clock | 建议引出 | 被门控时钟关断 |
审查技巧:在原理图里搜索“scan_in”、“scan_out”、“test_mode”等关键词,确认它们最终都连到了芯片顶层引脚。如果发现内部有“tie_high”或“tie_low”连接到这些端口,立刻标红。
3.2 扫描链的时钟门控导致测试覆盖率下降
这是个大坑,而且特别隐蔽。现代芯片为了省电,到处插时钟门控(Clock Gating)。但扫描链工作时,需要时钟一直跑,不能停。一旦某个寄存器的时钟被门控关掉,那它后面的所有寄存器都测不到。
为什么会这样?因为扫描链移位时,数据是一级一级传下去的。中间任何一级的时钟停了,数据就卡住了,后面的寄存器永远收不到正确的值。测试覆盖率直接跳水。
我遇到过最离谱的一次,是一个低功耗模块,设计人员为了省电,把扫描链上的时钟也门控了。结果ATPG报告覆盖率只有30%。查了两天才找到原因——一个AND门把扫描时钟和功能使能信号与在了一起。
解决方案其实不复杂:
- 方案一:在扫描模式下,强制旁路所有时钟门控。通常用一个“scan_mode”信号去控制MUX,让时钟直接通过。
- 方案二:如果无法旁路,至少保证门控使能信号在扫描模式下一直有效(比如拉高)。
- 方案三:对于关键路径,直接使用专用扫描时钟,不和功能时钟共用门控。
警告:千万不要在扫描链路径上插入任何组合逻辑的时钟使能。如果你看到类似“clk & enable”这样的结构出现在扫描时钟路径上,基本可以断定测试覆盖率会出问题。
我个人的习惯是,在原理图审查阶段,专门画一张时钟树图,把每个时钟域的门控点标出来,然后逐一确认扫描模式下这些门控是否被旁路。虽然麻烦,但值得。
3.3 扫描链的复位信号处理不当
复位信号在扫描链里是个双刃剑。用好了,测试方便;用不好,测试根本跑不起来。
最常见的错误是:扫描移位过程中,复位信号突然跳变,把寄存器里的数据全清了。你想想看,辛辛苦苦移进去的测试向量,一复位全没了,那还测什么?
正确的做法是:
- 扫描模式下,复位信号必须保持无效状态。通常用“scan_mode”信号去强制复位信号无效。
- 如果寄存器有异步复位,必须保证扫描移位时复位不被触发。否则ATPG会认为这些寄存器的状态不可预测,直接放弃测试。
- 对于同步复位,相对好处理一些,但也要确保复位逻辑在扫描模式下被旁路。
我曾经审查过一个设计,里面用了大量的异步复位寄存器。设计人员觉得没问题,结果ATPG跑出来一堆“unstable”的警告。后来发现,扫描模式下复位信号虽然被拉住了,但复位路径上有个毛刺滤波器,在模式切换时会产生一个短暂的复位脉冲。就这一个脉冲,让整个扫描链废了一半。
避坑指南:我曾经在审查清单里加了一条——检查所有异步复位寄存器的复位路径,确认在扫描模式下不会产生任何跳变。具体做法是:在复位路径上插入一个“scan_mode”控制的MUX,强制复位信号在扫描模式下保持无效电平。
3.4 扫描链审查清单(SVG)
下面这张图总结了扫描链审查的核心要点,你可以直接拿去当检查清单用。
3.5 总结一下
扫描链的审查,说白了就是三件事:端口要出来、时钟要自由、复位要管住。每一条看着都简单,但组合在一起就容易出幺蛾子。
我个人的经验是,在原理图审查阶段,不要只看扫描链本身,还要看它和周围电路的交互。比如时钟门控的控制逻辑、复位信号的产生路径、测试模式信号的传播路径——这些地方最容易藏雷。
嗯,今天就聊到这儿。记住,扫描链是测试的命脉,命脉断了,芯片就是一堆废硅。审查时多花十分钟,流片后少加十天的班。