本文主要是介绍DFT系列文章之 《DFT Scan chain》,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
我们知道,运用DFT技术的基本步骤:
1. 规划scan chain
规划 scan chain,首先将电路中的普通 DFF 换成 scan DFF:
2. scan cell 替换
scan DFF 是在原DFF 的输入端增加了一个 MUX,于是多了几个 pin :scan_in,scan_enable,scan_out。换完之后将所有的 scan DFF 首尾依次串接起来,就构成了一条 scan chain :
原始RTL结构图
替换MUX-D scan 后的效果图
3. 工作原理解释
(1)当 SE 信号(即 scan enable )有效时,电路进入scan 状态,此时数据通路如下图蓝色粗线所示:
(2)当 SE 信号无效时,电路工作在 normal 状态,数据通路如下图红色粗线所示:
4. 检测电路缺陷
那么,这样一条 scan chain 是如何检测到电路中的缺陷呢?
简单来讲,scan chain 工作时分为三个步骤: load ····> capture ····> unload
load 是将input pattern 打入 scan chain
capture 是将每一级组合逻辑的结果打入下一级register
unload 是将scan chain 中的数据串行输出,得到 output pattern
解释:
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 和预期的输出结果相同,说明电路工作正常
否则说明电路制造有问题,属于废片了
这篇关于DFT系列文章之 《DFT Scan chain》的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!