当前位置: 首页 > news >正文

DFT基本入门介绍

    • 1.什么是DFT?
    • 2.为什么要做DFT?
    • 3.“测试”与“验证”的区别
    • 4.DFT的核心技术
      • 1)扫描路径设计(Scan Design)
      • 2)内建自测试(Bist)
      • 3)JTAG
      • 4)ATPG
    • 5.DFT工程师的岗位职责

随着芯片的制程越来小(5nm), 芯片的规模越来越大,对芯片的测试也就变得越来越困难。
而测试作为芯片尤为重要的一个环节,是不能忽略的。DFT也是随着测试应运而生的一个概念,目前在芯片设计中都离不开DFT。
本文先对DFT做一个全面的介绍,旨在让大家了解DFT的中的基本概念。

1.什么是DFT?

提到DFT, 大部分人想到的应该是离散傅里叶变换(Discrete Fourier Transform,缩写为DFT), 嗯…, 笔者大学被信号与系统这门课虐的不轻。但是在IC界,DFT的全称是 Design For Test

指的是在芯片原始设计中阶段即插入各种用于提高芯片可测试性(包括可控制性和可观测性)的硬件逻辑,通过这部分逻辑,生成测试向量,达到测试大规模芯片的目的。

Design–实现特定的辅助性设计,但要增加一定的硬件开销

For test–利用实现的辅助性设计,产生高效经济的结构测试向量在ATE上进行芯片测试。

2.为什么要做DFT?

从1958年Jack Kilby发明了第一只包含一个双极性晶体管开始,集成电路经过了半个多世纪的发展。

芯片的制程工艺越来越小,数字芯片的规模越来越大,测试成本进一步增加,甚至超过芯片功能部分本来的成本。如何在芯片设计的过程中考虑测试的问题,成为当前芯片设计很重要的一部分。

测试已经成为集成电路设计和制造过程中非常重要的因素,它已经不再单纯作为芯片产品的检验、验证手段,而是与集成电路设计有着密切联系的专门技术,与设计和制造成为了一个有机整体。可测性设计(DFT)给整个测试领域开拓了一条切实可行的途径,目前国际上大中型IC设计公司基本上都采用了可测性设计的设计流程,DFT已经成为芯片设计的关键环节。

3.“测试”与“验证”的区别

验证(Verification)的目的是检查设计中的错误,确保设计符合其设计规范和所期望的功能;而测试(Testing)则是检查芯片的加工制造过程中所产生的缺陷和故障。

4.DFT的核心技术

1)扫描路径设计(Scan Design)

扫描路径法是一种针对时序电路芯片的DFT方案.其基本原理是时序电路可以模型化为一个组合电路网络和带触发器(Flip-Flop,简称FF)的时序电路网络的反馈。

Scan 包括两个步骤,scan replacementscan stitching,目的是把一个不容易测试的时序电路变成容易测试的组合电路。

2)内建自测试(Bist)

内建自测试(BIST)设计技术通过在芯片的设计中加入一些额外的自测试电路,测试时只需要从外部施加必要的控制信号,通过运行内建的自测试硬件和软件,检查被测电路的缺陷或故障。和扫描设计不同的是,内建自测试的测试向量一般是内部生成的,而不是外部输入的。内建自测试可以简化测试步骤,而且无需昂贵的测试仪器和设备(如ATE设备),但它增加了芯片设计的复杂性。
在这里插入图片描述

3)JTAG

JTAG(Joint Test Action Group,联合测试工作组)是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片内部测试。

JTAG的基本原理是在器件内部定义一个TAPTest Access Port,测试访问口)通过专用的JTAG测试工具对内部节点进行测试。JTAG测试允许多个器件通过JTAG接口串联在一起,形成一个JTAG链,能实现对各个器件分别测试。

4)ATPG

ATPG(Automatic Test Pattern Generation)自动测试向量生成是在半导体电器测试中使用的测试图形向量由程序自动生成的过程。测试向量按顺序地加载到器件的输入脚上,输出的信号被收集并与预算好的测试向量相比较从而判断测试的结果。

5.DFT工程师的岗位职责

  • 芯片级DFT设计与集成,包括SCAN, MBIST和JTAG;
  • 负责DFT测试向量的自动生成及仿真;
  • 与逻辑设计工程师紧密合作,提高DFT测试覆盖率;
  • 与产品工程师和测试工程师紧密合作,调试并解决在测试机上失败的DFT测试向量;
  • 芯片级综合;
  • 与后端工程师紧密合作,完成芯片级timing signoff;
  • 芯片级形式验证;
http://www.lryc.cn/news/22074.html

相关文章:

  • 做「增长」必须懂的6大关键指标
  • Linux:soft lockup 检测机制
  • 天线理论知识4——非频变天线
  • 基础架构组件选型及服务化
  • leetcode-每日一题-1247(中等,数学逻辑)
  • 前端面试题 —— 计算机网络(一)
  • 分布式-分布式缓存笔记
  • 【反序列化漏洞-01】为什么要序列化
  • 用c语言模拟实现常用字符串函数
  • 在 Flutter 中使用 webview_flutter 4.0 | 基础用法与事件处理
  • JavaWeb--Servlet
  • Linux启动过程
  • 面试资料整理——C++
  • 【ArcGIS Pro二次开发】(9):GeoProcessing工具和自定义工具的调用
  • 皕杰报表斜线单元格、图表里或导出pdf的中文显示小方块解决方案
  • python读写hdfs文件的实用解决方案
  • RK3399+FPGA+MIPI 方案细节之subLVDS to MIPI处理
  • Vue组件是怎样挂载的
  • gcc: 编译选项:-fdelete-null-pointer-checks、-fno-delete-null-pointer-checks
  • 周赛334(前缀和、贪心+双指针、Dijkstra求最短路径、二分答案)
  • imx6ull——I2C驱动
  • Spring Cache的基本使用与分析
  • 【安全知识】——端口复用隐藏后门
  • Tina_Linux量产测试使用指南_new
  • STC32单片机 普通 I/O 口中断功能介绍和使用
  • 计算机学生如何找到第一份实习?
  • 《Python机器学习》基础代码
  • 【前端】JS异步加载
  • 【MySQL】SQL语言的五个部分
  • 详细的IO面试题汇总