文章目录
- Overview
- [1. SDFFs(Scan D Flip-Flops)](#1. SDFFs(Scan D Flip-Flops))
-
- [1.1 基本概念](#1.1 基本概念)
- [1.2 工作原理](#1.2 工作原理)
- [1.3 优势](#1.3 优势)
- [2. EDT(Embedded Deterministic Test)](#2. EDT(Embedded Deterministic Test))
-
- [2.1 基本概念](#2.1 基本概念)
- [2.2 工作原理](#2.2 工作原理)
- [2.3 优势](#2.3 优势)
- [3. SDFFs与EDT的结合](#3. SDFFs与EDT的结合)
- [4. 总结](#4. 总结)
Overview
在SoC(System on Chip)设计中,DFT(Design for Testability,设计可测试性)是确保芯片可测试性和良品率的关键技术。其中,SDFFs(Scan D Flip-Flops,扫描D触发器)和EDT(Embedded Deterministic Test,嵌入式确定性测试) 是DFT中两个重要的组成部分。以下是对它们的详细介绍:
1. SDFFs(Scan D Flip-Flops)
1.1 基本概念
SDFFs是DFT中用于构建扫描链(Scan Chain)的基本单元。它们将普通的D触发器(D Flip-Flops)扩展为支持测试模式的寄存器,能够在功能模式和测试模式之间切换。
- 功能模式:SDFFs作为普通寄存器使用,存储和传输数据。
- 测试模式:SDFFs连接成扫描链,用于测试芯片内部的逻辑电路。
Figure 1-1 Pre-scan and Post-scan
上图就是 scan前 和 scan后 的DFF ,其实就是替换成带有 scan 逻辑的 DFF,
当 scan_en 有效时,scan 逻辑就会从 scan-in 穿过 DFF 到达 scan-out,
多个 scan DF链接在一起就成了 scan chain,链上有多少个 scan DFF 表示这条链的长度。
1.2 工作原理
在测试模式下,SDFFs通过扫描链串联,形成一个移位寄存器。测试数据可以通过扫描输入(Scan In)逐位移入SDFFs,经过逻辑电路处理后,结果通过扫描输出(Scan Out)逐位移出,供外部测试设备分析。
示例代码:
perl
module ScanRegister (
input wire clk, // 时钟信号
input wire test_mode, // 测试模式使能
input wire scan_in, // 扫描链输入
input wire D, // 数据输入
output reg Q, // 数据输出
output wire scan_out // 扫描链输出
);
always @(posedge clk) begin
if (test_mode)
Q <= scan_in; // 测试模式下使用扫描链输入
else
Q <= D; // 正常模式下使用数据输入
end
assign scan_out = Q; // 输出连接到下一级扫描寄存器
endmodule
在这个例子中,test_mode信号控制SDFF的工作模式。当test_mode为1时,SDFF进入测试模式,数据通过scan_in输入;否则,SDFF作为普通寄存器工作2。
1.3 优势
提高可测试性:通过扫描链,可以控制和观察芯片内部的所有寄存器,显著提高故障覆盖率。
简化测试流程:SDFFs的标准化设计使得测试模式下的操作更加高效和自动化12。
2. EDT(Embedded Deterministic Test)
2.1 基本概念
EDT是一种用于大规模芯片测试的压缩技术,旨在减少测试数据量和测试时间。它通过将测试模式压缩为少量种子数据,并在芯片内部解压缩,生成完整的测试模式。
2.2 工作原理
EDT的核心是一个解压缩器(Decompressor),它接收少量的种子数据,并通过线性反馈移位寄存器(LFSR)或其他算法生成完整的测试模式。测试结果则通过压缩器(Compactor)压缩后输出。
应用场景 :
小规模芯片:直接使用EDT将扫描链连接到测试引脚,简化测试流程3。
大规模芯片:将芯片划分为多个模块,每个模块独立插入EDT逻辑,以减少测试时间和资源占用3。
2.3 优势
减少测试数据量:通过压缩技术,EDT显著减少了测试模式的数据量,降低了存储和传输成本。
提高测试效率:EDT支持并行测试,能够同时测试多个模块,缩短测试时间34。
适应大规模芯片:EDT的分层测试架构(如Hierarchical ATPG)支持模块化测试,适用于超大规模芯片3。
3. SDFFs与EDT的结合
在SoC设计中,SDFFs和EDT通常结合使用,以构建高效的测试架构:
扫描链插入:使用SDFFs构建扫描链,确保芯片内部逻辑的可控性和可观测性。
EDT压缩:在扫描链的基础上插入EDT逻辑,压缩测试数据,提高测试效率。
分层测试:对于大规模芯片,采用分层测试架构,将扫描链和EDT逻辑分布到各个子模块中,实现模块化测试34。
4. 总结
SDFFs是DFT中用于构建扫描链的基本单元,支持功能模式和测试模式的切换,显著提高芯片的可测试性。
EDT是一种高效的测试压缩技术,通过减少测试数据量和测试时间,适应大规模芯片的测试需求。
两者的结合为SoC设计提供了高效、可靠的测试解决方案,是现代芯片设计中不可或缺的技术123。