CN101894591B - 一种基于lfsr的外部存储接口的随机测试装置 - Google Patents
一种基于lfsr的外部存储接口的随机测试装置 Download PDFInfo
- Publication number
- CN101894591B CN101894591B CN201010238663A CN201010238663A CN101894591B CN 101894591 B CN101894591 B CN 101894591B CN 201010238663 A CN201010238663 A CN 201010238663A CN 201010238663 A CN201010238663 A CN 201010238663A CN 101894591 B CN101894591 B CN 101894591B
- Authority
- CN
- China
- Prior art keywords
- address
- write
- random number
- signal
- maker
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提出一种基于LFSR的外部存储接口的随机测试装置包括:伪随机数生成模块,用于生成伪随机数;伪随机数寄存模块,用于存储伪随机数;测试激励产生及输出模块,用于根据伪随机数,生成随机测试激励信号;测试模块,用于将读数据信号与对外部存储器同一地址写入的数据进行对比,统计失败的总次数。本发明的随机测试装置基于LFSR的外部存储接口的随机测试装置,以LFSR为伪随机数生成器,将其产生的伪随机数转化成符合AHB总线协议的外部存储接口随机测试激励,实现了对外部存储接口的随机测试。
Description
技术领域
本发明涉及随机测试电路设计领域,特别涉及一种基于LFSR的外部存储接口的随机测试装置。
背景技术
近年来,由于计算机的计算复杂度大大增加,其电路验证难度大大提高,验证复杂度和工作量也在整个设计工作量中占有很大比重。目前在SoC(System on Chip,片上系统)开发中,验证已逐渐成为SoC开发中的瓶颈。存储器系统在SoC设计中占有重要地位,存储器性能相对于处理器性能的缓慢增长使得存储器系统设计的问题越来越关键,对存储器接口的验证已成为SoC系统设计中非常重要的一步。
外部存储器接口基于AHB(Advanced High performance Bus,高级高性能总线)从设备接口,主要面向嵌入式SoC应用,该接口内部信号符合AHB协议,响应CPU、DSP或EDMA等不同主设备的请求,根据不同的片选信号可以分别控制SRAM(StaticRAM,静态存储器)、SDRAM(Synchronous Dynamic Random Access Memory,同步动态随机存储器)、NORFLASH(非易失闪存技术)、FIFO(First In First Out,先进先出的数据缓存器)等读写操作。
对外部存储接口的验证是检验其是否实现了所需功能,测试方法一般分为黑盒法、白盒法和灰盒法。黑盒法只关心待验证模块的外部端口信号,而不关心模块内部的结构,不依赖具体的实现方式,是真正的一致性验证,但很难对错误定位,缺乏对设计的可控性;白盒法可以迅速设置测试输入,但需要详细掌握设计细节,并且可移植性较差;灰盒法兼具黑盒和白盒的优点,是两种验证方法的这种,该方法不但关注外部端口信号,同时也关注内部表现、内部结构。灰盒法验证环境的质量优劣取决于对待验证模块输入的激励,这些激励通过搭建相应的测试平台来实现。
对于简单的模块,可以通过遍历的直接验证方式来验证,这种方式需根据测试功能点直接对待验证模块输入激励。这种方式对人工的依赖性非常强,因此对于较为复杂的模块验证就具有很大的局限性。随着设计复杂度日益上升以及验证空间急剧增大,直接验证已越来越不能满足验证需要,此时随机验证的优越性就凸现出来。随机验证通过对待验证模块输入大量随机测试向量来覆盖测试功能点,这样提高了验证质量和效率,减小了对人工的依赖性,并可对直接验证难以考虑的特殊行为和难以覆盖的验证空间进行验证,因此弥补了直接验证的局限性,大大提高了对当前设计水平和验证要求的适应能力。随机验证一般验证序列较长,为了避免完全的随机,需要通过相应约束来指导随机验证朝着特定功能的方向进行,这种约束来源于输入总线协议和对测试功能点的覆盖要求。因此,带约束的随机验证可以生成更符合实际情况的激励,更大程度的覆盖验证空间,提高验证的质量和效率。
其中,随机测试电路是随机测试激励生成的关键,它将随机数生成模块生成的随机数转化成对待验证模块输入的激励。
现有技术存在的缺点是,目前还没有针对外部存储器接口的随机测试的方案。
例如,在申请号为200510086445.7,名称为一种在指令级随机测试中支持EJTAG测试的实现方法的专利申请中,仅给出了包含EJTAG片上交叉调试器的微处理器核的测试和验证,没有针对外部存储器接口的随机测试。在申请号为200910083767.4,名称为.随机测试程序生成方法和系统以及设计验证方法的专利申请中,仅给出了减少了实际RTL仿真时的时间消耗的方法,没有针对外部存储器接口的随机测试。
发明内容
本发明的目的旨在至少解决上述技术缺陷之一,特别针对基于LFSR产生外部存储接口随机测试激励,实现对外部存储接口的随机测试,提出了一种基于LFSR的外部存储接口的随机测试装置。
为实现上述目的,本发明实施例提出了一种基于LFSR的外部存储接口的随机测试装置,包括:
伪随机数生成模块,用于生成伪随机数;
伪随机数寄存模块,用于存储来自所述伪随机数生成器的伪随机数;
测试激励产生及输出模块,用于根据来自所述伪随机数寄存模块的伪随机数,生成对所述外部存储接口的随机测试激励信号;和
测试模块,用于将来自所述外部存储接口的读数据信号与来自所述测试激励产生及输出模块的对外部存储器同一地址写入的数据进行对比,当上述两个数据相等时,表示读写操作均已正确执行,测试通过,否则表示对外部存储器的写和读操作至少一个出错,测试失败,统计失败的总次数。
本发明的基于LFSR(Linear Feedback Shift Register,线性反馈移位寄存器)的外部存储接口的随机测试装置,以LFSR为伪随机数生成器,将其产生的伪随机数转化成符合AHB总线协议的随机测试激励,产生外部存储接口随机测试激励,实现了对外部存储接口的随机测试。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为根据本发明实施例的基于LFSR的外部存储接口的随机测试装置的结构框图;
图2为图1中的随机测试装置的结构示意图;
图3为根据本发明实施例的LFSR结构示意图;和
图4为根据本发明实施例的随机测试装置与外部存储接口以及外部存储器的连接关系示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本发明主要在于,基于LFSR产生的伪随机数,将其产生的伪随机数转化成符合AHB总线协议的随机测试激励,产生外部存储接口随机测试激励,实现了对外部存储接口的随机测试。
具体的说,AHB总线信号包括:时钟信号HCLK,全局复位信号HRESET,从设备选中信号HSEL,读写信号HWRITE,传输长度信号HSIZE,传输类型信号HBURST,传输模式信号HTRANS,地址信号HADDR,写数据信号HWDATA,读数据信号HRDATA,传输状态反馈信号HRESP,准备就绪信号HREADY。
其中HCLK、HRESET、HSEL等系统信号由系统提供,HRDATA、HRESP、HREADY等输出信号由外部存储接口输出。本发明提供基于LFSR的外部存储接口的随机测试装置提供符合AHB总线协议的测试信号读写信号HWRITE、传输长度信号HSIZE、传输类型信号HBURST、传输模式信号HTRANS、地址信号HADDR、写数据信号HWDATA,并统计测试结果。
为实现上述目的,本发明提供了一种基于LFSR的外部存储接口的随机测试装置。图1示出了该随机测试装置的结构框图。如图1所示,该随机测试装置100包括伪随机数生成模块110、伪随机数寄存模块120、测试激励产生及输出模块130和测试模块140。
具体的说,结合图2所示,将反馈电路反馈的信号输入到伪随机数生成模块110生成伪随机二进制数。在本实施例中,伪随机数生成模块110为线性反馈移位寄存器(LFSR)。图3示出了LFSR结构示意图。上述LFSR包括移位寄存器(b1,b2,b3,b4……bn-1,bn)和反馈电路。其中,移位寄存器由触发器串联而成,在每次时钟触发时将信号从一个触发器移到下一个触发器,在这个更新的过程中即可获得一个位的输出q。其中的部分触发器输出通过反馈电路连接到移位寄存器输入,从而形成一个反馈机制。上述反馈电路由反馈函数控制。
LFSR110每产生一位数即将其移入伪随机数寄存模块120。在本实施例中,伪随机数寄存模块120为一个32位移位寄存器。伪随机数寄存模块120存储来自上述伪随机数生成模块110的伪随机二进制数q。
结合图2所示,测试激励产生及输出模块130进一步包括读写信号生成器3、传输长度生成器4、传输类型生成器5、地址生成器6、地址译码器7、命令生成器8、数据生成器9、读写信号选择器13、传输长度信号选择器14、传输类型信号选择器15、地址信号选择器16、写数据信号选择器17和传输模式信号选择器18。
伪随机数寄存模块120将生成的32位的伪随机数i输出给读写信号生成器(write生成器)3、传输长度生成器(size生成器)4、传输类型生成器(burst生成器)5、地址生成器6和数据生成器9,作为信号产生的基础。
具体的说,write生成器3接收来自上述伪随机数寄存模块120的32位伪随机数i,对其进行最低位操作,以这个最低位作为write信号,以此决定本次对外部存储器的访问是读还是写。其中,当write值为1时表示写操作,当write值为0时表示读操作。
size生成器4对来自上述伪随机数寄存模块120的伪随机数i进行除以3取余数的操作,输出为3位传输长度size,即size可随机在0、1、2中取值,分别对应的传输长度可为字节、半字、字。
Burst生成器5对来自上述伪随机数寄存模块120的伪随机数i进行除以8取余数的操作,输出为3位传输类型burst值,即burst可随机在0到7的整数中取值,分别对应的传输类型就可为单个、不定长递增、4拍回卷、4拍递增、8拍回卷、8拍递增、16拍回卷、16拍递增。
地址生成器6根据来自上述伪随机数寄存模块120的32位伪随机数i和来自size生成器4的3位size信号,来自burst生成器5的3位burst信号,生成对外部存储器的32位访问地址addr和2位传输模式信号trans,以及第一拍传输的后续传输拍数,即地址增加次数count。
具体的说,地址生成器6首先根据32位伪随机数i生成起始地址。可根据i的最高2位决定要访问的外部存储器。上述外部存储器包括NORFLASH、SDRAM、SRAM和FIFO。定义i最高2位为00时表示NORFLASH,01表示SDRAM,10表示SRAM,11表示FIFO,这样即可实现随机在四个外部存储器中进行选择。在选定外部存储器后,根据具体的存储器地址定义确定地址中表示存储器的特征位,其余位可直接使用i的相应位,由此生成起始地址。
地址生成器6根据burst信号判断出地址增加的次数count,然后在每次突发传输给地址加上一个增量时就开始计数,当计数值达到地址增加次数阈值count值时就停止发送地址,完成后计数器清零。其中,地址增加次数阈值count等于burst值表示的传输拍数减一。
每次的地址增量由size决定,size为0时,每次地址增量为1字节;size为1时,每次地址增量为1个半字(等于2字节);size为2时,每次地址增量为1个字(等于4字节)。
其中,size为0时,可用i作为起始地址,每次地址增量为1字节。突发传输地址的增加方式有递增和回卷两种。
对于地址递增传输,地址在每一拍传输都增加一个增量,即后续地址每次增加一个字节,即addr=addr+1。
对于地址回卷传输,地址除了在碰到边界时每一拍传输都增加一个增量,如果起始地址不是按本次突发传输的总字节数对齐的,则地址在走到边界时回卷。本次突发传输的总字节数为传输长度与拍数的乘积。
例如:对于传输长度为字(4字节)的4拍回卷,addr[1:0]=addr[1:0]+1,地址在16字节的地址边界回卷,若起始地址为0x34(即十六进制34),则这四拍传输的地址分别为0x34、0x38、0x3c、0x30;对于8拍回卷,addr[2:0]=addr[2:0]+1;对于16拍回卷,addr[3:0]=addr[3:0]+1;其中,addr[1:0]表示addr的1到0位,addr[1:0]在递增到最大值二进制11时,再加1就会溢出回到二进制00。由此达到了回卷的目的,其他以此类推。
当size值为1时,即传输长度为半字(2字节),则地址以半字为单位,对字节不敏感,因此地址的最低位为0,可将i的最低位变为0后作为起始地址。上述可通过跟32位二进制数1111 1111 1111 1111 1111 1111 1111 1110进行按位与操作得到。
对于地址递增传输,则后续地址每次增加一个半字,即addr=addr+2。对于地址回卷传输,则后续地址在碰到地址边界前每次增加一个半字,在碰到地址边界后回卷。
例如:对于4拍回卷,addr[2:1]=addr[2:1]+1;对于8拍回卷,addr[3:1]=addr[3:1]+1;对于16拍回卷,addr[4:1]=addr[4:1]+1。其中,addr[2:1]表示addr的2到1位,addr[2:1]在递增到最大值二进制11时,再加1就会溢出回到二进制00。由此达到回卷的目的,其他以此类推。
当size值为2时,即传输长度为字(4字节),则地址以字为单位,对字节和半字不敏感,因此地址的最低2位为00,可将i的最低2位变为00后作为起始地址。上述可通过跟32位二进制数1111 1111 1111 1111 1111 1111 1111 1100进行按位与操作得到。
对于地址递增传输,则后续地址每次增加一个字,即addr=addr+4;对于地址回卷传输,则后续地址在碰到地址边界前每次增加一个字,在碰到地址边界后回卷。
例如:对于4拍回卷,addr[3:2]=addr[3:2]+1;对于8拍回卷,addr[4:2]=addr[4:2]+1;对于16拍回卷,addr[5:2]=addr[5:2]+1。其中,addr[3:2]表示addr的3到2位,addr[3:2]在递增到最大值二进制11时,再加1就会溢出回到二进制00。由此达到回卷的目的,其他以此类推。
此外,地址增加次数count和增加方式则由burst信号决定。
具体的说,burst为0时,传送类型为单个传输。此时,count为0即只进行一次传输,无地址递增。
burst为1时,传输类型为不定长地址递增传输,即连续进行若干次传输。
burst为2、4、6时,传输类型分别为4拍、8拍、16拍的地址回卷传输,count分别为3、7、15,即连续进行4次、8次、16次传输,且在此期间write、size、burst等控制信号保持不变。在地址回卷传输中,地址在未碰到边界时逐次递增,增量由size决定,在碰到地址边界时就开始回卷。
burst为3、5、7时,传输类型分别为4拍、8拍、16拍的地址递增传输,count分别为3、7、15,即连续进行4次、8次、16次传输。
在上述不同传输类型的传输过程中,write、size、burst等控制信号保持不变。在地址递增传输中,地址在传输中逐次递增,增量由size决定。
地址生成器6除生成上述访问地址和地址增加次数count,还生成有传输状态信号trans信号。
具体的说,在无传输时,trans信号值为0,表示空闲;
在下一拍传输暂时不能进行时,trans信号值为1,表示繁忙;
在突发传输的第一拍时,trans信号值为2,表示非顺序;
在突发传输的第一拍之后的拍数时,trans信号值为3,表示顺序。
地址译码器7对来自地址生成器6的32位访问地址addr进行译码,以此判断访问的是不是NORFLASH,是否需要开启命令生成器8。若addr在NORFLASH地址范围内,访问NORFLASH,需要通过命令生成器8发出相应操作命令来实现对NORFLASH的访问;若为SDRAM、SRAM或FIFO中的一种,则不需要使用命令生成器来实现访问。地址译码器7输出为命令生成器8的1位开启信号cmd_en,当cmd_en为1表示开启命令生成器8,cmd_en为0表示关闭命令生成器8。
数据生成器(wdata生成器)9根据输入的32位伪随机数i生成32位写入外部存储器的数据。
在本实施例中,由于没有特殊要求,可以将伪随机数i直接作为写入数据wdata,否则可根据具体要求生成所需数据。
命令生成器8在接收到上述1位开启信号cmd_en、1位write、3位burst、32位addr、32位wdata后,根据输入的burst和write信号判断操作类型,以确定发出的命令类型。其中,命令通过地址、数据序列形式发出的,即连续对某些特定地址写入特定数据。其中,控制信号、地址、数据等也应符合AHB协议。命令生成器8根据上述输入信号,输出32位cmd_addr、32位cmd_wdata、2位cmd_trans、3位cmd_size、3位cmd_burst、1位cmd_write,即NORFLASH的操作命令以及相关控制信号。
具体的说,命令生成器8在开启信号cmd_en为1时开启。开启后,根据输入的burst和write信号判断操作类型,以确定发出的命令信号类型。
若对16位宽的NORFLASH进行访问,则在写命令时cmd_write为1,即写操作;cmd_size为1,即传输长度为半字;cmd_burst为0,即传输类型为单个传输;cmd_trans为2,即传输模式为非顺序。此外,cmd_addr和cmd_wdata由具体命令决定。
常用的16位NORFLASH操作命令如下,用十六进制地址、数据序列(cmd_addr,cmd_data)形式表示:
program(编程):(555,aa),(2aa,55),(555,a0),(PA,PD);
write-to-buffer(写缓冲器):(555,aa),(2aa,55),(SA,25),(SA,WC),(PA,PD),(WBL,PD);
program-buffer-to-flash(写缓冲器到flash):(SA,29);
chip-erase(全片擦除):(555,aa),(2aa,55),(555,80),(555,aa),(2aa,55),(555,10);
sector-erase(扇区擦除):(555,aa),(2aa,55),(555,80),(555,aa),(2aa,55),(SA,30);
reset(复位):(XXX,f0);
program/erase-suspend(编程/擦除中止):(XXX,b0);
program/erase-resume(编程/擦除恢复);(XXX,30)。;
其中,PA为编程地址,PD为对地址PA的编程数据,SA为扇区地址(扇区地址的划分根据具体芯片参数确定),WBL为写缓冲器位置(在突发写操作中为突发传输的后续地址),WC为数据计数值(等于count),XXX表示任意值。
在对NORFLASH写入数据前应先对其进行擦除操作,可发送chip-erase命令进行整片擦除,在只访问某些扇区时也可只对这些扇区用sector-erase命令进行扇区擦除;对NORFLASH的单个写需要先发出program命令,再写入数据;对NORFLASH的突发写需要先发出write-to-buffer命令,再突发写入数据,这样即可将数据写入缓冲器,完成之后就发出program-buffer-to-flash命令,将数据从缓冲器写入NORFLASH;对NORFLASH的读操作跟其他存储器类似,没有特殊操作命令。
命令生成器8生成的1位cmd_write、3位cmd_size、3位cmd_burst、2位cmd_trans、32位cmd_addr和32位cmd_wdata分别输入到读写信号选择器(HWRITE选择器)13、传输长度信号选择器(HSIZE选择器)14、传输类型信号选择器(HBURST选择器)15、地址信号选择器(HADDR选择器)16、写数据信号选择器(HWDATA选择器)17和传输模式信号选择器(HTRANS选择器)18。
其中,HWRITE选择器13,从读写信号生成器3和命令生成器8产生的读写信号中选择一个有效信号输出。即输入为1位write、1位cmd_write和1位cmd_en,输出为1位HWRITE。当HWRITE为1时,表示写操作;当HWRITE为0时,表示读操作。当cmd_en为1时,选择cmd_write;当cmd_en为0时,选择write。
HSIZE选择器14,从传输长度生成器4和命令生成器8产生的传输长度信号中选择一个有效信号输出。即输入为3位size、3位cmd_size和1位cmd_en,输出为3位HSIZE,表示传输的长度,0表示字节(8位),1表示半字(16位),2表示字(32位),其他传输长度不支持。当cmd_en为1时,选择cmd_size;当cmd_en为0时,选择size。
HBURST选择器15,从传输类型生成器5和命令生成器8产生的传输类型信号中选择一个有效信号输出。即输入为3位burst、3位cmd_burst和1位cmd_en,输出为3位HBURST。当cmd_en为1时,选择cmd_burst;当cmd_en为0时,选择burst。
输出值HBURST表示传输类型,有单个、4拍、8拍、16拍和不定长传输,可以为地址递增或者地址回卷方式。其中,HBURST为0表示单个传输;HBURST为1表示不定长突发传输;HBURST为2表示4拍回卷突发传输;HBURST为3表示4拍递增突发传输;HBURST为4表示8拍回卷突发传输;HBURST为5表示8拍递增突发传输;HBUFST为6表示16拍回卷突发传输;HBURST为7表示16拍递增突发传输。
HADDR选择器16,从地址生成器6和命令生成器8产生的地址信号中选择一个有效信号输出到32位地址总线。即输入为32位addr、32位cmd_addr和1位cmd_en,输出为32位地址总线HADDR。当cmd_en为1时,选择cmd_addr;当cmd_en为0时,选择addr。
HWDATA选择器17,从数据生成器9和命令生成器8产生的写数据信号中选择一个有效信号输出到32位数据总线。即输入为32位wdata、32位cmd_wdata和1位cmd_en,输出为32位写数据总线HWDATA;当cmd_en为1时,选择cmd_wdata;当cmd_en为0时,选择wdata。
HTRANS选择器18,从地址生成器6和命令生成器8产生的传输模式信号中选择一个有效信号输出。即输入为2位trans、2位cmd_trans和1位cmd_en,输出为2位HTRANS。当cmd_en为1时,选择cmd_trans;当cmd_en为0时,选择trans。
输出值HTRANS表示当前传输的模式,包括为非顺序,顺序,空闲或者繁忙。HTRANS为0时表示空闲,总线没有传输进行;HTRANS为1时表示繁忙,不能立即开始下一次传输;HTRANS为2时表示非顺序,即传输的第一拍模式均为非顺序;HTRANS为3时表示顺序,即突发传输第一拍的之后传输模式为顺序。
测试模块140进一步包括写入数据记录存储器10、读出数据核对逻辑器11和测试结果计数器12。
写入数据wdata在写到外部存储器的同时保存在写入数据记录存储器10中,保存的地址跟访问外部存储器的地址一致。写入数据记录存储器10根据输入的32位addr、32位wdata、3位size和1位write,生成32位re_data,用于记录对外部存储器写入的数据,以备将写入数据读出后进行核对,其编址和外部存储器保持一致。
AHB信号HWRITE、HSIZE、HBURST、HTRANS、HADDR和HWDATA在访问NORFLASH时分别连到cmd_write、cmd_size、cmd_burst、cmd_trans、cmd_addr和cmd_wdata;在访问SDRAM、SRAM和FIFO时不需要通过命令访问,则分别连到write、size、burst、trans、addr和wdata。上述访问通过6个多路选择器实现的,控制信号为cmd_en,当cmd_en为1时选择命令生成器8输出的信号。
写入数据记录存储器10在对外部存储器进行写操作时,同时将写入的数据保存到写入数据记录存储器10的相同地址;在对外部存储器进行读操作时,同时从记录存储器中输出相同地址上保存的数据记录re_data,以备与从外部存储器读出的数据进行核对;传输长度由size决定,以跟对外部存储器的传输长度保持一致。
将从外部存储器读出的32位数据HRDATA和从写入数据记录存储器10的同一地址输出的32位数据re_data通过读出数据核对逻辑11进行对比,得出1位核对结果result。若HRDATA和re_data相等,则表示对外部存储器的写和读操作都正确进行,即测试通过,则输出result为0;若HRDATA和re_data不相等,则表示对外部存储器的写和读操作至少一个出错,即测试失败,则输出result为1。
测试结果计数器12将整个测试过程中所有的result值进行累加,用于统计测试失败的总次数fail_count。
若测试结束后,总失败次数为0,表示全部测试通过;若总失败次数不为0,表示测试还存在问题,需要进一步排查错误。
图4示出了本发明的随机测试装置与外部存储接口以及外部存储器的连接关系示意图。如图4中所示,时钟信号HCLK、全局复位信号HRESET和从设备选中信号HSEL等系统信号由系统提供。读数据信号HRDATA、传输状态反馈信号HRESP和准备就绪信号HREADY等输出信号由外部存储接口输出。外部存储接口与外部存储器NORFLASH、SDRAM、SRAM和FIFO进行数据传输。
本发明的随机测试装置基于LFSR其产生的伪随机数为基础,以生成读写信号HWRITE、传输长度信号HSIZE、传输类型信号HBURST、传输模式信号HTRANS、地址信号HADDR和写数据信号HWDATA,并将上述信号写入外部存储信号。
本发明的基于LFSR的外部存储接口的随机测试装置,以LFSR为伪随机数生成器,将其产生的伪随机数转化成符合AHB总线协议的随机测试激励,产生外部存储接口随机测试激励,实现了对外部存储接口的随机测试。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同限定。
Claims (16)
1.一种基于LFSR的外部存储接口的随机测试装置,其特征在于包括:
伪随机数生成模块,用于生成伪随机数;
伪随机数寄存模块,用于存储来自所述伪随机数生成模块的伪随机数;
测试激励产生及输出模块,用于根据来自所述伪随机数寄存模块的伪随机数,生成对所述外部存储接口的随机测试激励信号,其中,所述测试激励产生及输出模块包括读写信号生成器、传输长度生成器、传输类型生成器、地址生成器、地址译码器、命令生成器、数据生成器、读写信号选择器、传输长度信号选择器、传输类型信号选择器、传输模式信号选择器、地址信号选择器和写数据信号选择器;和
测试模块,用于将来自所述外部存储接口的读数据信号与来自所述测试激励产生及输出模块的对外部存储器同一地址写入的数据进行对比,当上述两个数据相等时,表示对外部存储器的写和读操作均已正确进行,测试通过,否则表示对外部存储器的写和读操作至少一个出错,测试失败,统计失败的总次数。
2.如权利要求1所述的随机测试装置,其特征在于,所述伪随机数生成模块为线性反馈移位寄存器,包括移位寄存器和反馈电路,所述移位寄存器通过触发器串联而成,在每次时钟触发时将信号从一个触发器移到下一个触发器,以输出1位伪随机二进制数,其中部分触发器的输出信号通过反馈电路反馈到线性反馈移位寄存器的输入。
3.如权利要求1所述的随机测试装置,其特征在于,所述伪随机数寄存模块为32位移位寄存器,所述伪随机数生成模块每生成1位随机二进制数,则移入所述伪随机数寄存模块。
4.如权利要求1所述的随机测试装置,其特征在于,所述读写信号生成器、传输长度生成器、传输类型生成器、地址生成器和数据生成器分别接收来自所述伪随机数寄存模块的伪随机数,
所述读写信号生成器,用于根据来自所述伪随机数寄存模块的伪随机数进行取最低位操作,以最低位作为读或写信号;
所述传输长度生成器,用于将来自所述伪随机数寄存模块的伪随机数除以3,得到余数作为传输长度值;
传输类型生成器,用于将来自所述伪随机数寄存模块的伪随机数除以8,得到的余数作为传输类型值;
地址生成器,用于根据所述伪随机数、传输长度值和传输类型值生成对外部存储的访问地址、传输状态信号和地址增加次数;
地址译码器,用于根据所述对外部存储接口的访问地址,生成所述命令生成器的开启信号;
命令生成器,用于在接收到所述开启信号后,根据所述传输类型值、传输长度值、传输类型值、读或写信号以及地址和数据判断操作类型,根据所述操作类型发送命令信号;
数据生成器,用于根据所述伪随机数生成写入外部存储器的数据;
读写信号选择器,用于从所述读写信号生成器和命令生成器产生的读写信号中选择一个有效信号并输出;
传输长度信号选择器,用于从所述传输长度生成器和命令生成器产生的传输长度信号中选择一个有效信号并输出,所述传输长度包括8位、16位和32位;
传输类型信号选择器,用于从所述传输类型生成器和命令生成器产生的传输类型信号中选择一个有效信号并输出,所述传输类型包括单个传输、4拍回卷突发传输、4拍递增突发传输、8拍回卷突发传输、8拍递增突发传输、16拍回卷突发传输以及16拍递增突发传输;
传输模式信号选择器,用于从所述地址生成器和命令生成器产生的传输模式信号中选择一个有效信号并输出,所述传输模式包括非顺序、顺序、空闲或繁忙;
地址信号选择器,用于从所述地址生成器和命令生成器产生的地址信号中选择一个有效信号并输出到32位地址总线;
写数据信号选择器,用于从数据生成器和命令生成器产生的写数据信号中选择一个有效信号并输出到32位数据总线。
5.如权利要求4所述的随机测试装置,其特征在于,所述传输长度生成器生成的传输长度值对应的传输长度分别为字节、半字和字。
6.如权利要求4所述的随机测试装置,其特征在于,所述传输类型生成器生成的传输类型值对应的单个、不定长递增、4拍回卷、4拍递增、8拍回卷、8拍递增、16拍回卷、16拍递增。
7.如权利要求4所述的随机测试装置,其特征在于,所述地址生成器生成对外部存储的访问地址进一步包括:根据所述伪随机数最高两位的二进制数,选取需要访问的四个外部存储器,根据已选定的外部存储器的地址确定所述对外部存储的访问地址中表示存储器的特征位,所述访问地址的其余位采用所述伪随机数的相应位。
8.如权利要求4所述的随机测试装置,其特征在于,所述地址生成器对地址递增的传输,地址在每一拍传输都增加一个增量;
对地址回卷的传输,地址除了在碰到边界时每一拍传输都增加一个增量,当起始地址不是按本次突发传输的总字节数对齐的,则地址在碰到边界后回卷,所述总字节数为传输长度乘以拍数。
9.如权利要求4所述的随机测试装置,其特征在于,所述地址生成器根据来自所述传输类型生成器的传输类型值判断地址增加次数,在每次突发传输给所述访问地址加一个增量时开始计数,当计数值达到地址增加次数阈值时停止发送地址,计数值清零。
10.如权利要求9所述的随机测试装置,其特征在于,所述地址增加次数阈值为所述传输类型值的传输拍数减一。
11.如权利要求4所述的随机测试装置,其特征在于,所述地址生成器生成传输状态信号进一步包括:根据来自所述传输类型生成器的传输类型值,
突发传输的第一拍传输模式为非顺序;
在突发传输第一拍之后的传输中,传输模式为顺序;
在没有传输进行时,传输模式为空闲;
在下一次传输不能立即进行时,传输模式为繁忙。
12.如权利要求4所述随机测试装置,其特征在于,所述命令生成器以地址、数据序列形式发送命令。
13.如权利要求1所述的随机测试装置,其特征在于,所述测试模块包括写入数据记录存储器、读出数据核对逻辑器和测试结果计数器,
所述写入数据记录存储器,用于存储来自所述测试激励产生及输出模块的写入外部存储器的数据;
所述读出数据核对逻辑器,用于将从所述外部存储器读出的数据与来自所述写入数据记录存储器的同一地址的数据进行对比,当上述两个数据相等时,表示对外部存储器的写和读操作均已正确执行,测试通过,否则表示对外部存储器的写和读操作至少一个出错,测试失败;
所述测试结果计数器,用于统计来自所述读出数据核对逻辑器的失败的次数。
14.如权利要求13所述的随机测试装置,其特征在于,所述写入数据记录存储器的编址与外部存储器的编址相同,
在对所述外部存储器进行写操作时,同时将写入的数据保存到所述写入数据记录存储器的相同地址;在对所述外部存储器进行读操作时,同时从所述写入数据记录存储器中输出相同地址上保存的数据。
15.如权利要求14所述的随机测试装置,其特征在于,所述写入数据的传输长度由所述传输长度值决定。
16.如权利要求13所述的随机测试装置,其特征在于,所述测试结果计数器统计来自所述读出数据核对逻辑器的失败的次数进一步包括:
将来自所述读出数据核对逻辑器的输出值进行累加,得到测试失败的总次数,
当测试结束后,总失败次数为0,表示全部测试通过;
若总失败次数不为0,表示需要进一步排查错误。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010238663A CN101894591B (zh) | 2010-07-26 | 2010-07-26 | 一种基于lfsr的外部存储接口的随机测试装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010238663A CN101894591B (zh) | 2010-07-26 | 2010-07-26 | 一种基于lfsr的外部存储接口的随机测试装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101894591A CN101894591A (zh) | 2010-11-24 |
CN101894591B true CN101894591B (zh) | 2012-10-10 |
Family
ID=43103753
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010238663A Active CN101894591B (zh) | 2010-07-26 | 2010-07-26 | 一种基于lfsr的外部存储接口的随机测试装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101894591B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102543208B (zh) * | 2010-12-30 | 2015-01-21 | 深圳市硅格半导体有限公司 | 快速确定闪存错误分布的方法及装置 |
CN103150228B (zh) * | 2013-02-22 | 2014-06-04 | 中国人民解放军国防科学技术大学 | 面向高速缓冲存储器的可综合伪随机验证方法及装置 |
CN104750633B (zh) * | 2013-12-30 | 2019-03-15 | 锐迪科(重庆)微电子科技有限公司 | Fpga设备访问验证装置及方法 |
CN108122596B (zh) * | 2016-11-30 | 2020-07-28 | 北京京存技术有限公司 | 一种存储器的测试方法和装置 |
RU2660607C1 (ru) * | 2017-02-20 | 2018-07-06 | Федеральное государственное бюджетное образовательное учреждение высшего образования "Воронежский государственный технический университет" | Способ тестирования оперативных запоминающих устройств |
CN108845248B (zh) * | 2018-05-02 | 2020-10-23 | 清华大学 | 一种基于向量压缩的低功耗测试压缩方法和系统、clfsr |
CN109976670B (zh) * | 2019-03-18 | 2022-11-04 | 上海富芮坤微电子有限公司 | 支持数据保护功能的串行非易失性存储控制器设计方法 |
CN112100016B (zh) * | 2020-07-27 | 2023-07-14 | 珠海亿智电子科技有限公司 | 一种系统异常场景下的soc诊断方法及系统 |
CN111967209B (zh) * | 2020-08-21 | 2024-06-14 | 广芯微电子(广州)股份有限公司 | 一种soc仿真验证方法、装置及存储介质 |
CN113312862B (zh) * | 2021-06-04 | 2022-04-05 | 上海交通大学 | 一种基于lfsr的随机电路硬件开销最小化设计方法 |
CN115658413B (zh) * | 2022-12-29 | 2023-04-11 | 摩尔线程智能科技(北京)有限责任公司 | 一种激励发生器和激励发生方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101620523A (zh) * | 2009-07-29 | 2010-01-06 | 深圳国微技术有限公司 | 一种随机数发生器电路 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0991997A (ja) * | 1995-09-28 | 1997-04-04 | Mitsubishi Electric Corp | メモリテスト回路 |
-
2010
- 2010-07-26 CN CN201010238663A patent/CN101894591B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101620523A (zh) * | 2009-07-29 | 2010-01-06 | 深圳国微技术有限公司 | 一种随机数发生器电路 |
Non-Patent Citations (1)
Title |
---|
JP特开平9-91997A 1997.04.04 |
Also Published As
Publication number | Publication date |
---|---|
CN101894591A (zh) | 2010-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101894591B (zh) | 一种基于lfsr的外部存储接口的随机测试装置 | |
US8275933B2 (en) | Apparatus, system, and method for managing physical regions in a solid-state storage device | |
CN101218569B (zh) | 用于控制dma任务的执行的装置 | |
JP5531372B2 (ja) | ロバストメモリリンク試験の方法 | |
CN109582599A (zh) | 数据储存装置以及非挥发式存储器操作方法 | |
CN103246625B (zh) | 一种数据与地址共用引脚自适应调整访存粒度的方法 | |
CN104346285A (zh) | 内存访问处理方法、装置及系统 | |
CN103116551B (zh) | 应用于CLB总线的NorFLASH存储接口模块 | |
CN103235760B (zh) | 基于CLB总线的高利用率NorFLASH存储接口芯片 | |
Song et al. | Enabling and exploiting partition-level parallelism (PALP) in phase change memories | |
CN103984791A (zh) | 对fpga在运行时的信号值的随机访问 | |
CN103996416B (zh) | 一种可重用的ftl验证方法 | |
CN101446987A (zh) | 一种用于多核处理器Cache一致性实物验证的装置 | |
TWI698749B (zh) | 資料儲存裝置與資料處理方法 | |
KR20100008703A (ko) | 메모리 인터페이스를 사용한 SoC 디바이스 검증 모델 | |
CN109254883B (zh) | 一种片上存储器的调试装置及方法 | |
US10503438B1 (en) | Memory sub-system supporting non-deterministic commands | |
Zuolo et al. | SSDExplorer: A virtual platform for performance/reliability-oriented fine-grained design space exploration of solid state drives | |
US20230153189A1 (en) | Visualization system for debug or performance analysis of soc systems | |
CN105528309B (zh) | 用于ssd控制器的lba阻止表格 | |
CN104679681A (zh) | Ahb总线访问片上sram的高速桥装置及其工作方法 | |
CN103218219A (zh) | 紧凑函数跟踪 | |
CN103514140A (zh) | 用于实现可重构系统中配置信息多发射的重构控制器 | |
Salah | A unified UVM architecture for flash-based memory | |
Zuolo et al. | SSDExplorer: A virtual platform for fine-grained design space exploration of Solid State Drives |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |