教你如何测试主流DS P存储器

来源:本站
导读:目前正在解读《教你如何测试主流DS P存储器》的相关信息,《教你如何测试主流DS P存储器》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《教你如何测试主流DS P存储器》的详细说明。
简介: 存储器相关的问题是DSP 应用中非常普遍的问题。本文介绍KeyStone I 系列DSP 上一些存储器测试的方法。

存储器相关的问题是DSP 应用中非常普遍的问题。本文介绍KeyStone I 系列DSP 上一些存储器测试的方法。

对不同的DSP,存储器的大小可能不同,DSP 核和EDMA 传输控制器的个数也可能不同。表1比较了KeyStone I 系列中常用的3颗DSP。

本文介绍几种存储器测试算法,并讨论这几种算法的用途。

数据测试

下面是数据测试的伪代码:

for(memory range under test)

fill the memory with a value;

for(memory range under test)

readbackthememoryandcomparethe

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(或0xCCCCCCCC),说明相邻的4 个比特没有粘连;如果能正确写入并读出

0x0F0F0F0F(或0xF0F0F0F0),说明相邻的8 个比特没有粘连…

这个算法既可以用来测试数据总线连接,也可以用于测试存储器单元。当用于测试存储器单元时则每一

个存储单元都需要写读所有的值,这将是比较耗时的测试;而用于测试数据总线连接时,只需要把所有的值都

写读一遍就可以了(地址不限)。

地址测试

地址测试的伪代码如下:

for(memory range under test)

fill each memory unit with its address value;

for(memory range under test)

read back the memory and compare the readback value to the written value

这个测试可以用来检测地址比特粘连(bit -stuck)问题。例如,如果

written value = 0 at address 0

written value = 1 at address 1

written value = 2 at address 2

written value = 3 at address 3

……

readback value = 2 at address 0

readback value = 3 at address 1

readback value = 2 at address 2

readback value = 3 at address 3

……

则说明地址线的比特1 粘连,因为地址0,2 中的数据相同,地址1,3 中的数据相同。

这个测试的主要目的是测试地址线和存储器中的地址译码单元,但它实际上对所有存储单元都做了数据

写读,所以在一定程度上也测试了数据总线和存储单元。如果由于测试时间的限制,只允许对整个存储器空间

进行一遍写读测试时,本节介绍的地址测试是首选。

走比特测试

走比特测试包括走“1”和走“0”测试。走比特测试即可测试数据,也可以测试地址。

走“1”指测试的数据或地址中只有一个比特为“1”,而所有其它比特为“0”,而且连续的访问中每一次“1”的位置都会移动一个比特,看起来好像是“1”在总线上走。而走“0”测试只是把测试的数据反了一下,看起来就像是一个“0”在总线上走。

数据走比特

数据走比特测试的伪代码如下:

bit_mask_value = 1;

for(number of valid data bits)

{

write bit_mask_value to memory;

readback the data and compared to written value;

inversed_bit_mask_value = bit inverse of bit_mask_value;

write inversed_bit_mask_value to memory;

readback the data and compared to written value;

bit_mask_value = bit_mask_value<<1; //bit walking

}

这个测试可以检测数据比特粘连(bit -stuck)问题,更重要的是,它还可以检测比特间串扰。如果比特之间存在串扰,而这个测试让一个比特与所有其它比特都是相反的,那么其它比特对它的干扰会被最大化,从而让问题暴露出来。

例如,如果

written value = 0x00000010, readback value = 0

written value = 0xFFFFFFEF , readback value = 0xFFFFFFFF

这往往说明比特4 被其它比特干扰。

这个算法既可以用来测试数据总线连接,也可以用于测试存储器单元。当用于测试存储器单元时则每一个存储单元都需要走“1”走“0”,这将是最耗时的测试;而用于测试数据总线连接时,只需要走一遍“1”,再走一遍“0”?就可以了(地址不限)。

提醒:《教你如何测试主流DS P存储器》最后刷新时间 2024-03-14 01:11:37,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《教你如何测试主流DS P存储器》该内容的真实性请自行鉴别。