一种时序参数扫描的方法及装置与流程

文档序号:13389261阅读:286来源:国知局
一种时序参数扫描的方法及装置与流程

本发明实施例涉及通信的技术领域,尤其涉及一种时序参数扫描的方法及装置。



背景技术:

传统march_c算法在存储器测试中应用非常广泛,也有相对比较好的测试效果。传统march_c算法对跳变故障、固定故障以及大部分的耦合故障的检测是非常有效的。但在检测存储器单元耦合故障和地址开放故障或寻址故障时有一些不足之处,例如单元耦合故障:对于两个小单元粘连,同时并同方向跳变检测不出来,不能存储两个小单元相反的值,这时要存储的值就得不到正确的存储;例如地址开放故障:相邻两个地址位会被同时选择,每次进行写操作都是写相同的地址,无法正确检测此类故障。

采用传统的嵌入式cpu扫描方法检测嵌入式系统中同步动态随机存储器(synchronousdynamicrandomaccessmemory,sdram)的最优时序参数,嵌入式cpu进行sdram读写时都是single的操作,理论上single操作只维持1个时钟周期。但是也存在特殊情况,如果主芯片数据信号默认是输入,即没有写操作的时候一直是输入状态,sdram芯片的数据信号在这种情况下则只驱动一个周期(实际上小于一个周期),然后就变为高阻,导致这个信号线在操作完成之后就没有了任何驱动。于是,它就保持原来的值,维持多个时钟周期(超过协议要求),直到下一次被驱动,实际上可以看到电压的缓慢漂移,或可能已缓慢漂移到其他电压值,这样就导致了读操作时有时无法采样到正确的数据,所以无法准确的找到合适的时序参数。



技术实现要素:

本发明实施例的目的在于提出一种时序参数扫描的方法及装置,旨在解决如何传统的嵌入式cpu扫描方法以及传统march_c算法的缺陷。

为达此目的,本发明实施例采用以下技术方案:

第一方面,一种时序参数扫描的方法,所述方法包括:

初始化同步动态随机存储器,配置多组时序参数,遍历每组时序参数;

执行直接存储器存取控制器写同步动态随机存储器操作,并对遍历的不同时序参数进行直接存储器存取控制器读检测,获取正确读写同步动态随机存储器数据所对应的时序参数;

通过数据地址线检测和最小时序参数延时的原则从获取的时序参数中选取一组最优的时序参数。

优选地,所述数据线检测包括:

获取相反的地址a和地址b,向所述地址a和所述地址b依次写入全0和全1,再依次读出,比较结果的正确;

执行所述数据线检测的走零法和所述数据线检测的走一法。

优选地,所述执行所述数据线检测的走零法,包括:

向所述地址b写入预设第一数值全1;

将数据线的最低位设为0,其余为1,并向所述地址a写入所述预设第一数值;

按顺序依次读出所述地址b和所述地址a内的数据值,验证数据的正确性;

若数据错误,则最低位数据线可能存在固定为1错误;

若数据正确,将为0数据线左移一位,低位补1,向所述地址a内写入所述预设第一数值,并重复执行按顺序依次读出所述地址b和所述地址a内的数据值,验证数据的正确性,直到0左移到数据线最高位。

优选地,所述执行所述数据线检测的走一法,包括:

向所述地址b写入预设第二数值全0;

将数据线的最低位设为1,其余为0,并向所述地址a内写入所述预设第二数值;

按顺序依次读出所述地址b和所述地址a内的数据值,验证数据的正确性;

若数据错误,则最低位数据线可能存在固定为0错误;

若数据正确,将为1地址线左移一位,低位补0,向所述地址a内写入所述预设第二数值,并重复执行按顺序依次读出所述地址b和所述地址a内的数据值,验证数据的正确性,直到1左移到地址线最高位。

优选地,所述地址线检测包括:

向相反的地址a和地址b分别写入“0”、“1”交替的数据,依次读出两个地址的数据,再比较读出数据的正确性;

若有错误,则错误位对应的数据线有可能发生数据线粘连;

若正确,执行所述地址线检测的走零法和所述地址线检测的走一法。

