【SOC 芯片设计 DFT 学习专栏 -- 测试向量生成 ATPG (Automatic Test Pattern Generation) 】

文章目录

    • Overview
      • ATPG 的基本功能
      • ATPG 的工作流程
      • ATPG 应用场景示例
        • 示例 1:检测单个信号的 Stuck-at Fault
        • 示例 2:针对 Transition Fault 的 ATPG
      • ATPG 工具与常用工具链
      • ATPG 优化与挑战

Overview

本文主要介绍 DFT scan 中的 ATPG 功能。在 DFT (Design for Testability) Scan 流程中,ATPG (Automatic Test Pattern Generation) 是一种关键技术,用于生成测试向量以检测半导体设计中的故障。以下是 ATPG 的详细介绍及应用场景的举例:

ATPG 的基本功能

  1. 生成测试向量

    • ATPG 工具根据设计的网表和故障模型生成一系列输入测试向量,这些向量用于检测特定的逻辑故障。目标是覆盖最大数量的潜在故障。
  2. 故障建模

    • ATPG 通常基于故障模型生成测试向量,常见的故障模型包括:
      • Stuck-at Faults (SAF):假设某一线被固定为 0 或 1。
      • Transition Faults (TF):针对信号未能及时完成从 0->11->0 的转换。
      • Path Delay Faults (PDF):检测关键路径上的时序问题。
      • Bridging Faults:假设相邻的两条信号线被意外短路。
  3. 测试覆盖率分析

    • ATPG 工具评估生成的测试向量集能覆盖多少百分比的故障。如果某些故障未被检测,可以调整策略生成补充向量,或标记这些故障为未检测(Untestable Faults)。
  4. 优化测试效率

    • ATPG 尝试最小化测试向量的数量,从而减少测试时间(Tester Time)和存储需求,同时最大化故障覆盖率。
  5. 逻辑仿真与验证

    • ATPG 工具会通过仿真验证生成的测试向量对故障的实际检测能力,确保测试覆盖率符合期望。

ATPG 的工作流程

  1. 输入准备

    • 输入包含设计的网表(Netlist)、DFT 插入的扫描链(Scan Chain)配置,以及时钟、复位、约束等信息。
  2. 故障列表生成

    • 工具根据设计自动创建可能的故障列表,包括上述的 Stuck-at 和 Transition 等模型。
  3. 生成测试向量

    • 根据故障列表,工具逐个尝试生成相应的输入刺激和期望响应。
    • 确保在扫描模式下,测试向量能导出到需要检测的故障节点。
  4. 故障仿真与优化

    • 将生成的测试向量在仿真环境中运行,验证其对目标故障的检测能力,并尽量合并冗余向量。
  5. 输出测试集

    • 生成的向量集通常以标准测试向量格式(如 WGL、STIL 等)输出,用于实际 ATE(Automatic Test Equipment)测试中加载。

ATPG 应用场景示例

示例 1:检测单个信号的 Stuck-at Fault
  • 设计结构:假设一个简单的 2 输入 AND 门,其输入信号为 A 和 B,输出为 Y。
  • 目标故障:信号 A 固定为 1(Stuck-at-1)。
  • ATPG 步骤
    1. 在测试模式中初始化扫描链,加载向量:B=1
    2. 设置输入:A=0
    3. 检查输出:Y=0,以此验证故障被检测(实际应为 0,但因为 A 固定为 1,则输出会错误)。
示例 2:针对 Transition Fault 的 ATPG
  • 设计结构:一个复杂电路的关键路径存在 Transition 故障。
  • 目标故障:信号 X 上未完成 1->0 的转换。
  • ATPG 步骤
    1. 在时钟边沿加载扫描模式数据,使 X 从初始状态为 1。
    2. 在下一个激励向量切换时,强制 X 置为 0。
    3. 验证输出延迟,检查路径时序是否满足。

ATPG 工具与常用工具链

  • 主要工具:常见的 ATPG 工具有 Synopsys TetraMAX、Cadence Modus 和 Siemens Tessent。
  • 主要输出:包括 Scan Pattern 向量(可能为多种格式,如 STIL、WGL)、故障覆盖报告、测试时间预测等。
  • 整合流程
    1. 与 DFT 插入紧密结合,确保 ATPG 支持插入的扫描链结构。
    2. 配合 ATE,在晶圆或成品测试阶段检测可能的生产缺陷。

