本章描述当嵌入存储器被不同的memory BIST控制器所测试或者被不同的memory BIST controller steps按顺序进行测试时如何进行retention测试.
在跑PSRT(parallel static retention testing)之前,建议先跑BIST in HWDefault 或者 RunTimeProg 模式去保证有足够高的fault覆盖率;PSRT的目标是测试cell retention time(单元的保留时间),对多口存储器的每个RW端口进行测试是没必要的,也是浪费时间的;
多个controller的处理
对多个MBIST controller进行PSRT并行测试的关键在于对控制器进行同步处理.为此,选择适用的测试算法支持下面三个测试 sub-phase(子阶段);
- start_to_pause,在这个子阶段控制器加载background pattern到所有的memory然后停止;简单的SMarch算法其background pattern全为0,其他算法为棋盘向量;
- pause-to-puase,在这个子阶段,控制器读取background pattern加载一个与background pattern相反的向量到所有的memory 然后停住,
- pause-to-end,这个阶段控制器读取相反的向量 然后退出;
测试子阶段的时序
同时只能应用一个sub-phases;PSRT的时序如下:
- 并行使能所有controller,让他们都跑start-to-pause;
- 当所有的控制器完成步骤1,应用第一个静态保持测试;
- 使能所有的memory controller到pause-to-pause阶段;
4.当所有的控制器完成步骤3,应用第二个静态保持测试;
5.并行使能所有的controller让他们都运行pauase-to-end 子阶段;
test sub-phases的pattern-spec例子
使用pattern specification,你可以创建包含适当的sub-phase和retention pause顺序的测试平台;
TestStep (t1) {
MemoryBist { AdvancedOptions { retention_test_phase: start_to_pause; preserve_bist_inputs : on;
}
Controller (A) { }
Controller (B) { }
}
}
ProcedureStep (p1) { wait_time : 10ms; }
TestStep (t2) {
MemoryBist {
AdvancedOptions {
retention_test_phase: pause_to_pause; preserve_bist_inputs : on; }
Controller (A) { }
Controller (B) { }
}
}
ProcedureStep (p2) { wait_time : 10ms; } TestStep (t3) {
MemoryBist {
AdvancedOptions {
retention_test_phase: pause_to_end; } Controller (A) { }
Controller (B) { } }
}
根据controller分组进行测试
PSTR也能按照controller的集合顺序进行.这种方式能够通过限制同一时间运行测试的controller的数量减少 PSTR期间的功耗.在PSTR期间,所有属于同一个controller分组的会并行运行测试;
在同一组中的controller会被并行应用到相同的sub-pause,当最后一个controller分组完成应用,下一个PSRT sub-pasue才会执行.