优选地,所述执行所述地址线检测的走零法,包括:

将地址线的最低位设为0,其余为1,向所述地址写入预设第三数值;

将地址线为0的最低位地址线左移一位,向所述地址写入预设第三数值;

读上一次写入所述预设第三数值的地址内的数据,验证数据的正确性;

若数据错误,则相应位的地址线可能存在地址线固定为1错误;

若数据正确,继续将为0的地址线左移一位,低位补1,向对应地址写入预设第三数值,并读出上一次写入所述预设第三数值的地址内的数据,判断数据的正确性,然后继续将为0的地址线左移一位,低位补1,向对应地址内写入所述预设第三数值,并读出上一次写入所述预设第三数值的地址内的数据,判断数据的正确性,并重复,直到0左移到地址线最高位。

优选地,所述执行所述地址线检测的走一法,包括:

将地址线的最低位设为1,其余为0,向所述地址写入预设第三数值;

将地址线为1的最低位地址线左移一位,其余为0,向所述地址写入预设第三数值;

读上一次写入所述预设第三数值的地址内的数据,并验证数据的正确性;

若数据错误,则对应位地址线可能存在地址线固定为0错误;

若数据正确,继续将为1的地址线左移一位,低位补0,向对应地址写入预设第三数值,并读出上一次写入所述预设第三数值的地址内的数据,判断数据的正确性,然后继续将为1的地址线左移一位,低位补0,向对应地址写入所述预设第三数值,并读出上一次写入所述预设第三数值的地址内的数据,判断数据的正确性,并重复,直到1左移到地址线最高位。

第二方面,一种时序参数扫描的装置,所述装置包括:

配置模块,用于初始化同步动态随机存储器,配置多组时序参数,遍历每组时序参数;

获取模块,用于执行直接存储器存取控制器写同步动态随机存储器操作,并对遍历的不同时序参数进行直接存储器存取控制器读检测,获取正确读同步动态随机存储器数据对应的时序参数;

选取模块,用于通过数据线地址线检测和最小时序参数延时的原则从获取的时序参数中选取一组最优的时序参数。

优选地,所述选取模块,还用于:

获取相反的地址a和地址b,向所述地址a和所述地址b依次写入全0和全1,再依次读出,比较结果的正确;

执行所述数据线检测的走零法和所述数据线检测的走一法。

优选地,所述选取模块,还用于:

向所述地址b写入预设第一数值全1;

将数据线的最低位设为0,其余为1,并向所述地址a写入所述预设第一数值;

按顺序依次读出所述地址b和所述地址a内的数据值,验证数据的正确性;

若数据错误,则最低位数据线可能存在固定为1错误;

若数据正确,将为0数据线左移一位,低位补1,向所述地址a内写入所述预设第一数值,并重复执行按顺序依次读出所述地址b和所述地址a内的数据值,验证数据的正确性,直到0左移到数据线最高位。

优选地,所述选取模块,还用于:

向所述地址b写入预设第二数值全0;

将数据线的最低位设为1,其余为0,并向所述地址a内写入所述预设第二数值;

按顺序依次读出所述地址b和所述地址a内的数据值,验证数据的正确性;

若数据错误,则最低位数据线可能存在固定为0错误;

若数据正确,将为1地址线左移一位,低位补0,向所述地址a内写入所述预设第二数值,并重复执行按顺序依次读出所述地址b和所述地址a内的数据值,验证数据的正确性,直到1左移到地址线最高位。

优选地,所述选取模块,还用于:

向相反的地址a和地址b分别写入“0”、“1”交替的数据,依次读出两个地址的数据,再比较读出数据的正确性;

若有错误,则错误位对应的数据线有可能发生数据线粘连;

若正确,执行所述地址线检测的走零法和所述地址线检测的走一法。

优选地,所述选取模块,还用于:

将地址线的最低位设为0,其余为1,向所述地址写入预设第三数值;

将地址线为0的最低位地址线左移一位,向所述地址写入预设第三数值;

读上一次写入所述预设第三数值的地址内的数据,验证数据的正确性;

