介绍几种存储器测试算法,并讨论这几种算法的用途。
数据测试
下面是数据测试的伪代码
for(memory range under test)
fill the memory with a value;
for(memory range under test)
read back the memory and compare the
readback value to the written value
通常,这个测试会被执行几次,每次填充的值不一样。常用的填充值包括
0x55555555,
0xAAAAAAAA, 0x33333333, 0xCCCCCCCC,
0x0F0F0F0F , 0xF0F0F0F0, 0x00FF00FF ,
0xFF00FF00FF00, 0xFFFFFFFF , 0。
这个测试可以用来检测数据比特粘连(bit -stuck)问题,例如,如果,
written value = 0, readback value = 0x8,
表示bit 3 粘连到1.
如果
written value = 0xFFFFFFFF , readback value= 0xFFFFFFFE,
表示bit 0 粘连到0.
如果能正确的写入并读出0x55555555(或0xAAAAAAAA),说明相邻的两个比特没有粘连;如果能正确写入并读出0x33333333(或xCCCCCCCC),说明相邻的4 个比特没有粘连;如果能正确写入并读出0x0F0F0F0F(或0xF0F0F0F0),说明相邻的8 个比特没有粘连…
这个算法既可以用来测试数据总线连接,也可以用于测试存储器单元。当用于测试存储器单元时则每一个存储单元都需要写读所有的值,这将是比较耗时的测试;而用于测试数据总线连接时,只需要把所有的值都写读一遍就可以了(地址不限)。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
从存储器测试结果的初步分析中,如果我们发现比特粘连或干扰,还需要进一步深入分析原因。通常原因可能来自于三方面:
1.对于外接存储器,PCB 出问题的可能性比较大。最常见的包括焊接问题或设计问题。例如,某个比特被短接到电源或地。通常我们可以用万用表测量信号线之间或信号线和电源或地之间的阻抗来定位这种问题。串扰问题的定位则比较复杂,可能需要用示波器来测试所有相关的信号来确定串扰源。
2.存储单元失效。如果是外接存储器,我们可以用示波器或逻辑分析仪在总线上监测写入和读出的数据,如果总线上监测到的写数据是对的,而读出的数据是错的,则往往是存储单元失效。
3.存储控制器失效。如果我们排除了以上问题而怀疑存储控制器时,可以把好的板子和坏的板子上的控制器互换,如果问题跟着控制器走,则往往说明是控制器失效。
一周热门 更多>