ATPG 优化与挑战

  1. 优化扫描链

    • 合理的扫描链长度和分布可以显著减少 ATPG 测试向量的数量。
  2. 故障逃逸问题

    • 设计中未建模的故障(例如工艺缺陷引起的桥接问题)可能逃逸。针对这些问题,可以额外增加针对性的故障模型。
  3. 性能瓶颈

    • ATPG 的计算复杂度随设计规模线性或超线性增加,大型 SoC 上需要分区生成以提升效率。

通过 ATPG 技术,设计者可以有效发现芯片内部逻辑或制造过程中的潜在问题,显著提高设计的可测试性和最终产品的质量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/947383.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

HTML-CSS-常见标签与样式

目录 一. 央视新闻排版1.1 标题1.2 正文1.3 案例1.3.1 顶部导航栏1.3.2 flex布局1.3.3 表单标签1.3.4 表单项标签1.3.5 表格 1.3 课程总结 \quad 一. 央视新闻排版 \quad \quad 1.1 标题 \quad ALTp就是用AI快速生成 标题一共有6级 \quad 1.2 正文 \quad 定义视频 定义图片 样…

【信息安全设计】系统安全设计方案,系统安全保护设施设计实施方案(Word原件)

1.1 总体设计 1.1.1 设计原则 1.2 物理层安全 1.2.1 机房建设安全 1.2.2 电气安全特性 1.2.3 设备安全 1.2.4 介质安全措施 1.3 网络层安全 1.3.1 网络结构安全 1.3.2 划分子网络 1.3.3 异常流量管理 1.3.4 网络安全审计 1.3.5 网络访问控制 1.3.6 完整性检查 1.…

基于STP文件的智能比对系统:思通数科带来高效机械制造解决方案

在机械制造领域,设计图纸与实物之间的精准对比至关重要,传统的比对方式往往需要耗费大量时间且容易出现错误,导致生产效率低下并影响产品质量。为了解决这些问题推出了一套基于STP文件的智能比对系统,结合大模型技术,集…

【51项目】51单片机自制小霸王游戏机

视频演示效果: 纳新作品——小霸王游戏机 目录: 目录 视频演示效果: 目录: 前言: 一、连接方式: 1.1 控制引脚 1.2. 显示模块 1.3. 定时器 1.4. 游戏逻辑与硬件结合 1.5. 中断处理 二、源码分析&#xff1a…

SpringMVC(五)实现文件上传

目录 1.先导jar包 2.在Springmvc.xml配置文件上传解析器 3. 编写文件上传的html页面 4.在controller包中创建FileController.class文件 5.文件下载 6.重启服务器测试 1.先导jar包 <dependency><groupId>commons-fileupload</groupId><artifactId>…

LabVIEW声波谐振管自动化测量系统

开发了一种基于LabVIEW的声波谐振管自动化测量系统。该系统利用LabVIEW的强大功能&#xff0c;实现了对声波谐振频率的精确测量&#xff0c;提高了实验数据的采集效率和准确性。系统主要应用于物理教学和科研中&#xff0c;用于研究声波在谐振管中的传播特性。 项目背景 传统的…

docker Error response from daemon

问题 Error response from daemon: Get "https://index.docker.io/v1/search?qnginx&n25": read tcp 192.168.50.233:54354->54.198.86.24:443: read: connection reset by peer Unable to find image redis:latest locally docker: Error response from d…

PHP框架+gatewayworker实现在线1对1聊天--gatewayworker说明(2)

文章目录 gatewayworker使用说明onConnect 说明 gatewayworker使用说明 gatewayworker里只需要使用Applications\YourApp下的Events.php文件。 对文件的代码进行一下改造&#xff0c;如下&#xff0c;我们只需要用到onConnect方法&#xff0c;写法固定&#xff0c;其他方法都…

【Hadoop】Hadoop安全之Knox网关

目录 一、概述 2.1 knox介绍 2.2 版本信息 二、部署 三、验证Knox网关 3.1 Hdfs RESTFULL 3.2 HDFSUI 3.3 YARNUI 3.4 HBASEUI 一、概述 2.1 knox介绍 Apache Knox网关是一个用于与Apache Hadoop部署的REST api和ui交互的应用程序网关。Knox网关为所有与Apache Hadoop…

PyCharm专项训练5 最短路径算法