若数据错误,则相应位的地址线可能存在地址线固定为1错误;

若数据正确,继续将为0的地址线左移一位,低位补1,向对应地址写入预设第三数值,并读出上一次写入所述预设第三数值的地址内的数据,判断数据的正确性,然后继续将为0的地址线左移一位,低位补1,向对应地址内写入所述预设第三数值,并读出上一次写入所述预设第三数值的地址内的数据,判断数据的正确性,并重复,直到0左移到地址线最高位。

优选地,所述选取模块,还用于:

将地址线的最低位设为1,其余为0,向所述地址写入预设第三数值;

将地址线为1的最低位地址线左移一位,其余为0,向所述地址写入预设第三数值;

读上一次写入所述预设第三数值的地址内的数据,并验证数据的正确性;

若数据错误,则对应位地址线可能存在地址线固定为0错误;

若数据正确,继续将为1的地址线左移一位,低位补0,向对应地址写入预设第三数值,并读出上一次写入所述预设第三数值的地址内的数据,判断数据的正确性,然后继续将为1的地址线左移一位,低位补0,向对应地址写入所述预设第三数值,并读出上一次写入所述预设第三数值的地址内的数据,判断数据的正确性,并重复,直到1左移到地址线最高位。

本发明实施例提供一种时序参数扫描的方法及装置,初始化同步动态随机存储器,配置多组时序参数,遍历每组时序参数;执行直接存储器存取控制器写同步动态随机存储器操作,并对遍历的不同时序参数进行直接存储器存取控制器读检测,获取正确读同步动态随机存储器数据对应的时序参数;通过数据线地址线检测和最小时序参数延时的原则从获取的时序参数中选取一组最优的时序参数,同步动态随机存储器时序参数的扫描采用直接存储器存取控制器的扫描算法,避免single读操作采样到错误数据,能够直接准确快速地找到同步动态随机存储器时序的最优参数,使时序参数更稳定可靠;改进了传统的march_c算法能够更有效地检测同步动态随机存储器存储器的数据线和地址线的错误,使故障检测范围更广。

附图说明

图1是本发明实施例提供的一种时序参数扫描的方法的流程示意图;

图2是本发明实施例提供的一种时序参数扫描的装置的功能模块示意图。

具体实施方式

下面结合附图和实施例对本发明实施例作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明实施例,而非对本发明实施例的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明实施例相关的部分而非全部结构。

参考图1,图1是本发明实施例提供的一种时序参数扫描的方法的流程示意图。

如图1所示,所述时序参数扫描的方法包括:

步骤101,初始化同步动态随机存储器,配置多组时序参数,遍历每组时序参数;

步骤102,执行直接存储器存取控制器(directmemoryaccesscontroller,dmac)写同步动态随机存储器操作,并对遍历的不同时序参数进行dmac读检测,获取正确读写同步动态随机存储器数据所对应的时序参数;

步骤103,通过数据线地址线检测和最小时序参数延时的原则从获取的时序参数中选取一组最优的时序参数。

具体的,1、初始化同步动态随机存储器,配置各种时序参数,准备时序参数遍历。

2、dmac写同步动态随机存储器操作(dmac写操作可以对连续存储空间操作,比如4kb空间)。

3、对于不同的遍历的时序参数,进行读检测,分别检测读同步动态随机存储器的数据的正确性。dmac读同步动态随机存储器(比如4kb空间)。检测出读写同步动态随机存储器正确的时序参数。

4、循环执行1-3步,可以得到多组正确的时序参数,从其中选取一组最优的时序参数,选择的原则是保证稳定的读写正确性的前提下时序参数延时越小的越好。

其中,所述数据线检测包括:

获取相反的地址a和地址b,向所述地址a和所述地址b依次写入全0和全1,再依次读出,比较结果的正确;

执行所述数据线检测的走零法和所述数据线检测的走一法。

具体的,任意两个地址,地址线最好相反,两个地址线(bit11-bit25)相反的地址为:如a和b,地址相反的目的是为了防止地址线的错误引起数据线检测错误。向这两个地址依次写入全0和全1,然后依次读出,比较结果的正确性。读回的数据不正确,则错误位有可能对应数据线固定0/1错误或地址线悬空。

