IC流程中 DFT 学习笔记(2)

 9468e067a4704e2487ca11fc78c9a250.png



引言

DFT是ASIC芯片设计流程中不可或缺的环节。其主要目的是在芯片前端设计验证完成后插入一些诸如寄存器链等可供测试的逻辑,算是IC后端设计的范畴,属于结构测试而非功能测试。主要是在ASIC芯片流片完成后,通过这些已插入的逻辑,检测流片得到的芯片的制造质量。检测一些固定故障等。

学习参考

  1. 数字系统测试和可测试性设计。【美】赛纳拉伯丁 - 纳瓦比 著。原本和译本。
  2. 修真院讲解视频。
  3. E课网 DFT 课程。
  4. 华中科技大学IC设计中心 陈新武 讲稿《集成电路测试方法研究》。
  5. Design-for-Test: Scan and ATPG Training Student Workbook ,Copyright  Mentor Graphics。


故障建模

对芯片制造过程中可能出现的制造缺陷进行建模,可以帮助分析具体故障以及产生测试向量。

Stuck-at 故障模型

芯片制造过程中由于工艺或者环境控制不佳,导致某些芯片内的布线出现stuck-at问题,即该布线的电平被始终拉高或者拉低。

翻转(transition)故障模型

电平转换时间变长,即时钟或者数据的边沿跳变时间边长,速率变慢。

对比一下:

 

路径延时故障模型

静态电流测试

不了解的点击这里:IDDQ简介 

扫描 (Scan) 技术

基本说明

如下图所示,首先是触发器替换,将普通的触发器,替换为扫描触发器。然后是将各个扫描触发器串联起来。 

Scan Cell Type

采用多路选择器而增加的延迟表现在功能路径中,有较少的面积增加。一个带多路选择器的D触发器通常将一个标准D触发器的面积增加15%到30%;增加的I/O端口最少的可以只有一个Scan_En。在实际设计中,可能并不需要增加一个另外的I/O端口用于Scan_in或者Scan_out,因为可以在设计中将这些引脚和功能引脚复用。 

单锁存电平敏感扫描单元的逻辑结构如图所示。上图为通常意义下的D触发器,下图为它相应的可扫描单元。增加了一个数据输入端、两个时钟输入端: Test_Scan_Clock_a 和Test_Scan_Clock_b。增加的两个时钟是电平触发的。在测试模式下,Test_Scan_Clock_a和Test_Scan_Clock_b连接到所有的同类扫描单元,分别在不同的时刻将扫描数据逐位移动。Scan_in引脚的数据来自上一个扫描单元。

单锁存器LSSD的特征是:
a) 对电路性能的影响可以忽略;
b) 较高的面积代价。用一个LSSD单元替换一个简单的锁存器将会增加100%或者更多时序逻辑的面积。增加的主测试时钟和从测试时钟也增加了布线的面积(与多路选择器型的触发器扫描类型相比);
c) 支持带有异步复位和清零端的锁存器
d) 因为增加了专用的测试时钟,所以适合用于部分扫描设计。

专用时钟控制的扫描方法是使用一个专用的、边沿触发的测试时钟来提供串行移位驱动。在功能模式下,系统时钟是活动的,系统数据被时钟打入单元电路。在测试移位过程中,测试时钟是活动的,扫描数据被打入该电路单元。电路符号如图4-2所示。图a为标准的D触发器,图b为专用时钟控制的可扫描单元。在这种结构中,相当于有两个D输入端,两个时钟输入端。在这种方式下,需要增加的测试引脚有:扫描输入、测试时钟、扫描输出(可以和输出功能引脚共用)。 

专用时钟控制扫描方式的特征是:
对电路性能影响可以忽略;面积的增加可以接受:一个专用时钟控制的扫描单元一般比普通的D触发器的面积增加15%--30%;支持这种扫描方式的工艺库具有触发器和锁存器两种等效单元;很适用于部分扫描设计:专用的测试时钟提供了一种机制,在扫描移位的过程中,可以很容易地保持非扫描单元的状态;支持带有异步置位和复位端的锁存器;典型的应用是具有边沿触发的设计风格。

Scan Chains

正常模式

扫描模式

设计流程

测试流程

工具流程

边界扫描

移位寄存器单元插入到IC的核心逻辑与I/O管脚之间,以提供通过所有IC的一条串行测试数据通路。因为移位寄存器单元位于IC的边界处,所以这些单元被称为边界扫描单元(BSC,Boundary Scan Cell),由它们构成的移位寄存器称为边界扫描寄存器。串行测试数据的输入端被称为测试数据输入端(TDI),相应的输出端被称为测试数据输出端(TDO)。为了完成测试功能,相互连接的边界扫描单元必须具有数据移位、数据更新、数据捕获等功能,这些功能是由测试控制逻辑来控制的。测试控制逻辑由两条信号线驱动:测试方式选择(TMS)和测试时钟(TCK)。所以,整个边界扫描测试要求IC中至少有四个可利用的测试管脚,或将它们附加到其他的功能管脚上。

