微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > 微电子学习交流 > 关于DFT中的shift cycle 和 capture cycle 请教!

关于DFT中的shift cycle 和 capture cycle 请教!

时间:12-11 整理:3721RD 点击:
说scan 分成两种cycle Capture 和 Shift
shift cycle 使用ff的sd端
capture cycle 使用ff的d端
通过scan_enable 控制,
我想知道的为啥要分成2种
shift cycle 不是已经把测试序列通过移位送到寄存器内了吗
那我多移位几次, 不是可以把送进去的序列在移位出来,这样不是也可以比较?
谢谢

shift主要不是为了测试触发器,而是测试两个触发器之间的逻辑对不对吧?

shift 不是就是直接移位的吗, 这样怎么能测试触发器的逻辑

我倒是觉得那个capture 模式下好像可以能测试寄存器之间的逻辑

DFT不仅要测试FF,也要测试组合逻辑,实际的过程大概是:
1:load scan chain (shift in)
2: force pi
3: measure po
4: capture
5: unload scan chain (shift out)

能给一个资料比较详细介绍这个过程吗
不是很清楚 shift 和 capture 的区别
为什么要用寄存器的两个不同的端口
谢谢

不要被枝节混淆,首先弄清楚scan chain的基本原理
DFT要测试的是DFF,以及DFF与DFF之间的逻辑
比如分别有两组DFF,  A1,A2;  和B1,B2
在两组之间有组合逻辑互相连接
构成整个电路
我把A1 A2赋个值,然后让功能电路动起来,检测B1,B2的结果,具体怎么做呢
shift就是给A1A2赋值的过程,而capture就是动起来,最后结果怎么看? 再shift出来
所以两个cycle的clk不同,D端不同
你看到实际工作时,基本都是shift capture shift , shift capture shift....
当然,还有sequential的,比如对于buskeeper 可以capture两次...

嗯,一个是向下一级提供激励,一个是从上一级采样结果。

边界扫描设计中
进去的数据并不是要立马扫出来的.
而且有时候扫出来的数据也未必是你
送进去的.
它在pin出去之前,每个上加了寄存器
ieee1149.1有说明
是为了实现对芯片的控制等.

你把所有触发器用一根线穿起来,把数据序列扫进触发器里面;然后过逻辑去计算,然后下一级触发器capture D端输入;然后把后面那个FF里的数据用SO端扫出来看跟你预期的相同不相同。

再问一下
假如我一条链上有100个寄存器
shift cycle 需要花 100 个clk ?
capture cycle 需要花 多少个 clk?
我觉得要花100个
这样才能把 每一个寄存器之间的组合逻辑探测到
谢谢

shift 100进去 capture一次就够了,之后再shift出来看结果,完成一个pattern
多个pattern,把逻辑都测到

先通过sd端shift 100 个数据进去
通过d端capture 一次
这时候其实每2个寄存器之间的逻辑都检测到了
然后再通过sd端 shift 100 次出来
比较
应该是这样吧

那201个吧…………
扫进去100,计算1,扫出来100

如果只有一个clock domain,那么capture一次就行了
通常情况下都是多个clock domain,为了避免跨clock的timing violation,
一个cylce只有一个clock capture,这样就会capture多次;
要想只capture一次,除非做好所有clock balance,不过这样比较难,后端一般会叫的。

这仅仅是一个pattern....
照你这么说做DFT也太简单喽

capture的次数多少跟clock domain没有关系吧
主要是你用sequential algorithm的depth有多少
在synopsys的流程里,就是你用basic scan / fast sequential /full sequential的区别
说白了就是有的故障需要你的功能电路连续动作好几拍,之后看结果

有关系的,我前一段时间就是为了实现多个clock domain同时capture,
要求后端做clock balance结果搞了很久。
我用的是mentor的flow。
你所说的sequential depth应该是指有些FF没有进chain,
atpg工具采用sequential pattern来测试这些FF以及相应的逻辑

sysnopsys的flow里好象不推荐有跨clock domain的capture操作.
即使你在一条chain里串了几个domain的DFF,在工具里它也建议要标出disturbed clock,就是两个clock domain存在跨domain的data path. 工具自动会把这些path都mask掉.
BTW: 你们是出于什么目的需要做多个clock domain同时capture呢

一般来说,最好是在scan mode时,用一个clock,对DFT来说好处理;
也可以用好几个scan clock,但pattern量就会增大,好处是后端。
一般capture几个cycle,是看你的设计中sequential depth,也是有几个没有在scan chain 上的时序逻辑。
并不是和scan clock domain有关系。
BTW:划分不同的scan clock还是有讲究的,如果你pad足够,也能容忍pattern量,每个function clock domain都给个scan clock.所以fucntion 没有联系的两个clock domain可以分别用两个scan clock.

大头在shift用的cycle上
capture用的cycle可以忽略不计

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top