【SOC 芯片设计 DFT 学习专栏 -- Scan chain 和 SDFFs及 EDT】

文章目录

  • 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。

相关推荐
FPGA开源工坊4 小时前
FPGA上实现YOLOv5的一般过程
yolo·fpga开发
S&Z34639 小时前
[FPGA基础] UART篇
fpga开发
szxinmai主板定制专家18 小时前
国产RK3568+FPGA以 ‌“实时控制+高精度采集+灵活扩展”‌ 为核心的解决方案
大数据·运维·网络·人工智能·fpga开发·机器人
FPGA_ADDA19 小时前
基于FPGA 和DSP 的高性能6U VPX 采集处理板
fpga开发·dsp·6u vpx·8通道采集
FakeOccupational1 天前
fpga系列 HDL:跨时钟域同步 脉冲展宽同步 Pulse Synchronization
fpga开发
丶七年先生1 天前
牛客 verilog入门 VIP
fpga开发
hahaha60161 天前
ARINC818协议(六)
网络·fpga开发
深圳信迈科技DSP+ARM+FPGA1 天前
基于ARM+FPGA+DSP的储能协调控制器解决方案,支持国产化
arm开发·fpga开发·信号处理
承接电子控制相关项目1 天前
单片机与FPGA的核心差异、优缺点、编程差异、典型应用场景、选型等对比分析
单片机·嵌入式硬件·fpga开发
XINVRY-FPGA1 天前
XCZU19EG-2FFVC1760I Xilinx赛灵思FPGA Zynq UltraScale+MPSoC
c++·嵌入式硬件·阿里云·fpga开发·云计算·硬件工程·fpga