1. Scan Chain概述:什么是扫描链、为什么需要扫描链、扫描链的基本原理
大家好,我是你们的DFT讲师。今天咱们聊聊Scan Chain——这个DFT领域最基础、也最核心的概念。
说实话,我入行那会儿,第一次听到「扫描链」三个字,脑子里浮现的是超市收银台的扫码枪。后来才知道,这玩意儿跟扫码完全不是一回事。嗯,咱们今天就把这个事儿彻底讲明白。
1.1 什么是扫描链?
扫描链,英文叫Scan Chain。说白了,就是一种测试用的电路结构。
你想想看,芯片内部有成千上万个触发器(Flip-Flop)。正常工作的时候,它们各司其职,处理数据。但测试的时候呢?我们需要知道每个触发器的状态对不对。怎么办?
我的做法是:把这些触发器串起来,像糖葫芦一样,一个接一个。测试时,从芯片外部灌入一串测试数据,让数据沿着这条链跑一遍,最后从输出端读出来。这就是扫描链。
核心定义:扫描链是将芯片内部的所有(或部分)触发器连接成一条或多条移位寄存器链,用于测试芯片制造缺陷的DFT技术。
我在一个28nm的项目中遇到过这样的情况:芯片面积紧张,但测试覆盖率要求又很高。最后我们用了多扫描链的方案,把一条长链拆成四条短链,既保证了覆盖率,又没超面积预算。这种灵活配置,就是扫描链的魅力所在。
1.2 为什么需要扫描链?
这个问题,我经常被刚入行的同事问起。答案其实很简单:没有扫描链,你根本测不了芯片。
为什么会这样?我给你列几个关键原因:
- 内部节点不可观测:芯片正常工作的时候,你只能看到输入输出引脚。内部几百个触发器的状态,你根本看不到。就像黑盒子,出了问题只能猜。
- 测试覆盖率低:没有扫描链,你只能靠功能测试。功能测试能覆盖的故障类型非常有限。我见过一个项目,功能测试覆盖率只有30%,加上扫描链后直接飙到98%。
- 故障定位困难:芯片坏了,你得知道是哪个逻辑门出了问题。没有扫描链,你只能靠猜。有了扫描链,你可以把故障精确到某个触发器。
- 良率提升需要:量产芯片,良率就是生命线。扫描链能帮你快速筛选出坏片,还能反馈给工艺部门改进。
我的经验:曾经有个项目,流片回来发现一批芯片功耗异常。靠扫描链一查,发现是某个区域的触发器存在桥接故障。如果没有扫描链,这批芯片可能就被当成「不明原因失效」扔掉了。
1.3 扫描链的基本原理
好,咱们来点硬核的。扫描链到底是怎么工作的?
每个普通的触发器,都有一个数据输入D和时钟CK。扫描链给每个触发器加了一个额外的输入——扫描输入SI,以及一个控制信号——扫描使能SE。
工作模式有两种:
| 模式 | SE信号 | 行为 |
|---|---|---|
| 正常模式 | 0 | 触发器正常工作,D端数据打入Q端 |
| 扫描模式 | 1 | 触发器进入移位模式,SI端数据打入Q端 |
测试流程分三步:
- 移位加载(Shift In):SE置1,把测试向量从扫描输入引脚灌入,沿着链一路移进去。每个时钟周期移一位。
- 捕获(Capture):SE置0,给一个或几个时钟脉冲。此时组合逻辑根据当前触发器的状态计算出新的结果,打入触发器。
- 移位卸载(Shift Out):SE再置1,把捕获到的结果从扫描输出引脚移出来。同时可以加载下一组测试向量。
用代码表示一个简单的扫描触发器行为:
// 扫描触发器行为描述
always @(posedge clk) begin
if (scan_enable)
Q <= scan_in; // 扫描模式:从SI输入
else
Q <= D; // 正常模式:从D输入
end
assign scan_out = Q; // 扫描输出连接到下一级SI
你看,就这么简单。但实际项目中,扫描链的设计远不止这些。比如时钟域怎么处理?异步复位怎么处理?多扫描链怎么平衡?这些咱们后面章节会详细讲。
注意:扫描链设计中最容易踩的坑是时钟域交叉。我曾经在一个项目中,两个时钟域的触发器串在一条扫描链上,结果测试时数据老是出错。后来发现是时钟不同步导致的。所以,不同时钟域的触发器一定要分到不同的扫描链,或者加同步器。
1.4 扫描链的两种基本类型
根据触发器的替换方式,扫描链分为两种:
- Muxed-D扫描:最常用。在D端前加一个2选1MUX,选择D还是SI。面积开销小,时序影响也小。
- LSSD扫描:Level-Sensitive Scan Design。用两个锁存器代替一个触发器。抗噪声能力强,但面积大。主要用于高性能或特殊工艺。
我个人习惯用Muxed-D,因为它在面积和性能之间取得了很好的平衡。除非客户特别要求,否则我不会轻易上LSSD。
1.5 小结
好了,咱们把扫描链的底牌都翻了一遍。总结一下:
- 扫描链就是把触发器串起来,让测试数据能灌进去、读出来
- 没有扫描链,芯片测试覆盖率会惨不忍睹
- 工作原理就是「移位→捕获→移位」三步走
- Muxed-D是主流,LSSD是特殊场景的选择
下一章,咱们会深入聊聊扫描链的架构设计。到时候我会分享一些实际项目中的配置技巧,保证让你少走弯路。
记住一句话:扫描链不是万能的,但没有扫描链是万万不能的。