一、实验目的 本文的实验目的是通过编程实践&#xff0c;掌握并应用Dijkstra&#xff08;迪杰斯特拉&#xff09;算法和Floyd&#xff08;弗洛伊德&#xff09;算法来解决图论中的最短路径问题。 二、实验内容 数据准备&#xff1a; 使用邻接表的形式定义两个图graph_dijkstra…

分布式算法(五):初识ZAB协议

文章目录 一、什么是Zookeeper二、ZAB与Zookeeper的关系为什么Zookeeper不直接使用Paxos 三、ZAB简介1.名词解释提案&#xff08;Proposal&#xff09;事务&#xff08;Transaction&#xff09;原子广播&#xff08;Atomic Broadcast&#xff09; 2.集群角色领导者&#xff08;…

word中插入zotero引用

1、参考文献末尾没有文献&#xff1f; 在文献条目要显示的地方点击“refresh” 2、参考文献条目没有悬挂缩进&#xff1f; 把“书目”添加到样式库中&#xff0c;修改样式为悬挂缩进1.5字符 3、交叉引用&#xff1f; 宏 新建一个宏 粘贴下面代码 Public Sub ZoteroLinkCita…

利用3DGS中convert.py处理自采数据

前言 3DGS源码中convert.py提供对自采数据集的处理&#xff0c;需要预先安装Colmap和ImageMagick. ubuntu22.04安装colmap 点击进入NVIDIA官网&#xff0c;查看GPU的CMAKE_CUDA_ARCHITECTURES 1、克隆colmap源码&#xff0c;并进入colmap文件夹 git clone https://github.c…

【Vue】vue-router使用addRoute动态加载路由后刷新页面404

场景&#xff1a;动态加载路由&#xff0c;点击菜单路由跳转正常&#xff0c;但刷新页面报404 原因&#xff1a;使用404做异常路由捕获 刷新页面会导致路由丢失&#xff0c;重建路由时先加载了静态路由&#xff08;包含异常路由捕获404&#xff09;&#xff0c;此时动态路由还未…

USB射频微波功率计的功能与优势-盛铂科技

USB射频功率计是一种用于测量射频信号&#xff08;RF&#xff09;功率的仪器&#xff0c;它通过USB接口与计算机或其他设备连接&#xff0c;以便于进行数据采集、处理和显示。 主要功能 功率测量&#xff1a;能够测量射频信号的功率&#xff0c;通常以毫瓦&#xff08;mW&…

【Vim Masterclass 笔记01】Section 1:Course Overview + Section 2:Vim Quickstart

文章目录 Section 1&#xff1a;Course Introduction 课程概述S01L01 Course Overview 课程简介课程概要 S01L02 Course Download 课程资源下载S01L03 What Vim Is and Why You Should Learn It 何为 Vim&#xff1f;学来干啥&#xff1f;1 何为 Vim2 为何学 Vim Section 2&…

Elasticsearch JavaRestClient版

文章目录 初始化RestHighLeveClient&#xff08;必要条件&#xff09;索引库操作1.创建索引库&#xff08;4步&#xff09;2.删除索引库&#xff08;3步&#xff09;3.判断索引库是否存在&#xff08;3步&#xff09;4.总结&#xff1a;四步走 文档操作1.创建文档&#xff08;4…

基于Pytorch和yolov8n手搓安全帽目标检测的全过程

一.背景 还是之前的主题&#xff0c;使用开源软件为公司搭建安全管理平台&#xff0c;从视觉模型识别安全帽开始。主要参考学习了开源项目 https://github.com/jomarkow/Safety-Helmet-Detection&#xff0c;我是从运行、训练、标注倒过来学习的。由于工作原因&#xff0c;抽空…

driftingblues6靶机

打开靶场 查看页面源代码&#xff0c;最下面有一个注释&#xff0c;提供了一个网址 vmlist.github.io&#xff0c;我们去访问一下 这里是一个github页面&#xff0c;提供攻防虚拟机的下载&#xff0c;对我们解题并没有什么有用的信息&#xff0c;我们再去扫描端口 发现只有80端…

python学习笔记—12—布尔类型、if语句

1. 布尔类型 (1) 定义 (2) 比较运算符 (3) 代码演示 1. 手动定义 bool_1 True bool_2 False print(f"bool_1的内容是&#xff1a;{bool_1}, 类型是&#xff1a;{type(bool_1)}") print(f"bool_2的内容是&#xff1a;{bool_2}, 类型是&#xff1a;{type(bool…