Ⅱ 可测试性设计原理:Wrapping Core

core
本文主要讲述了TheCoreFlow的基本原理,区别于TheReuse CoreFlow实现更为简单,但会引入更大的和area的影响 。参考(翻译)自《? ? DFT User Guide》,FYI 。
TheCoreFlow
简易的coreflow提供了基本的core。
CoreCell
Safe-StateCell
该类型的 cell在输入端提供可观测性,在输出端提供可控制性,core input和core 都使用WC_D1cell,但是可控制的 cell输出端可以作为数据 shift进 chain,在某些情况下,如果边沿触发或者电平敏感逻辑存在于 cell的,可能需要额外的操作 。
为了避免这种情况,可以为 cell spec一个safe value 。DFTC通过使用cell来实现存储safe value的功能 。它在输出端增加了一个额外的mux来驱动safe value通过一个额外的控制信号来使能 。
与WC_D1 大致相同,增添了以下额外信号:
-

Ⅱ  可测试性设计原理:Wrapping Core

文章插图
这个信号决定何时输出safe value;
- Logic value
这个信号定义了safe state logic value;-Cells
如果中有与port相连的 I/O ,可以复用这些 作为 cell logic去减少面积开销 。使用cell来代替存在的 在 mode下提供等价的功能 。
为了core的特性能共享到 ,I/O 和port必须满足以下情况:这个的data input或者必须通过wire或logic path的方式连接在 port上,这条logic path必须可以敏化以产生或的效果并且必须由恒定信号类型控制(静态值为0或1)主要输入输出 。共享的必须是 clock控制 。
如果I/O的clock与core clock是同一个,并且在 chain操作的时候会影响到core logic就需要分离 clock给cell或者使用 -选项 。
当启用cell style时,DFTC将尽可能地插入cell,比如
但是如果不满足要求,就只能插入cell,比如
Ⅱ  可测试性设计原理:Wrapping Core

文章插图
如果一个寄存器既是输入共享寄存器又是输出共享寄存器,那么该寄存器就成为输入共享寄存器,并且在输出端口放置一个cell,比如
如果一个输出 被定义了一个safe state通常使用cell 。但是如果除了输出port之外寄存器的输出还驱动了内部的logic那么里的safe state logic会阻止寄存器驱动内部logic,所以当DFTC检测到这种情况时会使用WC_S1来代替并将safe state logic移到 port 。
Core
在 coreflow里输入和输出 cell可以被放在一条 chain 。设计中可以有一条或多条 chain 。
上图为-操作下 chain的shift和行为,在阶段 cell会通过循环一直保持同一个值来block住外部输入 。
【Ⅱ可测试性设计原理:Wrapping Core】上图为-操作下 cell的shift和行为 。