本文主要是介绍March C算法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
(一) 存储器故障模型
常见的存储器(比如SRAM)故障模型包括:
- 固定型故障(也称为粘着故障,Stuck-At Faults,SAF):存储单元中的值固定为0(简记为SA0,Stuck-At-0)或者1(简记为SA1,Stuck-At-1),无法发生改变。固定型故障可以通过对待测单元写入0再读出0,然后写入1再读出1来进行检测。
- 跳变故障(也称为转换故障,Transition Faults,TF):存储单元中的值无法从0跳变到1(简记为TF(0->1)),或者从1跳变到0(简记为TF(1->0))。跳变故障可以通过写入1到0的跳变再读出0,然后写入0到1的跳变再读出1来进行检测。
- 耦合故障(Coupling Faults,CF):一个存储单元的值发生改变,导致另一个存储单元的值发生改变,具体又可以分为以下几种类型:1)反相耦合故障(CFin:inversion):耦合单元做与存储单元相反的状态变化;2)等幂耦合故障(CFid:idempotent):某个存储单元的值发生跳变时,耦合单元的值变为特定值(0或者1);3)状态耦合故障(CFst:state):某个存储单元的某个特定状态引起耦合单元跳变为某一状态(0或者1);4)桥接故障(BF:Bridging Faults):这类故障主要是由两个单元或多个单元之间的短路或者桥接引起的,通常由一个特定的值激发出故障行为。桥接耦合故障又分为“与桥连故障(ABF)”和“或桥连故障(OBF)”,其行为分别类似于“与逻辑”和“或逻辑”;5)动态耦合故障(Dynamic Coupling Fault,CFdyn)。耦合故障可以通过先升序对所有存储单元进行写读操作,然后再降序对所有存储单元进行写读操作的方法进行故障检测
- 相邻图形敏感故障(Neighborhood Pattern Sensitive Faults,NPSF):一个存储单元的内容或者改变这个单元内容的能力受另一个存储单元内容的影响。
- 地址译码故障(Address Decoder Faults,ADF或AF):这种故障主要发生在地址译码逻辑中,地址与存储单元是一一对应的,一旦地址译码逻辑发生故障,将会出现以下四种故障类型中的一种或多种:1)对于给定的地址,不存在相对应的存储单元;2)对于一个存储单元,没有相对应的物理地址;3)对于给定的地址,可以访问多个固定的存储单元;4)对于一个存储单元,可以通过多个地址访问。
需要指出的是,在很多文献中,经常会看到DC Faults,查了很多资料,都没查到这里的DC是什么意思,一些资料上只说是直接故障或者短路故障,个人揣测这里的DC应该是Direct Coupling的简写,即直接耦合故障。
(二) March C算法
March C算法是目前应用最为广泛的MBIST(Memory Built-In-Self-Test,存储器内建自测试)算法。论文《嵌入式存储器内建自测试方法》对March C算法的相关描述如下。
此外,很多芯片厂商都将March C算法做成了库,比如ST、Microchip、TI、NXP以及Infineon等。
这篇关于March C算法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!