为了更好的设计一个scan design,一些scan design的rule必须遵循。
1)tristate bus在shift mode下必须保持bus contention;
2)bidirectional IO port在shift mode下,必须force在input或者output;
3)gated clock在shift mode下,必须保证enable;
4)derived clock在shift和capture mode下,最好保持bypass;
5)combinational的feedback,在shift和capture mode下,应该break;
6)async的set/reset,在shift和capture mode下,最好使用external pin;
7)clock drive data,在shift和capture mode下,最好进行block;
8)Floating buses,在shift和capture mode下,增加bus keeper;
tristate buses:
ATPG可以保证在capture mode下,不会有两个drive控制一个bus的情况,但是在shift mode下,
并没有这样的保证,所以要求在shift mode下,bus contention不变。
而且一个没有pull-up/pull-down/bus-keeper的bus,也会导致fault coverage loss,因为一个floating bus
是不可预测的,不能进行stuck-at 1的测试。所以pull-up/pull-down/bus-keeper的bus推荐设计。
bidirectional IO port:
在一个capture operation中,bidirectional IO会被指定为input/output,但是在shift operation上,
需要多加控制。
Gated clock:
clock gate的enable端口,同样不能在进行shift mode下,在0与1之间多次变化。
可以使用SE或TM信号控制。
Derived clock:
一个derived clock是指从一个storage element和一个clock generator(PLL,frequence divider,pluse generator)
在整个的test过程中,这些clock必须是bypass的。
Combinational Feedback loops:
当inversion的个数是奇数时,输出形成oscillation,
当inversion的个数是偶数时,输出形成sequential behavior,
在进行test的过程,需要保证loop中的value是controlled,所以需要接爱如逻辑:
Async set/reset signals:
async set/reset不能由primary input直接控制,可能影响shift data的合理操作,所以要求,在shift operation
中,这些信号被force为inactive。
使用TM信号会导致,这些reset/set信号在test过程中,不能被测试到,
使用SE信号可能会使得clock这些set/reset之间造成竞争。