教大家如何测试DSP主流存储器

2019-07-29 16:32发布

介绍几种存储器测试算法,并讨论这几种算法的用途。
       数据测试
       下面是数据测试的伪代码
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 个比特没有粘连…
       这个算法既可以用来测试数据总线连接,也可以用于测试存储器单元。当用于测试存储器单元时则每一个存储单元都需要写读所有的值,这将是比较耗时的测试;而用于测试数据总线连接时,只需要把所有的值都写读一遍就可以了(地址不限)。

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
拿起书本
2019-07-30 01:43
  浮动总线问题
       如果测试软件写入并很快从相同地址读出一个值的时候,如果数据线上存在电容特性,写操作会给数据线上的电容充电,总线会短暂的保持它的状态。当测试软件读操作时,总线会返回刚写入的值,即使实际上该数据并没有正确地被写入存储单元。这就是浮动总线(floating buses)问题。
       浮动总线可能会“欺骗”简单的测试程序,为了规避浮动总线问题,需要在紧邻的对相同地址的写和读操作之间对其它地址写入一个和原来写的数据相反的数据。例如,
write A to address X;
write inversion of A to address Y;
read value from address X;
这样,浮动总线的问题就可以规避了。

一周热门 更多>