优选地,所述执行所述数据线检测的走零法,包括:

向所述地址b写入预设第一数值全1;

将数据线的最低位设为0,其余为1,并向所述地址a写入所述预设第一数值;

按顺序依次读出所述地址b和所述地址a内的数据值,验证数据的正确性;

若数据错误,则最低位数据线可能存在固定为1错误;

若数据正确,将为0数据线左移一位,低位补1,向所述地址a内写入所述预设第一数值,并重复执行按顺序依次读出所述地址b和所述地址a内的数据值,验证数据的正确性,直到0左移到数据线最高位。

具体的,a)、向b地址写入0xffffffff;

b)、将数据线的最低位设为0,其余为1,并向a地址写入该值,即0xfffffffe;

c)、按顺序依次读出b地址和a地址内的数据值,验证数据的正确性;

d)、如果数据错误,则最低位数据线可能存在固定为1错误,如果数据正确,将为0数据线左移一位,低位补1,向a地址内写入此数据值,并重复上一步c,直到0左移到地址线最高位(bit31)。

优选地,所述执行所述数据线检测的走一法,包括:

向所述地址b写入预设第二数值全0;

将数据线的最低位设为1,其余为0,并向所述地址a内写入所述预设第二数值;

按顺序依次读出所述地址b和所述地址a内的数据值,验证数据的正确性;

若数据错误,则最低位数据线可能存在固定为0错误;

若数据正确,将为1地址线左移一位,低位补0,向所述地址a内写入所述预设第二数值,并重复执行按顺序依次读出所述地址b和所述地址a内的数据值,验证数据的正确性,直到1左移到地址线最高位。

具体的,a)、向b地址写入0x00000000;

b)、将数据线的最低位设为1,其余为0,并向a地址内写入该值,即0x00000001;

c)、按顺序依次读出b地址和a地址内的数据值,验证数据的正确性;

d)、如果数据错误,则最低位数据线可能存在固定为0错误,如果数据正确,将为1地址线左移一位,低位补0,向a地址内写入此数据值,并重复上一步c,直到1左移到地址线最高位(bit31)。

其中,所述地址线检测包括:

向相反的地址a和地址b分别写入“0”、“1”交替的数据,依次读出两个地址的数据,再比较读出数据的正确性;

若有错误,则错误位对应的数据线有可能发生数据线粘连;

若正确,执行所述地址线检测的走零法和所述地址线检测的走一法。

具体的,向两个地址线(bit11-bit25)相反的地址a和b分别写入“0”“1”交替的数据比如“0x55555555”和“0xaaaaaaaa”,然后依次读出两地址的数据,比较读出数据结果的正确性。如果有错,则错误位对应的数据线有可能发生数据线粘连。

优选地,所述执行所述地址线检测的走零法,包括:

将地址线的最低位设为0,其余为1,向所述地址写入预设第三数值;

将地址线为0的最低位地址线左移一位,向所述地址写入预设第三数值;

读上一次写入所述预设第三数值的地址内的数据,验证数据的正确性;

若数据错误,则相应位的地址线可能存在地址线固定为1错误;

若数据正确,继续将为0的地址线左移一位,低位补1,向对应地址写入预设第三数值,并读出上一次写入所述预设第三数值的地址内的数据,判断数据的正确性,然后继续将为0的地址线左移一位,低位补1,向对应地址内写入所述预设第三数值,并读出上一次写入所述预设第三数值的地址内的数据,判断数据的正确性,并重复,直到0左移到地址线最高位。

具体的,a)、将地址线的最低位设为0,其余为1,向所述地址写入预设第三数值,比如向“0x03fff000”地址(最低位地址线bit11为0)写入“0”“1”交替的数据0x5a,或者可写入其地址值本身;

b)、将地址线为0的最低位地址线左移一位,向所述地址写入预设第三数值(地址线bit12为0),其余为1,即向0x03ffe800地址内写入“0”“1”交替的数据0xa5,或者可写入其地址值本身;