边界扫描测试技术的工作原理就是:JTAG测试仪利用一个四线测试接口,将测试数据以串行方式由TDI打入到边界扫描寄存器中,通过TMS发送测试控制命令,经TAP控制器控制边界扫描单元完成测试数据的加载和响应数据的捕获。最后,测试响应数据以串行扫描方式由TDO送出到JTAG测试仪,在那里,将捕获到的响应数据与期望的响应进行比较。四个管脚TMS、TCK、TDI和TDO被称为测试访问端口(TAP, Test Access Port),全部测试控制逻辑被称为TAP控制器。

内建自测 BIST

BIST主要完成测试序列生成和输出响应分析两个任务。通过分析被测电路的响应输出,判断被测电路是否存在故障。因此,对数字电路进行BIST测试,需要增加三个硬件部分:测试序列生成器、输出响应分析器和测试控制部分

确定性测试方法是一种针对特定的电路故障进行测试的方法,虽然可以得到很高的故障覆盖率,但硬件开销大,仅在测试码个数较少的时候采用
伪穷举测试的方法是把所有可能输入都加以计算的测试方法。它的最大特点是故障覆盖率可以达到100%,但其计算量与输入端子呈幂次方关系,因此计算量很大。如果将电路分为多个原始输入变量互相独立的块,则测试数将大大减少。伪穷举法就是这样一种压缩测试向量的方法。伪穷举法也具有很高的故障覆盖率,但伪穷举法对电路进行划分比较困难,有相当的局限性。而且由于加入了附加硬件,可能对电路性能产生负面效应。
伪随机测试是一种广泛使用的测试方法,该方法可以对被测试电路产生大量的测试代码,而且硬件电路开销较小,同时具有较高的故障覆盖率。LFSR(Linear Feedback Shift Register,线性反馈移位寄存器)就是这样一种测试代码生成电路

实现输出响应分析的方法有ROM比较逻辑法、多输入特征寄存器法和跳变计数器法等。ROM比较逻辑法是将正确的响应存储在芯片内的ROM中,在测试的时候,将其与测试响应进行比较,但这种方法会因为占用太多的芯片面积而毫无实用价值。多输入特征寄存器方法是将被测试电路中各节点的响应序列进行处理,得到与测试响应序列等长的特征字(Signature),然后与无故障电路节点的响应序列特征值进行比较,如果两者相同,则说明电路正常,否则表明被测试电路有故障存在。跳变计数器法是通过比较输出响应的跳变总数,来判断被测试电路是否正常工作,因此需要存储和比较跳变次数,从而使得所需要的存储空间与测试时间都得到大幅度的降低。但是后面两种方法是以牺牲故障覆盖率为代价的。

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

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

相关文章

国家一带一路和万众创业创新的方针政策指引下,Live Market探索跨境产业的创新发展

现代社会,全球经济互联互通,跨境产业也因此而崛起。为了推动跨境产业的创新发展,中国政府提出了“一带一路”和“万众创业、万众创新”的方针政策,旨在促进全球经济的互联互通和创新发展。在这个大环境下,Live Market积…

华为PPPOE配置实验

华为PPPOE配置实验 网络拓扑图拓扑说明电信ISP设备配置用户拨号路由器配置查看是否拨上号是否看不懂? 看不懂就对了,只是记录一下命令。至于所有原理,等想写了再写 网络拓扑图 拓扑说明 用户路由器用于模拟家用拨号路由器,该设备…

github以及上传代码处理

最近在github上传代码的时候出现了: /video_parser# git push -u origin main Username for https://github.com: gtnyxxx Password for https://gtny2010github.com: remote: Support for password authentication was removed on August 13, 2021. remote: Plea…

STM32——SPI外设总线

SPI外设简介 STM32内部集成了硬件SPI收发电路,可以由硬件自动执行时钟生成、数据收发等功能,减轻CPU的负担 可配置8位/16位数据帧、高位先行/低位先行 时钟频率: fPCLK / (2, 4, 8, 16, 32, 64, 128, 256) 支持多主机模型、主或从操作 可…

HTTP与HTTPS的区别

面试常见问题,HTTPS优化总结易记版: 1、HSTS重定向技术:将http自动转换为https,减少301重定向 2、TLS握手优化:在TLS握手完成前客户端就提前向服务器发送数据 3、会话标识符:服务器记录下与某客户端的会…

C#语音播报问题之 无法嵌入互操作类型SpVoiceClass,请改用适用的窗口

C#语音播报问题之 无法嵌入互操作类型SpVoiceClass,请改用适用的窗口 解决办法如下: 只需要将引入的Interop.SpeechLib的属性嵌入互操作类型改为false 改为false 即可解决!

微服务最佳实践,零改造实现 Spring Cloud Apache Dubbo 互通

