现代集成电路的制造工艺越来越先进,但是在生产过程中的制造缺陷也越来越难以控制,甚至一颗小小的PM2.5就可能导致芯片报废,为了能有效的检测出生产中出现的废片,需要用到扫描链测试(scan chain),由此产生了可测性设计即 DFT flow。

DFT 第一步是做 scan chain,首先将电路中的普通 DFF 换成 scan DFF:

scan DFF 是在原DFF 的输入端增加了一个 MUX,于是多了几个 pin :scan_in,scan_enable,scan_out

换完之后将所有的 scan DFF 首尾依次串接起来,就构成了一条 scan chain :

当 SE 信号(即 scan enable )有效时,电路进入scan 状态,此时数据通路如下图:

当 SE 信号无效时,电路工作在 normal 状态,数据通路如下图:

那么,这样一条 scan chain 是如何检测到电路中的缺陷呢?

简单来讲,scan chain 工作时分为三个步骤: load ····>  capture ····> unload

load 是将input pattern 打入 scan chain

capture 是将每一级组合逻辑的结果打入下一级register

unload 是将scan chain 中的数据串行输出,得到 output pattern

下图是一个简单的 scan chain 工作原理示意图:

结合上图,可知scan mode 的工作步骤如下:

1. 将普通的 register 替换为 scan register

2. 将 scan register 首尾依次串接起来

3. 在 SE 有效拉高时,将 input pattern 串行打入scan register

4. 然后 SE 拉低,等 Reg/Q 的值经过组合逻辑运算后到达下一级 reg 的D 端

5. 再产生一个 capture pulse 将 D 端的值打入寄存器

6. 最后 SE 拉高,将 reg 中的值依次串行输出,得到 output pattern

7. 如果 output  pattern 和预期的输出结果相同,说明电路工作正常

否则说明电路制造有问题,属于废片了

Question : 为什么 cts 时, func clock 和scan clock 经常出现长不齐?

|--------------------------------|

最新文章

  1. SpringMVC类型转换器、属性编辑器
  2. dex文件格式一
  3. easyui dialog iframe
  4. k序数组排序
  5. margin负值在页面布局中的应用
  6. js原生瀑布流
  7. RunTime 应用实例–关于埋点的思考
  8. PHP 杂项 函数
  9. [前端性能提升]--图片转化为base64
  10. ECOS运行环境安装(一)
  11. Python网络编程篇之socket
  12. 常用css样式颜色值: 64位真彩和256位值
  13. Linux运维期中架构(50台集群)
  14. PKUWC 2017 Day 2 简要题解
  15. AXI4
  16. 浏览器URL参数解决方案
  17. [LeetCode] 598. Range Addition II_Easy tag: Math
  18. grep -v grep
  19. 使用echart的雷达图的时候,如果文字越界的解决办法记录,标签文字自动换行
  20. appium自动化环境搭建

热门文章

  1. C#转换成Json的方法集
  2. CentOS7部署Django项目
  3. promise的理解和应用
  4. How to use Data Iterator in TensorFlow
  5. VS2008 试图运行未注册64位调试器组件
  6. jsp隐式对象
  7. Express4.X中的bin/www是作什么用的?为什么没有后缀?
  8. c++得到窗口句柄
  9. oracle EBS rtf报表不能输出模板样式
  10. [CentOS7] [VMWARE] 增加磁盘空间后扩大逻辑分区