摘要
存储器相关的问题是DSP 应用中非常普遍的问题。本文介绍KeyStone I 系列DSP 上一些存储器测试的方法。
1 KeyStone DSP 存储器系统简介
KeyStone DSP 存储器架构如图1 所示。
图1 KeyStone DSP 存储器架构
对不同的DSP,存储器的大小可能不同,DSP 核和EDMA 传输控制器的个数也可能不同。表1比较了KeyStone I 系列中常用的3颗DSP。
表1 KeyStone I 存储器系统比较
2 存储器测试算法
本文介绍几种存储器测试算法,并讨论这几种算法的用途。
2.1 数据测试
下面是数据测试的伪代码:
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(或0xCCCCCCCC),说明相邻的4 个比特没有粘连;如果能正确写入并读出0x0F0F0F0F(或0xF0F0F0F0),说明相邻的8 个比特没有粘连…
这个算法既可以用来测试数据总线连接,也可以用于测试存储器单元。当用于测试存储器单元时则每一个存储单元都需要写读所有的值,这将是比较耗时的测试;而用于测试数据总线连接时,只需要把所有的值都写读一遍就可以了(地址不限)。
2.2 地址测试
地址测试的伪代码如下:
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 中的数据相同。
这个测试的主要目的是测试地址线和存储器中的地址译码单元,但它实际上对所有存储单元都做了数据写读,所以在一定程度上也测试了数据总线和存储单元。如果由于测试时间的限制,只允许对整个存储器空间进行一遍写读测试时,本节介绍的地址测试是首选。
本文选自电子发烧友网6月《智能工业特刊》Change The World栏目,转载请注明出处!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)