CN100578674C - 一种寄存器测试的方法和系统 - Google Patents

一种寄存器测试的方法和系统 Download PDF

Info

Publication number
CN100578674C
CN100578674C CN200710175434A CN200710175434A CN100578674C CN 100578674 C CN100578674 C CN 100578674C CN 200710175434 A CN200710175434 A CN 200710175434A CN 200710175434 A CN200710175434 A CN 200710175434A CN 100578674 C CN100578674 C CN 100578674C
Authority
CN
China
Prior art keywords
register
test
tested
test parameter
module
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.)
Expired - Fee Related
Application number
CN200710175434A
Other languages
English (en)
Other versions
CN101131875A (zh
Inventor
冯备战
游明琦
艾国
占文静
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Vimicro Corp
Original Assignee
Vimicro Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Vimicro Corp filed Critical Vimicro Corp
Priority to CN200710175434A priority Critical patent/CN100578674C/zh
Publication of CN101131875A publication Critical patent/CN101131875A/zh
Application granted granted Critical
Publication of CN100578674C publication Critical patent/CN100578674C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本发明公开了一种实现寄存器测试的系统,该系统包括:设置模块,设置寄存器属性与测试参数的对应关系;信息获取模块,获取每一个被测寄存器的寄存器信息,所述寄存器信息包含寄存器属性;测试参数产生模块,从所述信息获取模块获取的寄存器信息中得到寄存器属性,产生与所述寄存器属性对应的测试参数;执行模块,利用所述测试参数产生模块产生的所述测试参数,对所述被测寄存器进行测试,得到被测寄存器的测试结果。本发明还公开了寄存器测试的方法,使用本发明能够降低寄存器测试的工作量。

Description

一种寄存器测试的方法和系统
技术领域
本发明涉及测试领域,特别是涉及在一种寄存器测试的方法和系统。
背景技术
寄存器是存储计算机信息的最小单位,可由寄存器地址和寄存器内容来描述,根据寄存器允许的操作方式,可以将寄存器分为读写寄存器、只读寄存器、读清零寄存器和写清零寄存器等各种属性的寄存器。
在计算机的软件开发过程中,常需要使用各种属性的寄存器,通过对各种寄存器的组合使用,最终得以实现整个芯片完整的软件功能。比如,在计算机芯片中,需要使用不同属性的寄存器。而在计算机芯片中,寄存器数量是非常庞大的,比如在包含了10个模块的Vc0336芯片中,其寄存器的个数就达到了1000多个,可见,当需要对某个芯片进行质量测试时,对该芯片中寄存器的测试尤为重要。
目前,寄存器测试的方法还以人工测试为主,具体地讲,就是根据被测寄存器的属性,人工输入寄存器的测试参数,来实现寄存器测试。寄存器的测试参数包括:测试数和/或测试命令。比如,被测寄存器的属性为读写寄存器,在进行测试时,先人工输入一个数作为测试数,然后输入“写命令”、测试数和被测寄存器地址,以实现向被测寄存器写入该测试数;接着,输入“读命令”和被测寄存器地址,从该被测寄存器读取数值,如果读取的数值等于写入的测试数,则得到“工作正常”的测试结果,否则,得到“工作不正常”的测试结果。再如,被测寄存器的属性为写1清0,也就是当给寄存器写入“1”时,该寄存器写“1”的位置被清零,因而对该属性寄存器进行测试时,先人工输入“写命令”、被测寄存器地址和常数“1”,向被测寄存器写入1,接着,人工输入“读命令”和被测寄存器地址,读取该被测寄存器的值,如果读出的值等于0,则得到“工作正常”的测试结果,否则,得到“工作不正常”的测试结果。
可见,对于不同属性的被测寄存器,人工输入的测试参数也不同,在对各种属性的寄存器进行测试时,需要人工根据寄存器属性设定具体的测试参数值,而寄存器的数量比较多,要人工对大量属性不同的寄存器进行一次有效的测试,需要花费大量的时间,工作量非常繁重。由于人工测试寄存器的工作量太大,难免会出现寄存器的漏测或误测等问题。
因此,目前寄存器测试的方法,存在人工参与的比重较多,测试工作量较大的问题。
发明内容
有鉴于此,本发明的主要目的在于提供一种寄存器测试的系统,该系统能够降低测试寄存器的工作量。
本发明的第二个主要目的在于提供一种实现寄存器测试的方法,该方法能够降低测试寄存器的工作量。
为了达到上述第一个目的,本发明提出的技术方案为:一种实现寄存器测试的系统,该系统包括:
设置模块,用于设置寄存器属性与测试参数的对应关系;
信息获取模块,用于获取每一个被测寄存器的寄存器信息,所述寄存器信息包括寄存器属性;
测试参数产生模块,用于从所述信息获取模块获取的寄存器信息中得到寄存器属性,产生与所述寄存器属性对应的测试参数;
执行模块,用于利用所述测试参数产生模块产生的测试参数,对所述被测寄存器进行测试,得到被测寄存器的测试结果;
所述测试参数产生模块包括:匹配单元和参数产生单元;
所述匹配单元,用于根据预先设置的寄存器属性与测试参数的对应关系,匹配得到与所述被测寄存器的寄存器属性对应的测试参数,所述测试参数包括至少一组测试命令和/或测试数;
所述参数产生单元,用于根据匹配单元得到的所述测试参数产生出每一组测试命令,和/或根据匹配单元得到的所述测试参数按照预先设置的策略产生出每一组测试数,依次输入到执行模块;
其中,所述预先设置的策略包括四种,分别为随机数、最大值、最小值和用户输入策略;
所述随机数策略是指自产生一个随机数,进行寄存器测试;若随机数的数值太大,根据各个寄存器信息中的位宽或根据预先设置的默认位宽进行截取,用截取后的值测试相应的寄存器;
所述最小值策略为用寄存器的最小值0进行测试;
所述最大值策略包括:根据寄存器信息中的位宽或预先设置的默认位宽计算出寄存器的最大值,用各个寄存器自身的最大值进行测试;
所述用户输入策略是根据用户输入的数值,进行寄存器测试;若用户输入的数值太大,根据各个寄存器信息中的位宽或根据预先设置的默认位宽进行截取,用截取后的值测试相应的寄存器。
所述执行模块包括:测试参数接口单元和操作单元;
所述测试参数接口单元,用于接收来自测试参数产生模块的测试参数;
所述操作单元,用于利用来自所述测试参数接口单元的测试参数,对被测寄存器进行测试操作,得到所述被测寄存器的测试结果。
当所述测试参数包括至少一组测试命令和/或测试数时,所述执行模块,进一步用于将执行完一组测试命令/测试数后得到的中间结果返回给所述测试参数产生模块;
所述测试参数产生模块在接收到所述中间结果后,将产生出的下一组测试命令和/或测试数输入到执行模块。
较佳地,所述系统进一步包括:测试结果存储模块;
所述测试结果存储模块,用于存储所述执行模块得到的所述被测寄存器的测试结果。
较佳地,所述系统进一步包括:寄存器列表模块;
所述寄存器列表模块,用于存储由所有被测寄存器的寄存器信息组成的寄存器列表;
所述信息获取模块,依次读取所述寄存器列表中每一个被测寄存器的寄存器信息。
较佳地,所述系统进一步包括:更新模块;
所述更新模块,用于对所述寄存器列表模块中的寄存器列表进行更新。
较佳地,所述系统进一步包括:测试次数设置模块;
所述测试次数设置模块,用于预先设置对每一个被测寄存器的测试次数;
所述测试参数产生模块,按照预先设置的测试次数,将产生出的被测寄存器的测试参数连续输入到执行模块。
较佳地,所述系统进一步包括:测试结果显示模块;
所述测试结果显示模块,用于存储所述执行模块得到的所述被测寄存器的测试结果。
为了达到上述第二个目的,本发明提出的技术方案为:一种寄存器测试的方法,该方法包括:
设置寄存器属性与测试参数的对应关系,获取每一个被测寄存器的寄存器信息,所述寄存器信息包括寄存器属性;从寄存器信息中提取寄存器属性,产生与所述寄存器属性对应的测试参数;利用产生的所述测试参数,对所述被测寄存器进行测试,得到被测寄存器的测试结果;
所述产生被测寄存器的测试参数包括:根据预先设置的寄存器属性与测试参数的对应关系,匹配得到与被测寄存器的寄存器属性对应的测试参数,所述测试参数包括至少一组测试命令和/或测试数;根据匹配得到的与被测寄存器属性对应的测试参数产生与所述属性信息对应的每一组测试命令,和/或根据匹配得到的与被测寄存器属性对应的测试参数按照预先设置的策略产生与所述属性信息对应的每一组测试数;
其中,所述预先设置的策略包括四种,分别为随机数、最大值、最小值和用户输入策略;
所述随机数策略是指自产生一个随机数,进行寄存器测试;若随机数的数值太大,根据各个寄存器信息中的位宽或根据预先设置的默认位宽进行截取,用截取后的值测试相应的寄存器;
所述最小值策略为用寄存器的最小值0进行测试;
所述最大值策略包括:根据寄存器信息中的位宽或预先设置的默认位宽计算出寄存器的最大值,用各个寄存器自身的最大值进行测试;
所述用户输入策略是根据用户输入的数值,进行寄存器测试;若用户输入的数值太大,根据各个寄存器信息中的位宽或根据预先设置的默认位宽进行截取,用截取后的值测试相应的寄存器。
较佳地,在所述方法之前,进一步包括:建立由所有被测寄存器的寄存器信息构成的寄存器列表;
所述获取每一个被测寄存器的寄存器信息包括:遍历所述寄存器列表,依次获取所述寄存器列表中的每一个被测寄存器的寄存器信息。
较佳地,所述方法之后进一步包括:存储所述被测寄存器的测试结果。
较佳地,所述方法之后进一步包括:显示所述被测寄存器的测试结果。
较佳地,所述方法在从寄存器信息中提取寄存器属性之前进一步包括:判断是否存储所述被测寄存器的测试结果,在没有存储所述被测寄存器的测试结果时或存储的所述被测寄存器的测试结果为“工作不正常”时,执行所述从寄存器信息中提取寄存器属性的步骤。
综上所述,本发明提出的一种寄存器测试的方法和系统,具有以下优点:
第一、本发明能够根据设置寄存器属性与测试参数的对应关系,根据获取到的每个被测寄存器的寄存器属性,自动产生出对每个被测寄存器的测试参数,因而能够降低测试寄存器的工作量。
第二、本发明通过遍历包含所有被测寄存器的寄存器信息的寄存器列表来实现对每一个被测寄存器的测试,能够避免寄存器的漏测或误测等问题,从而提高测试寄存器的准确性。
第三、本发明还能够在多人调试时,通过存储的被测寄存器的测试结果,在存储的所述被测寄存器的测试结果为“工作正常”时,不再进行测试,从而能够进一步降低测试寄存器的工作量。
因此,本发明提供的一种寄存器测试的方法和系统,能够降低测试寄存器的工作量。
附图说明
图1为本发明实现寄存器测试的第一个较佳实施例的系统结构示意图;
图2为本发明寄存器测试的第二个较佳实施例的方法流程示意图;
图3为本发明寄存器测试的第三个较佳实施例的方法流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明作进一步地详细描述。
本发明的技术方案是:一种实现寄存器测试的系统,该系统包括:用于设置寄存器属性与测试参数对应关系的设置模块、用于获取每一个被测寄存器的寄存器信息的信息获取模块,该寄存器信息包含寄存器属性、用于产生与所述寄存器属性对应的测试参数的测试参数产生模块和用于利用所述测试参数产生模块产生的所述测试参数,对所述被测寄存器进行测试的执行模块。
图1为本发明实现寄存器测试的第一个较佳实施例的系统结构示意图,该系统包括:设置模块100、信息获取模块110、测试参数产生模块120和执行模块130。
其中,设置模块100,设置寄存器属性与测试参数的对应关系;本实施例中,假设寄存器属性包括读写寄存器和写1清零寄存器两种,则设置的读写寄存器对应的测试参数为:“写命令”和“测试数”;“读命令”以及得出测试结果的“比较命令”和“测试数”。设置的写1清零寄存器对应的测试参数为:“写命令”和“1”、“读命令”以及最终得到测试结果的“比较命令”和“0”。
信息获取模块110,获取每一个被测寄存器的寄存器信息,将每一个被测寄存器的寄存器信息依次输入到测试参数产生模块120处理,这里,被测寄存器的寄存器信息包括:被测寄存器的寄存器属性、寄存器地址、寄存器名称、寄存器默认值、寄存器位宽或寄存器进制数等信息。
测试参数产生模块120,从信息获取模块110输入的被测寄存器的寄存器信息中得到寄存器属性,产生与该寄存器属性对应的测试参数产生出被测寄存器的测试参数。
执行模块130,根据测试参数产生模块130产生的被测寄存器的测试参数,对被测寄存器进行测试,得到被测寄存器的测试结果。
测试参数产生模块120包括:匹配单元121和参数产生单元122;
匹配单元121,根据预先设置的属性信息与测试参数的对应关系,匹配得到与被测寄存器的寄存器属性对应的测试参数,测试参数包括至少一组测试命令和/或测试数;即预先设置出属性与测试参数的对应关系,如前面提到的读写寄存器对应的测试参数包括:“写命令”和“测试数”;“读命令”以及得出测试结果的“比较命令”和“测试数”三组测试命令和/或测试数。
参数产生单元122,根据匹配单元121得到的与所述寄存器属性对应的被测寄存器的测试参数,依次产生至少一组测试命令和/或测试数。
本实施例中,参数产生单元122按照预先设置的策略,产生出对所述被测寄存器进行测试的测试数。预先设置的数据策略可包括四种,分别是随机数、最大值、最小值和用户输入策略,其中,随机数策略是指自产生一个随机数,进行寄存器测试;如果随机数的数值太大,根据各个寄存器信息中的位宽或根据预先设置的默认位宽进行截取,用截取后的值测试相应的寄存器;最小值策略是用寄存器的最小值也就是0进行测试;最大值策略,则是根据寄存器信息中的位宽或根据预先设置的默认位宽,计算出寄存器的最大值;用各个寄存器自身的最大值进行测试;而用户输入策略是根据用户输入的数值,进行寄存器测试;如果用户输入的数值太大,根据各个寄存器信息中的位宽或根据预先设置的默认位宽进行截取,用截取后的值测试相应的寄存器。
执行模块130包括:测试参数接口单元131和操作单元132;
测试参数接口单元131,接收来自测试参数产生模块120的测试参数;
操作单元132,根据来自测试参数接口单元131的测试参数,对被测寄存器进行测试操作,得到所述被测寄存器的测试结果。
如图1所示,操作单元132,还通过测试参数接口单元131向测试参数产生模块120返回执行完一组测试命令/测试数后得到的中间结果。
测试参数产生模块120中的参数产生单元122在接收到中间结果后,将产生出的下一组测试命令和/或测试数输入到执行模块130。
本实施例假设的是:由个人计算机(PC机)直接完成每一个被测寄存器的寄存器信息的获取过程和每一个被测寄存器的测试过程,如果获取过程和测试过程由不同的操作系统,比如,获取过程由PC机来实现而测试过程由嵌入式环境来实现,则测试参数接口单元131采用通过Usb或Uart或Jtag接口来接收来自测试参数产生模块120的测试参数,并需要将PC机上传输下来测试参数中的测试命令如“读命令”或“写命令”解释成嵌入式环境可以运行的命令,再输入到操作模块132。
系统还包括:
测试结果存储模块140,存储执行模块130得到的被测寄存器的测试结果。
测试结果显示模块180,显示执行模块130得到的被测寄存器的测试结果。
系统还包括:寄存器列表模块150;存储由所有被测寄存器组成的寄存器列表,该寄存器列表包含每一个被测寄存器的寄存器信息;
这时,信息获取模块110依次获取寄存器列表模块150中的每一个被测寄存器的寄存器信息。
当然,信息获取模块110也可以通过其它的方式获取每一个被测寄存器的寄存器信息,比如,动态输入方式。
当系统包括寄存器列表模块150时,系统还可以包括对寄存器列表模块150中的寄存器列表进行更新的更新模块160;这种更新包括删除或新增被测寄存器,或修改被测寄存器的某个寄存器信息。
系统还可以包括:测试次数设置模块170,预先设置对每一个被测寄存器的测试次数;
测试参数产生模块120,按照预先设置的测试次数,将产生出的被测寄存器的测试参数连续输入到执行模块130。比如测试次数为两次,则将产生出的被测寄存器的测试参数连续两次输入到执行模块130。
图2为本发明寄存器测试的第二个较佳实施例的方法流程示意图,下面结合流程图,给出本发明的一个具体实施例。如图2所示,具体包括以下步骤:
步骤201:设置寄存器属性与测试参数的对应关系。
本实施例,设置的寄存器属性与测试参数的对应关系与第一个实施例相同。这里不一一赘述。
步骤202:获取每一个被测寄存器的寄存器信息。
本实施例中,获取每一个被测寄存器的寄存器信息的方法是:可以通过遍历已建立的被测寄存器列表或通过动态接收的方式,获取每一个被测寄存器的寄存器信息。
本实施例中,寄存器信息包括:寄存器属性、和/或被测寄存器的寄存器地址、和/或寄存器名称、和/或寄存器默认值、和/或寄存器位宽、和/或寄存器进制数。对于每一个被测寄存器执行一次步骤203到204。
步骤203:从寄存器信息中提取寄存器属性,产生与所述寄存器属性对应的测试参数。
本实施例中,产生与所述寄存器属性对应的包括:根据预先设置的寄存器属性与测试参数的对应关系,匹配得到与被测寄存器的寄存器属性对应的测试参数,所述测试参数包括至少一组测试命令和/或测试数;产生与属性信息对应的至少一组测试命令和/或测试数。针对被测寄存器的测试参数可以由至少一组测试数和/或测试命令组成,比如,对于写1清零寄存器,产生出的针对被测寄存器的测试参数为“写命令”和“1”、“读命令”以及最终得到测试结果的“比较命令”和“0”。
步骤204:利用产生的针对被测寄存器的测试参数,对被测寄存器进行测试。
本实施例中,由软件程序实现对被测寄存器的测试时,利用产生的针对被测寄存器的测试参数,对被测寄存器进行测试的方法是:按照产生的测试参数,依此调用相应的测试命令执行程序,调用测试命令执行程序的入口参数包括被测寄存器的地址信息,从能够实现对某个确定被测寄存器进行测试,当测试参数包括测试数时,调用测试命令执行程序的入口参数中还包括测试数,最后,由最后一个测试命令执行程序的运行结果,得到被测寄存器的测试结果。
图3为本发明寄存器测试的第三个较佳实施例的方法流程示意图,如图3所示,具体包括以下步骤:
步骤300:设置寄存器属性与测试参数的对应关系。
本实施例中给出6种寄存器属性分别是:读写寄存器、只写寄存器、读清零寄存器、写清零寄存器、写1清零寄存器和写0清零寄存器。
步骤301:预先建立寄存器列表。
本实施例中,寄存器列表是由所有被测寄存器的寄存器信息构成的。
步骤302:读取寄存器列表中的一个被测寄存器的寄存器信息。
步骤303:产生测试参数,按照测试参数对被测寄存器进行测试。
本实施例中,步骤303是根据被测寄存器的寄存器属性匹配出对应的测试参数,并按照测试参数对被测寄存器进行测试的过程,本实施例中给出以上6种属性具体测试过程。
当被测寄存器的寄存器属性为读写时,先将产生出的测试数,用“写命令”写入被测寄存器,然后,用“读命令”读出被测寄存器的值,最后,用“比较命令”比较读出的值是否等于测试数,如果等于,则测试结果为“工作正常”,否则为“工作不正常”。
当被测寄存器的寄存器属性为只写时,先将产生出的测试数,用“写命令”写入被测寄存器,然后,用“读命令”读出被测寄存器的值,最后,用“比较命令”比较读出的值是否等于0,如果等于,则测试结果为“工作正常”,否则为“工作不正常”。
当被测寄存器的寄存器属性为读清零时,连续产生两个“读命令”,最后,用“比较命令”判断最后一个读出的值是否等于0,如果等于,则测试结果为“工作正常”,否则为“工作不正常”。
当被测寄存器的寄存器属性为写清零时,先将产生出的测试数,用“写命令”写入被测寄存器,然后,用“读命令”读出被测寄存器的值,最后,用“比较命令”比较读出的值是否等于0,如果等于,则测试结果为“工作正常”,否则为“工作不正常”。
当被测寄存器的寄存器属性为写1清零时,先将数值“1”,用“写命令”写入被测寄存器,然后,用“读命令”读出被测寄存器的值,最后,用“比较命令”比较读出的值是否等于0,如果等于,则测试结果为“工作正常”,否则为“工作不正常”。
当被测寄存器的寄存器属性为写0清零时,先将数值“0”,用“写命令”写入被测寄存器,然后,用“读命令”读出被测寄存器的值,最后,用“比较命令”比较读出的值是否等于0,如果等于,则测试结果为“工作正常”,否则为“工作不正常”。
可以看出,对应不同的寄存器属性,对被测寄存器进行测试的测试参数是不同的,有的测试参数包括测试数,有的不包括测试数,有的即使包括测试数,也不需要产生测试数。本实施例假设需要产生测试数,并按照预先设置的数据策略,产生出测试数后,还判断产生出的测试数是否小于位宽,如果是,执行测试过程,否则,先按照位宽截取产生的测试数后,再执行测试过程。这里,位宽是指寄存器所占位数,当测试数超过该位数时,需要对其进行截取,否则是无效的测试数,位宽可以是1位、2位、8位和16位等。
步骤304:存储被测寄存器的测试结果。
步骤305:判断是否所有寄存器均被测试完,如果是,执行步骤302,否则执行步骤306。
本实施例中,判断是否所有寄存器均被测试完,就是判断是否遍历完寄存器列表中的所有寄存器,如果是,重新执行步骤302,否则,执行步骤308。。
步骤306:输出并显示测试结果。
本实施例在被测寄存器的测试结果为“工作不正常”时,通过显示测试结果,提醒测试者进行相应处理。
本实施例的步骤303中,还可以根据预先设置的测试次数,利用产生的测试参数重复执行测试操作,以便能够得到更为可靠的测试结果。
本实施例中,还可以在步骤303前,增加判断是否存储了被测寄存器的测试结果的步骤,如果存储了被测寄存器的测试结果,并且测试结果为“工作正常”,可以不进行测试。
以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (13)

1、一种实现寄存器测试的系统,其特征在于,该系统包括:
设置模块,用于设置寄存器属性与测试参数的对应关系;
信息获取模块,用于获取每一个被测寄存器的寄存器信息,所述寄存器信息包括寄存器属性;
测试参数产生模块,用于从所述信息获取模块获取的寄存器信息中得到寄存器属性,产生与所述寄存器属性对应的测试参数;
执行模块,用于利用所述测试参数产生模块产生的测试参数,对所述被测寄存器进行测试,得到被测寄存器的测试结果;
所述测试参数产生模块包括:匹配单元和参数产生单元;
所述匹配单元,用于根据预先设置的寄存器属性与测试参数的对应关系,匹配得到与所述被测寄存器的寄存器属性对应的测试参数,所述测试参数包括至少一组测试命令和/或测试数;
所述参数产生单元,用于根据匹配单元得到的所述测试参数产生出每一组测试命令,和/或根据匹配单元得到的所述测试参数按照预先设置的策略产生出每一组测试数,依次输入到执行模块;
其中,所述预先设置的策略包括四种,分别为随机数、最大值、最小值和用户输入策略;
所述随机数策略是指自产生一个随机数,进行寄存器测试;若随机数的数值太大,根据各个寄存器信息中的位宽或根据预先设置的默认位宽进行截取,用截取后的值测试相应的寄存器;
所述最小值策略为用寄存器的最小值0进行测试;
所述最大值策略包括:根据寄存器信息中的位宽或预先设置的默认位宽计算出寄存器的最大值,用各个寄存器自身的最大值进行测试;
所述用户输入策略是根据用户输入的数值,进行寄存器测试;若用户输入的数值太大,根据各个寄存器信息中的位宽或根据预先设置的默认位宽进行截取,用截取后的值测试相应的寄存器。
2、根据权利要求1所述的系统,其特征在于,所述执行模块包括:测试参数接口单元和操作单元;
所述测试参数接口单元,用于接收来自测试参数产生模块的测试参数;
所述操作单元,用于利用来自所述测试参数接口单元的测试参数,对被测寄存器进行测试操作,得到所述被测寄存器的测试结果。
3、根据权利要求2所述的系统,其特征在于,所述测试参数包括至少一组测试命令和/或测试数;
所述执行模块,进一步用于将执行完一组测试命令/测试数后得到的中间结果返回给所述测试参数产生模块;
所述测试参数产生模块在接收到所述中间结果后,将产生出的下一组测试命令和/或测试数输入到执行模块。
4、根据权利要求1所述的系统,其特征在于,所述系统进一步包括:测试结果存储模块;
所述测试结果存储模块,用于存储所述执行模块得到的所述被测寄存器的测试结果。
5、根据权利要求1或4所述的系统,其特征在于,所述系统进一步包括:寄存器列表模块;
所述寄存器列表模块,用于存储由所有被测寄存器的寄存器信息组成的寄存器列表;
所述信息获取模块,依次读取所述寄存器列表中每一个被测寄存器的寄存器信息。
6、根据权利要求5所述的系统,其特征在于,所述系统进一步包括:更新模块;
所述更新模块,用于对所述寄存器列表模块中的寄存器列表进行更新。
7、根据权利要求1所述的系统,其特征在于,所述系统进一步包括:测试次数设置模块;
所述测试次数设置模块,用于预先设置对每一个被测寄存器的测试次数;
所述测试参数产生模块,按照预先设置的测试次数,将产生出的被测寄存器的测试参数连续输入到执行模块。
8、根据权利要求1所述的系统,其特征在于,所述系统进一步包括:测试结果显示模块;
所述测试结果显示模块,用于显示所述执行模块得到的所述被测寄存器的测试结果。
9、一种寄存器测试的方法,其特征在于,该方法包括:
设置寄存器属性与测试参数的对应关系,获取每一个被测寄存器的寄存器信息,所述寄存器信息包括寄存器属性;从寄存器信息中提取寄存器属性,产生与所述寄存器属性对应的测试参数;利用产生的所述测试参数,对所述被测寄存器进行测试,得到被测寄存器的测试结果;
所述产生被测寄存器的测试参数包括:根据预先设置的寄存器属性与测试参数的对应关系,匹配得到与被测寄存器的寄存器属性对应的测试参数,所述测试参数包括至少一组测试命令和/或测试数;根据匹配得到的与被测寄存器属性对应的测试参数产生与所述属性信息对应的每一组测试命令,和/或根据匹配得到的与被测寄存器属性对应的测试参数按照预先设置的策略产生与所述属性信息对应的每一组测试数;
其中,所述预先设置的策略包括四种,分别为随机数、最大值、最小值和用户输入策略;
所述随机数策略是指自产生一个随机数,进行寄存器测试;若随机数的数值太大,根据各个寄存器信息中的位宽或根据预先设置的默认位宽进行截取,用截取后的值测试相应的寄存器;
所述最小值策略为用寄存器的最小值0进行测试;
所述最大值策略包括:根据寄存器信息中的位宽或预先设置的默认位宽计算出寄存器的最大值,用各个寄存器自身的最大值进行测试;
所述用户输入策略是根据用户输入的数值,进行寄存器测试;若用户输入的数值太大,根据各个寄存器信息中的位宽或根据预先设置的默认位宽进行截取,用截取后的值测试相应的寄存器。
10、根据权利要求9所述的方法,其特征在于,在所述方法之前,进一步包括:建立由所有被测寄存器的寄存器信息构成的寄存器列表;
所述获取每一个被测寄存器的寄存器信息包括:遍历所述寄存器列表,依次获取所述寄存器列表中的每一个被测寄存器的寄存器信息。
11、根据权利要求9所述的方法,其特征在于,所述方法之后进一步包括:存储所述被测寄存器的测试结果。
12、根据权利要求9所述的方法,其特征在于,所述方法之后进一步包括:显示所述被测寄存器的测试结果。
13、根据权利要求9所述的方法,其特征在于,所述方法在从寄存器信息中提取寄存器属性之前进一步包括:判断是否存储所述被测寄存器的测试结果,在没有存储所述被测寄存器的测试结果时或存储的所述被测寄存器的测试结果为“工作不正常”时,执行所述从寄存器信息中提取寄存器属性的步骤。
CN200710175434A 2007-09-29 2007-09-29 一种寄存器测试的方法和系统 Expired - Fee Related CN100578674C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200710175434A CN100578674C (zh) 2007-09-29 2007-09-29 一种寄存器测试的方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200710175434A CN100578674C (zh) 2007-09-29 2007-09-29 一种寄存器测试的方法和系统

Publications (2)

Publication Number Publication Date
CN101131875A CN101131875A (zh) 2008-02-27
CN100578674C true CN100578674C (zh) 2010-01-06

Family

ID=39129091

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200710175434A Expired - Fee Related CN100578674C (zh) 2007-09-29 2007-09-29 一种寄存器测试的方法和系统

Country Status (1)

Country Link
CN (1) CN100578674C (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102360325B (zh) * 2011-09-26 2017-06-23 青岛海信电器股份有限公司 寄存器调试方法及装置
CN104317704A (zh) * 2014-09-30 2015-01-28 中国电子科技集团公司第四十一研究所 一种生产线自动测试系统的测量软件集成方法
CN106873573A (zh) * 2017-02-20 2017-06-20 郑州云海信息技术有限公司 一种嵌入式控制芯片全功能覆盖的自动测试方法和装置
CN108062267B (zh) * 2017-11-24 2021-07-09 中国人民解放军国防科技大学 一种可配置寄存器文件自测试方法及生成装置
CN109344082B (zh) * 2018-11-01 2021-10-12 郑州云海信息技术有限公司 一种自动测试寄存器的方法与系统
CN109361567B (zh) * 2018-11-14 2020-09-15 北京中电华大电子设计有限责任公司 一种测试批次产品uart通讯兼容性的方法及装置
CN109444716B (zh) * 2018-11-27 2021-08-10 中科曙光信息产业成都有限公司 一种具有定位功能的扫描测试结构及方法
CN109918256A (zh) * 2019-03-11 2019-06-21 中电海康无锡科技有限公司 一种寄存器测试方法及系统
CN112905396B (zh) * 2019-11-19 2023-08-25 杭州海康威视数字技术股份有限公司 信息显示方法、装置及设备、存储介质
CN111781488B (zh) * 2020-06-24 2023-04-07 芯佰微电子(北京)有限公司 芯片与芯片测试系统

Also Published As

Publication number Publication date
CN101131875A (zh) 2008-02-27

Similar Documents

Publication Publication Date Title
CN100578674C (zh) 一种寄存器测试的方法和系统
CN100495479C (zh) 基于在线可编程逻辑器件的单片机教学实验装置
US7150006B2 (en) Techniques for managed code debugging
CN100565472C (zh) 一种适用于多处理器核系统芯片的调试方法
CN101446918B (zh) 一种实现用户态调试器调试单个函数的方法及系统
US6047123A (en) Methods for recording a compilable graphics call trace
CN100541445C (zh) 一种程序调测系统及方法
CN107239392B (zh) 一种测试方法、装置、终端及存储介质
CN101354675B (zh) 一种嵌入式软件动态内存检测的方法
CN115237599B (zh) 一种渲染任务处理方法和装置
CN102073480B (zh) 基于时分复用实现多核处理器内核模拟的方法
CN103092759A (zh) 一种嵌入式环境下的代码动态性能剖析器
US7577557B2 (en) Simulator and simulation method for behaviors of processors
CN102110045B (zh) 实时显示调试信息的仿真器
US20110295789A1 (en) Context-Sensitive Dynamic Bloat Detection System
US7110934B2 (en) Analysis of the performance of a portion of a data processing system
CN101650688B (zh) 一种访问vm_io地址空间的方法和用户态调试器
CN103631936A (zh) 一种管理共享内存的方法
US11409617B2 (en) Hardware bit-vector techniques
CN107632950B (zh) 处理器芯片仿真器
CN101430656B (zh) 特别模块寄存器的读写方法
CN100403318C (zh) 简化图形组件的系统及其方法
KR102523329B1 (ko) 전력 개선을 위해 소프트웨어 소스 코드 변경하고 성능 개선 요소를 시각적으로 가시화하여 표시하는 방법
CN100383798C (zh) 一种对随机存储器封装文件进行仿真的仿真平台及方法
CN107291423A (zh) 构建运行环境的方法和装置

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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100106

Termination date: 20120929