c)、读地址0x03fff000,验证数据的正确;

d)、如果数据错误,则相应位地址线可能存在地址线固定为1错误,如果数据正确,继续将为0的地址线左移一位,低位补1,向该地址内写入0x5a,并读出上一次写入0xa5的地址内的数据,判断数据的正确性,然后继续将为0的地址线左移一位,低位补1,向该地址内写入0xa5,并读出上一次写入0x5a的地址内的数据,判断数据的正确性,重复d,直到0左移到地址线最高位(bit25)。

优选地,所述执行所述地址线检测的走一法,包括:

将地址线的最低位设为1,其余为0,向所述地址写入预设第三数值;

将地址线为1的最低位地址线左移一位,其余为0,向所述地址写入预设第三数值;

读上一次写入所述预设第三数值的地址内的数据,并验证数据的正确性;

若数据错误,则对应位地址线可能存在地址线固定为0错误;

若数据正确,继续将为1的地址线左移一位,低位补0,向对应地址写入预设第三数值,并读出上一次写入所述预设第三数值的地址内的数据,判断数据的正确性,然后继续将为1的地址线左移一位,低位补0,向对应地址写入所述预设第三数值,并读出上一次写入所述预设第三数值的地址内的数据,判断数据的正确性,并重复,直到1左移到地址线最高位。

具体的,a)、将地址线的最低位设为1,其余为0,向所述地址写入预设第三数值,比如向“0x00000800”地址(最低位地址线bit11为1)写入“0”“1”交替的数据0x5a,或者可写入其地址值本身;

b)、将地址线为1最低位地址线左移一位(地址线bit12为1),其余为0,即向0x00001000地址内写入“0”“1”交替的数据0xa5,或者可写入其地址值本身;

c)、读地址0x00000800,验证数据的正确性;

d)、如果数据错误,则相应位地址线可能存在地址线固定为0错误,如果数据正确,继续将为1的地址线左移一位,低位补0,向该地址内写入0x5a,并读出上一次写入0xa5的地址内的数据,判断数据的正确性,然后继续将为1的地址线左移一位,低位补0,向该地址内写入0xa5,并读出上一次写入0x5a的地址内的数据,判断数据的正确性,重复d,直到1左移到地址线最高位(bit25)。

如果某位地址线同时存在固定为0和固定为1错误,那么有可能为悬空。

本发明实施例提供一种时序参数扫描的方法,初始化同步动态随机存储器,配置多组时序参数,遍历每组时序参数;执行dmac写同步动态随机存储器操作,并对遍历的不同时序参数进行dmac读检测,获取正确读同步动态随机存储器数据对应的时序参数;通过数据线地址线检测和最小时序参数延时的原则从获取的时序参数中选取一组最优的时序参数,同步动态随机存储器时序参数的扫描采用dmac(直接存储器存取控制器)的扫描算法,避免single读操作采样到错误数据,能够直接准确快速地找到同步动态随机存储器时序的最优参数,使时序参数更稳定可靠;改进了传统的march_c算法能够更有效地检测同步动态随机存储器存储器的数据线和地址线的错误,使故障检测范围更广。

参考图2,图2是本发明实施例提供的一种时序参数扫描的装置的功能模块示意图。

如图2所示,所述时序参数扫描的装置包括:

配置模块201,用于初始化同步动态随机存储器,配置多组时序参数,遍历每组时序参数;

获取模块202,用于执行dmac写同步动态随机存储器操作,并对遍历的不同时序参数进行dmac读检测,获取正确读同步动态随机存储器数据对应的时序参数;

选取模块203,用于通过数据线地址线检测和最小时序参数延时的原则从获取的时序参数中选取一组最优的时序参数。

优选地,所述选取模块203,还用于:

获取相反的地址a和地址b,向所述地址a和所述地址b依次写入全0和全1,再依次读出,比较结果的正确;

执行所述数据线检测的走零法和所述数据线检测的走一法。

优选地,所述选取模块203,还用于:

向所述地址b写入预设第一数值全1;

