1. 算法 测试算法是一种March算法称为”March LR”.这个算法能侦测一个宽的存贮瑕疵。当保持一个线性运行时间时。这个算法是: 一、把整个存贮器写0,以任何顺序。 二、一个比特接着一个比特递减顺序读0写1。 三、比特接比特,以递减顺序读1写0,读0,写1。 四、比特接比特,以递减顺序读1写0。 五、比特接比特,以递减顺序读0写1读1写0。 六、从整个芯片读0, 所实现的特定执行的运行时O(14n),n是RAM的比特。所侦测的失败是: 地址记录失败 固定型故障 转换故障 偶合故障 链接偶合故障 Stuck-open故障 2.开始MBIST 测试一个存贮器,你需要写起始地址到ADDR.ADDR比特组,并且把存贮器的长度写入长度寄存器。 最佳测试覆盖率,整个物理内存块应该被测试。可以测试只有一个子集的内存,但测试覆盖率将略低。 激活测试是向CTRL.MBIST写1,一个正在运行MBIST操作能被通过在CTRL.SWRST里写1来停止。 3.解释结果 测试者需要监视STATUSA寄存器。当操作停止时,STATuSA.DONE被置位。 有二种不同的模式: ADDR.AMOD=0: exit-on-error (default) 在这种模式下,算法终止在一个错误被测到或成功运行完。在两种原因下,STATUSA.DONE被置位。如果有错误被告测到,STATUSA.FAIL将被置位。用户可以读DATA和ADDR寄存器来定位错误。 ADDR.AMOD=1: pause-on-error 在这种模式下,MBIST算法被暂停当一个错误发生时,在这种情况下,只有STATUSA.FAIL是断言。 状态机等待用户清除STATUSA.FAIL通过写1到STATUSA.FAIL重新恢复。恢复之前,用户能读取DATA和ADDR寄存器里的锁定的失败。 4.锁定错误 如果测试停止STATUSA.FAIL被设置,一个或者多个比特停止测试。测试停止在第一次侦测出错误时。错误比特的位置能被以下寄存器读出: ADDR:错误比特的字地址 DATA:含有数据指示哪个比特错误,和哪个阶段出现在错误。DATA寄存器包含以下比特组:
|