Tessent scan&ATPG (5) Additional test pattern types

Additional test pattern types附加的pattern的类型

ATPG test pattern 的类型

使用tessent shell 生成的pattern 大致分以下几种类型:
1. basic Scan 对于 full-scan 的电路 生成的是basic scan的pattern
2. clock Sequential 用于那些时序深度有限 存在no-scan latches /no-scan cell 的电路 在时序上: shift之后(或者说load之后)会有若干个cycle 给no-scan cell复制 只有最后一个cycle是 真正capture的;
3. clock PO 用于时钟信号经过组合逻辑到达一个私有的输出 这种电路;
4. Multiple load 用于存在 no-scan cell的RAM ROM 的设计; 在时序上可能存在多个scan load cycle 一个或多个capture的cycle;
下面看每个test pattern的详细的介绍

basic scan pattern

基础的scan pattern 包含下面几个步骤:
1. load_scan chains
2. force primary inputs(PI)
3. measure primary outputs(PO)
4. Pulse capture clock
5. unload value from scan cells

在这里插入图片描述

这里的capture cycle 只有一个cycle;
而load/unload是多个cycle;(mutiple clock to load ,signal clock to capture)

clock sequential patterns

上面说了 这种pattern是用来提高 non-scan 的时序部件的覆盖率;
例如:
在这里插入图片描述

上图存在一个 未被替换的D触发器 是组合逻辑连接中的一部分;
这种pattern测试时候的event包括:

  1. load scan chain
  2. apply clock sequential cycle 包括: 重复force PI ;Pulse clock;N次,此时的N为时序深度-1;
  3. Apply capture cycle 包括:force PI; measure PO; pulse capture clock;
  4. 从scancell’中将值shift 出来(unload)
    在这里插入图片描述

使用create_pattern指令时 工具会自动帮你识别sequential depth elements; 帮你设置合适的 depth的值;
整个过程,以上面的电路为例,

1, load 阶段SI 输入00;SE拉高;将00shift进scan chain 中 会发现属于non-scan cell 的中间寄存器仍然是不可控的状态; 此时的output 也是未知的;
在这里插入图片描述

  1. 进入clock sequential cycle, PI 从AB port输入0 1;
    在这里插入图片描述

Pulse clock; 此时就会将逻辑中的值 打入non-scan 的DFF中;上级时序传递的X到达下一级的scan cell
在这里插入图片描述

  1. apply capture clock 在capture cycle的时候再次force PI measure PO;
    给一个clk pulse 将逻辑中的值 capture到扫描链中;
    在这里插入图片描述

至此 我们就完成了 第一次 PI 是为了control non-scan cell中的值 第二次PI才是真正用于capture 的值;
4. 最后就是将 scan chain 中的值 unload出来 同时load进新的值;

在这里插入图片描述

clock PO pattern

指得那些 generated clock 的电路; 时钟经过组合逻辑会直接连接到PO上;
这种电路存在的问题:
在这里插入图片描述

如上图所示位置存在 stuck@1 的fualt是可以测到的但是stuck@0的fault;由于其本身为clk,现又为PI ,双重身份,使它不能随便赋1;无法检测stuck@0 的fault;

解决方法

为了解决这个问题: 一个附加的timeplate被安排上了;这个timeplate 会自动生成,在basic pattern capture或者 load/unload 的时候 它表现为一个规则的时钟;而在clock PO pattern的capture cycle 阶段他表现为持续拉高的状态;
在这里插入图片描述

当出现DRC的违例中的C8 C9时,就可以使用 clock PO pattern 去解决;
在这里插入图片描述

对于 sub-block 来说, block级的PO 可能并不是 top level 的PO;所以block并不考虑 clock PO的 pattern.对于 top level, 也要看ATE机台是否支持multiple timeplate ,对于不支持的 只能cut off掉,但是对覆盖率的影响微乎其微;

set_pattern_type -clock_po off

testing Around RAMs(memory 周边的逻辑如何去测)

在这里插入图片描述

如上图所示: memory在scan chain中 会看做blackbox存在于电路中;通过添加bypass逻辑的方式实现周边逻辑的测试;

  1. Asynchronous bypass
    在这里插入图片描述

上图通过 简单的增加互联线和 MUX的额方式,将black绕开,将前后逻辑连入扫描链中,添加逻辑较少 但是前后逻辑跨度大 可能会造成时序的上的影响;影响测试电路的主频;
2. synchronous bypass
通过在中间增加scan-used 寄存器的方式,做接力;减少对时序的影响;这种方式就是资源消耗比较大;
3. observation cells
为RAM的控制信号 WE RE 那些单向输入的,添加观测用的scan cell(observation cell);
在这里插入图片描述

mem_bypass 还有这个 observation cells 都是在Tessent MemoryBIST 的时候插入的(虚线蓝框 memory interface 的部分)

At-speed memory在速测试存在的问题

在速测试首先他的sequential depth 是大于1的,所以memory作为黑盒影响的并不单单是下一级的寄存器,根据时序深度会影响到path中的好几级;
在这里插入图片描述

即使做了memory bypass,测试pattern只是走的test path;上图所示的fault location也是测不到的,只是后续电路可以测到
在这里插入图片描述

解决办法就是将memory的ATPG 也读进来;

利用RAMs 进行结构性测试

在ATPG阶段利用RAMs的目的是允许已知值(可控的值)通过RAMs传递下去;减少X态的生成和传播;
RAM被视为一个临时的数据存放地;在一个pattern的开头会被初始化为X;??在load/unload 阶段也需要一直保持这种状态;
这种multiple load pattern可以测到的fault point包括 RAM的ports, data ports的detect 和 clock sequential 类似;而address port需要更复杂的pattern;
不能覆盖 memory 内部的 cell arry 需要MBIST方式进行测试;

multiple load pattern;

在此之前 需要对RAM 进行设置;主要是需要对RE WE等RAM的控制信号进行控制; 是有两种方式:

  1. 使用 scan_en 做gating 的方式去控制 RAM的RE WE;是常用的方式;
  2. 是将RAM clk和 scan clk独立开来;RAM clock 可以独立保持自己的状态,在pulse的时候 可以将RAMclk关闭;使它不会跳转下一态;
    在这里插入图片描述
#可以手动 自动指定信号的offstate
#manually
add_read_controls <offstate> <control_name>
add_write_control offstate> <control_name>
#Automotive
analyze_control_signals -auto_fix

multi load pattern的含义就是工具允许 Scan chain在一个pattern上load 多次(对RAM data port address port进行配置); 被用在一个设计需要在 scan load 阶段保持某个状态的时候;
Multi-load pattern分下面几个阶段:

  1. load_scan chain
  2. Force PI
  3. Pulse sequential read/write
  4. 根据需要repeat steps 1-3 or 2-3
  5. apply capture cycle
  6. unload scan chain
    在这里插入图片描述
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旺旺脆兵兵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值