将数据线的最低位设为0,其余为1,并向所述地址a写入所述预设第一数值;

按顺序依次读出所述地址b和所述地址a内的数据值,验证数据的正确性;

若数据错误,则最低位数据线可能存在固定为1错误;

若数据正确,将为0数据线左移一位,低位补1,向所述地址a内写入所述预设第一数值,并重复执行按顺序依次读出所述地址b和所述地址a内的数据值,验证数据的正确性,直到0左移到数据线最高位。

优选地,所述选取模块203,还用于:

向所述地址b写入预设第二数值全0;

将数据线的最低位设为1,其余为0,并向所述地址a内写入所述预设第二数值;

按顺序依次读出所述地址b和所述地址a内的数据值,验证数据的正确性;

若数据错误,则最低位数据线可能存在固定为0错误;

若数据正确,将为1地址线左移一位,低位补0,向所述地址a内写入所述预设第二数值,并重复执行按顺序依次读出所述地址b和所述地址a内的数据值,验证数据的正确性,直到1左移到地址线最高位。

优选地,所述选取模块203,还用于:

向相反的地址a和地址b分别写入“0”、“1”交替的数据,依次读出两个地址的数据,再比较读出数据的正确性;

若有错误,则错误位对应的数据线有可能发生数据线粘连;

若正确,执行所述地址线检测的走零法和所述地址线检测的走一法。

优选地,所述选取模块203,还用于:

将地址线的最低位设为0,其余为1,向所述地址写入预设第三数值;

将地址线为0的最低位地址线左移一位,向所述地址写入预设第三数值;

读上一次写入所述预设第三数值的地址内的数据,验证数据的正确性;

若数据错误,则相应位的地址线可能存在地址线固定为1错误;

若数据正确,继续将为0的地址线左移一位,低位补1,向对应地址写入预设第三数值,并读出上一次写入所述预设第三数值的地址内的数据,判断数据的正确性,然后继续将为0的地址线左移一位,低位补1,向对应地址内写入所述预设第三数值,并读出上一次写入所述预设第三数值的地址内的数据,判断数据的正确性,并重复,直到0左移到地址线最高位。

优选地,所述选取模块203,还用于:

将地址线的最低位设为1,其余为0,向所述地址写入预设第三数值;

将地址线为1的最低位地址线左移一位,其余为0,向所述地址写入预设第三数值;

读上一次写入所述预设第三数值的地址内的数据,并验证数据的正确性;

若数据错误,则对应位地址线可能存在地址线固定为0错误;

若数据正确,继续将为1的地址线左移一位,低位补0,向对应地址写入预设第三数值,并读出上一次写入所述预设第三数值的地址内的数据,判断数据的正确性,然后继续将为1的地址线左移一位,低位补0,向对应地址写入所述预设第三数值,并读出上一次写入所述预设第三数值的地址内的数据,判断数据的正确性,并重复,直到1左移到地址线最高位;

若某位地址线同时存在固定为0和固定为1错误,则可能为悬空。

本发明实施例提供一种时序参数扫描的装置,初始化同步动态随机存储器,配置多组时序参数,遍历每组时序参数;执行dmac写同步动态随机存储器操作,并对遍历的不同时序参数进行dmac读检测,获取正确读同步动态随机存储器数据对应的时序参数;通过数据线地址线检测和最小时序参数延时的原则从获取的时序参数中选取一组最优的时序参数,同步动态随机存储器时序参数的扫描采用dmac(直接存储器存取控制器)的扫描算法,避免single读操作采样到错误数据,能够直接准确快速地找到同步动态随机存储器时序的最优参数,使时序参数更稳定可靠;改进了传统的march_c算法能够更有效地检测同步动态随机存储器存储器的数据线和地址线的错误,使故障检测范围更广。

以上结合具体实施例描述了本发明实施例的技术原理。这些描述只是为了解释本发明实施例的原理,而不能以任何方式解释为对本发明实施例保护范围的限制。基于此处的解释,本领域的技术人员不需要付出创造性的劳动即可联想到本发明实施例的其它具体实施方式,这些方式都将落入本发明实施例的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1