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

相关推荐
北京青翼科技1 小时前
【TES817】基于XCZU19EG FPGA的高性能实时信号处理平台
图像处理·人工智能·ai·fpga开发·信号处理
爱学习的张哥1 小时前
ICMP、UDP以及IP、ARP报文包的仲裁处理
tcp/ip·fpga开发·udp
森旺电子3 小时前
AD9850函数信号发生器制作(全套资料)
fpga开发
Hello-FPGA13 小时前
阿里FPGA XCKU3P开箱
fpga开发
Sunrise黎18 小时前
FPGA学习(三)——LED流水灯
学习·fpga开发
Mazy.v18 小时前
FPGA 定点小数计算
arm开发·单片机·嵌入式硬件·fpga开发
移知19 小时前
数字IC/FPGA校招笔试题解析(一)
fpga开发·fpga·数字ic
贝塔实验室1 天前
基于SRAM型FPGA的软错误修复SEM加固技术
arm开发·fpga开发·重构·硬件架构·硬件工程·fpga·基带工程
简简单单做算法2 天前
基于FPGA的图像退化算法verilog实现,分别实现横向和纵向运动模糊,包括tb和MATLAB辅助验证
fpga开发·verilog·图像退化