作者:孙彩荣 很遗憾,这不是一篇关于中间件理论或原理讲解的文章,没有高深晦涩的工作原理分析,文后也没有令人惊叹的工程数字统计。本文以实际项目和代码为示例,一步一步演示如何以最低成本实现 Apache Dubbo 体系与 S…

面试之ReentrantLock

一,ReentrantLock 1.ReentrantLock是什么? ReentrantLock实现了Lock接口,是一个可重入且独占式的锁,和Synchronized关键字类似,不过ReentrantLock更灵活,更强大,增加了轮询、超时、中断、公平锁…

k8s v1.27.4二进制部署记录

记录二进制部署过程 #!/bin/bash#升级内核 update_kernel() {rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.orgyum -y install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpmyum --disablerepo"*" --enablerepo"elrepo-kernel&q…

carla中lka实现(二)

前言: 首先计算之前检测出来的车道线的中线与输入图像的中线进行计算距离,,并设置不同的阈值对于不同的方向进行相关的调整。 一、车辆中心线 一般而言将摄像头架设在车辆的正中心轴上,所获得的图像的中间线极为车辆的中心。 …

Element Plus el-table 数据为空时自定义内容【默认为 No Data】

1. 通过 Table 属性设置 <div class"el-plus-table"><el-table empty-text"暂无数据" :data"tableData" style"width: 100%"><el-table-column prop"date" label"Date" width"180" /&g…

[HDLBits] Exams/m2014 q4d

Implement the following circuit: module top_module (input clk,input in, output out);always(posedge clk) beginout<out^in;end endmodule直接写out^in就行

前端如何安全的渲染HTML字符串?

在现代的Web 应用中&#xff0c;动态生成和渲染 HTML 字符串是很常见的需求。然而&#xff0c;不正确地渲染HTML字符串可能会导致安全漏洞&#xff0c;例如跨站脚本攻击&#xff08;XSS&#xff09;。为了确保应用的安全性&#xff0c;我们需要采取一些措施来在安全的环境下渲染…

Docker 常规软件安装

1. 总体安装步骤 1. 搜索镜像 search 2. 拉取镜像 pull 3. 查看镜像 images 4. 启动镜像 - 端口映射 run 5. 停止容器 stop 6. 移除容器 rm 2. 安装tomcat 1. 搜索 docker search tomcat 2. 拉取 docker pull tomcat 3. 查看本地镜像 docker images tomcat 4. 创建容器实…

python Requests

Requests概述 官方文档&#xff1a;http://cn.python-requests.org/zh_CN/latest/,Requests是python的HTTP的库&#xff0c;我们可以安全的使用 Requests安装 pip install Requests -i https://pypi.tuna.tsinghua.edu.cn/simple Requests的使用 Respose的属性 属性说明url响…

TCP中窗口和滑动窗口的含义以及流量控制

一.窗口 在TCP中由于要保证可靠性&#xff0c;所以每发送一条数据后&#xff0c;都需要接收方返回一条应答报文&#xff0c;要是我们每发送一条数据&#xff0c;发送方就等待接收应答报文&#xff0c;收到之后再去发送下一条数据&#xff0c;这样我们就会花费大量的时间在等待应…

【数据结构】栈和队列常见题目

文章目录 有效的括号用队列实现栈两个队列实现栈一个队列实现栈 用栈实现队列设计循环队列最小栈栈的压入&弹出序列逆波兰表达式 队列&#xff1a;先进先出 栈&#xff1a;后进先出 有效的括号 https://leetcode.cn/problems/valid-parentheses/ class Solution { public:b…

Linux —— 进程间通信

目录 一&#xff0c;进程间通信 二&#xff0c;管道 匿名管道 命名管道 一&#xff0c;进程间通信 进程间通信&#xff08;IPC&#xff0c;InterProcess Communication&#xff09;&#xff0c;即在不同进程之间进行信息的传播或交换&#xff1b;由于一般进程用户地址空间是…

高效使用ChatGPT之ChatGPT客户端

ChatGPT客户端&#xff0c;支持Mac, Windows, and Linux 下载地址见文章结尾 软件截图 Windows: Mac&#xff1a; 说明 chatgpt桌面版&#xff0c;相比于网页版的chatgpt&#xff0c;最大的特色是支持历史聊天对话记录导出&#xff0c;且支持三种格式&#xff1a;PNG、PDF、…

如何使用 ChatGPT 将文本转换为 PowerPoint 演示文稿

推荐&#xff1a;使用 NSDT场景编辑器 助你快速搭建可二次编辑的3D应用场景 步骤 1&#xff1a;将文本转换为幻灯片演示文稿 第一步涉及指示 ChatGPT 根据给定的文本生成具有特定数量幻灯片的演示文稿。首先&#xff0c;您必须向 ChatGPT 提供要转换的文本。 使用以下提示指示…