CN104063321A - 一种针对MicroBlaze软核程序的测试验证系统及测试验证方法 - Google Patents

一种针对MicroBlaze软核程序的测试验证系统及测试验证方法 Download PDF

Info

Publication number
CN104063321A
CN104063321A CN201410302903.5A CN201410302903A CN104063321A CN 104063321 A CN104063321 A CN 104063321A CN 201410302903 A CN201410302903 A CN 201410302903A CN 104063321 A CN104063321 A CN 104063321A
Authority
CN
China
Prior art keywords
microblaze
soft core
coverage rate
module
program
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.)
Granted
Application number
CN201410302903.5A
Other languages
English (en)
Other versions
CN104063321B (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.)
Beijing Institute of Control Engineering
Original Assignee
Beijing Institute of Control Engineering
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 Beijing Institute of Control Engineering filed Critical Beijing Institute of Control Engineering
Priority to CN201410302903.5A priority Critical patent/CN104063321B/zh
Publication of CN104063321A publication Critical patent/CN104063321A/zh
Application granted granted Critical
Publication of CN104063321B publication Critical patent/CN104063321B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

一种针对MicroBlaze软核程序的测试验证系统,其特征在于包括:MicroBlaze仿真平台模块、软核执行流监视记录模块、目标码分析模块和覆盖率统计分析模块。本发明实现了FPGA逻辑代码、MicroBlaze软核以及软核程序的集成运行,并且可以获得软核程序运行的覆盖率信息,满足了软核程序测试验证充分性的要求。

Description

一种针对MicroBlaze软核程序的测试验证系统及测试验证方法
技术领域
本发明涉及一种针对MicroBlaze软核程序的测试验证系统及测试验证方法,主要应用于航天器软件测试与FPGA验证过程中,属于软件测试技术领域。
背景技术
在航天器星上电子产品中,为了满足小型化、低功耗等要求,部分电子产品采用了基于FPGA的MicroBlaze软核处理器设计技术,通过FPGA硬件逻辑以及软核处理器中的软件代码,共同实现所需的功能。由于这种软硬件紧密结合的特点,对其进行测试和验证的方法,既不同于传统的软件也不同于普通的FPGA验证。特别是针对基于FPGA软核运行的程序,传统的测试方法中,往往采用在真实目标设备上进行动态测试的方式,采用这种方式主要存在以下不足:(1)动态运行时无法收集软核程序执行的覆盖率信息,没有办法通过覆盖率分析,保证动态测试的充分性;(2)因目标平台的限制,动态测试时一些激励条件无法产生,难以对故障情况、边界情况、小概率事件等情况进行模拟和动态测试,测试充分性无法保证。
随着星上电子产品复杂程度的提高,软件程序和硬件逻辑也变得更加复杂,对软件测试的充分性也提出了更高的要求,部分型号已经提出针对重要软件的动态测试,必须给出目标码覆盖率的要求。传统MicroBlaze软件程序测试方法已经无法满足航天产品研制的可靠性要求。
发明内容
本发明解决的技术问题是:克服现有技术的不足,提出了一种针对MicroBlaze软核程序的测试验证系统及测试验证方法,实现了FPGA逻辑代码、MicroBlaze软核以及软核程序的集成运行,并且可以获得软核程序运行的覆盖率信息,满足了软核程序测试验证充分性的要求。
本发明的技术解决方案是:一种针对MicroBlaze软核程序的测试验证系统,如图1所示,其特征在于包括:MicroBlaze仿真平台模块、软核执行流监视记录模块、目标码分析模块和覆盖率统计分析模块等模块。其中:
MicroBlaze仿真平台模块,实现MicroBlaze软核处理器在EDA环境下的仿真运行;该模块通过加载软核目标程序的机器码,实现软核程序的仿真运行,并将运行结果与外围其他逻辑进行交互,实现FPGA逻辑代码、MicroBlaze软核以及软核程序的集成运行;同时该模块还包含外围其他逻辑的仿真模型和测试用例模块,实现整个被测软件运行的模拟平台,并向软核执行流监视记录模块输出执行信息,供软核执行流监视记录模块实现执行流的监视、分析和记录;
软核执行流监视记录模块,根据MicroBlaze仿真平台模块输出执行信息,对软核程序执行情况进行分析,实现真正指令执行序列的监视和记录;该模块接收来自MicroBlaze仿真平台模块的执行信息,所述执行信息包括软核工作时钟、PC指针、指令有效标志和跳转标志;根据指令有效标志和跳转标志,识别出当前执行的指令地址和分支跳转情况,实现执行流的监视、分析和记录。仿真测试时重复执行上述过程直至用例执行结束,生成覆盖率文件。;
目标码分析模块,通过对软核目标程序进行分析,实现覆盖率信息的反标;该模块加载软核目标程序文件以及软核执行流监视记录模块输出的覆盖率文件,通过对目标程序进行格式分析,识别出各条指令以及各分支指令,并将覆盖率文件中的覆盖率信息在目标程序上进行反标;在进行覆盖率反标时,还可以将多个测试用例执行后输出的覆盖率文件进行合并,将合并后的总覆盖率信息,全部反标到对应目标程序上,实现多个测试用例对应覆盖率结果的统一分析;反标覆盖率后的数据,将输出给覆盖率分析模块进行后续的覆盖率分析;
覆盖率分析模块,实现覆盖率指标的分析,统计软核程序执行的语句覆盖率、分支覆盖率指标;该模块接收目标码分析模块输出的数据,通过统计其中的语句总数和分支总数,并根据反标后的覆盖率信息,分析执行过的语句数以及真假分支执行情况,最终向用户输出语句覆盖率和分支覆盖率指标,其中语句覆盖率指标和分支覆盖率指标的计算公式如下:
语句覆盖率=已执行语句数/可执行语句总数*100%
分支覆盖率=(已执行真分支数+已执行假分支数)/(真分支总数+假分支总数)*100%。
所述MicroBlaze仿真平台模块的具体实现步骤如下:
(1)首先需要编译MicroBlaze处理器的仿真模型,根据所用的EDA仿真软件,编译MicroBlaze处理器的仿真模型,以及MicroBlaze软核处理器所用到的外围接口模块;
(2)完成MicroBlaze处理器的仿真模型构建后,还需要编译将被测试的软核程序,得到软核程序的目标程序,导出目标程序中的指令机器码数据,并将指令机器码数据转换为MicroBlaze处理器仿真模型所需的内存初始化文件形式;编译软核程序时,将调试选项打开,以增强用户后续进行覆盖率分析的可读性;
(3)最后编写外围其他逻辑的仿真模型和测试用例模块,构建整个MicroBlaze仿真平台模块,提供工作时钟信号,实现MicroBlaze仿真模块平台的运行。仿真运行过程中,向软核执行流监视记录模块输出软核程序的执行信息。
所述软核执行流监视记录模块具体实现步骤如下:
(1)接收MicroBlaze仿真平台模块输出执行信息,;
(2)当执行信息中的指令有效信号为有效时,记录执行信息中的当前PC指针,并将对应的地址标记为已经执行过;
(3)对于分支跳转情况的处理,通过识别执行信息中的跳转发生信号,当跳转发生信号有效时,标记为真分支已经执行过,否则标记为假分支已经执行过;
(4)重复执行上述步骤(2)和步骤(3),直至当前测试用例执行结束;
(5)将上述标记的指令执行情况和分支执行情况作为覆盖率文件输出,输出覆盖率文件时,记录软核程序的名称和版本,用于后续合并时的比对。
本发明针对MicroBlaze软核程序的测试验证方法,实现步骤如下:
(1)利用EDA平台上的仿真软件,编译MicroBlaze仿真模型,并编译MicroBlaze软核上运行的目标程序,生成仿真文件以及程序加载文件,之后进入步骤(2);
(2)在仿真软件中,构建MicroBlaze软核的外围其他逻辑的仿真模型,提供时钟激励以及各种接口的模拟,使得整个软硬件系统可以协同运行,之后进入步骤(3);
(3)设计测试用例,实现整个MicroBlaze仿真平台模块,,利用EDA仿真软件进行动态仿真运行;
(4)在仿真运行的过程中,监视MicroBlaze仿真平台模块输出执行流信息,进行软核执行流的分析,并记录指令执行情况和分支执行情况;
(5)仿真运行中反复执行步骤(4),直至测试用例结束后,进入步骤(6);
(6)测试用例执行结束后,输出该测试用例的覆盖率文件。反复运行多个测试用例,将各测试用例输出的覆盖率文件合并,得到总覆盖率文件,并进入步骤(7);
(7)分析软核目标程序,并将总覆盖文件中的指令执行情况和指令跳转执行情况反标到目标码文件中,得到覆盖率反标结果,并进入到步骤(8);
(8)根据覆盖率反标结果,进行目标码的覆盖率分析,分析语句覆盖率、分支覆盖率指标,判断是否满足要求,如果满足要求则结束测试,否则返回步骤(3),补充设计新的测试用例;其中语句覆盖率指标和分支覆盖率指标的计算公式如下:
语句覆盖率=已执行语句数/可执行语句总数*100%
分支覆盖率=(已执行真分支数+已执行假分支数)/(真分支总数+假分支总数)*100%。
本发明与现有技术相比的有益效果是:
(1)本发明解决了传统基于目标设备进行软核动态测试中,无法获取软核目标程序执行的覆盖率信息的问题,通过构建的仿真运行环境,监测MicorBlaze仿真模型的执行信息,识别出有效指令,剔出预取队列中的无效指令,识别并记录指令执行跳转的信息,得到软件运行的真实信息,并以此进行目标码覆盖率分析。通过覆盖率指标,对测试用例设计的充分性进行检查,对于没有动态执行到的语句和跳转分支,通过增加测试用例进行补充测试,从而确保动态测试过程的充分性。
(2)本发明采用了基于EDA仿真软件,构建MicroBlaze程序的动态运行环境,各种错误情况、边界情况、小概率事件等都可以在仿真软件中进行模拟,解决了传统的基于目标设备的测试中,激励手段受限制,部分故障情况、边界条件难于生成的问题,为测试软件各种运行情况下的处理,提供了技术条件。
(3)本发明同时解决传统的FPGA设计仿真验证中,如果被测设计采用了MicorBlaze软核,仿真中往往将软核部分忽略,或者通过软核程序与外围逻辑的接口界面,模拟软核操作进行逻辑仿真的不足。本发明通过EDA平台,实现外围逻辑代码、MicroBlaze软核模型以及软核程序的集成运行,构建出包含逻辑代码和软核程序的软硬件协同运行环境,可以更加真实地实现对整个逻辑代码和软核程序的验证和测试。
(4)与传统软件测试中的指令集模拟技术相比,本发明采用基于EDA环境的仿真技术,借助于仿真模型,实现软硬件协同运行环境的构建。既解决了传统的软件指令集模拟器无法对软核外围逻辑电路进行测试的问题,又可以以更准确、更高效的方式实现程序软件与硬件逻辑代码的协调运行。并可以进一步推广应用于Altera公司的NIOS软核程序,以及基于LEON、OpenRISC等各类开源处理器的程序中。
附图说明
图1为本发明测试验证系统的组成框图;
图2为本发明测试验证方法实现流程图;
图3为本发明中的软核执行流监视记录模块进行执行流监视记录的流程图。
具体实施方式
下面结合附图对本发明的具体实施方式进行进一步的详细描述。
如图1说明了针对MicroBlaze软核程序的测试验证系统的结构原理图,其中主要包括仿真环境和覆盖率分析工具两大部分,两部分通过覆盖率文件进行衔接。仿真环境主要包括:MicroBlaze仿真平台模块软核执行流监视记录模块,其中MicroBlaze仿真平台模块又包含MicroBlaze仿真模型、外围其他逻辑和测试用例等几个部分,覆盖率分析工具主要包括目标码分析模块和覆盖率统计分析模块。其中:
MicroBlaze仿真模型,主要实现MicroBlaze软处理器核在EDA环境下的仿真运行。该模块通过加载软核目标程序的机器码,并接收仿真环境的工作时钟等信号,实现软核程序的仿真运行。在MicroBalze仿真平台模块中,通过将MicroBlaze仿真模型的运行结果与外围其他逻辑进行交互,实现外围逻辑代码、MicroBlaze软核模型以及软核目标程序程序的集成运行。同时MicroBlaze仿真平台模块还向软核执行流监视记录模块输出执行信息,供软核执行流监视记录模块实现执行流的分析、监视和记录;
软核执行流监视记录模块,该模块主要根据MicroBlaze仿真平台模块输出的执行信息,对软核程序执行情况进行分析,实现真正指令执行序列的监视和记录。该模块主要接收来自MicroBlaze仿真平台模块的执行信息,所述执行信息除软核工作时钟外,还包括当前PC指针、指令有效标志和跳转标志等。根据指令有效标志和跳转标志,识别出执行指令流和跳转情况,实现执行流的分析、监视和记录。并输出覆盖率文件给目标码分析模块,供目标码分析模块实现覆盖率反标。仿真测试时重复执行上述过程直至用例执行结束,生成覆盖率文件;
目标码分析模块,主要通过对软核目标程序进行分析,实现覆盖率文件的反标。该模块加载软核程序的目标程序以及软核执行流监视记录模块输出的覆盖率文件,通过对目标程序的格式分析,实现将覆盖率信息在目标程序上的反标,并将反标覆盖率后的数据,输出给覆盖率分析模块;
在进行覆盖率反标时,还可以将多个测试用例执行后输出的覆盖率文件进行合并,将合并后的总覆盖率信息,全部反标到对应目标程序上,实现多个测试用例对应覆盖率结果的统一分析;反标覆盖率后的数据,将输出给覆盖率分析模块进行后续的覆盖率分析;
覆盖率分析模块,主要实现覆盖率指标的分析,统计软核程序执行的语句覆盖率、分支覆盖率等指标。该模块接收目标码分析模块输出的数据,通过统计其中的语句总数和分支总数,并通过反标后的覆盖率信息,分析已执行过的语句数以及真假分支执行情况,最终向用户输出语句覆盖率和分支覆盖率等指标,其中语句覆盖率指标和分支覆盖率指标的计算公式如下:
语句覆盖率=已执行语句数/可执行语句总数*100%
分支覆盖率=(已执行真分支数+已执行假分支数)/(真分支总数+假分支总数)*100%。
针对其中的MicroBlaze仿真模型模块,具体实施方式为:
(1)根据所用的EDA仿真软件,编译MicroBlaze仿真模型,以及MicroBlaze软核所用到的外围接口模块;
(2)编译将被测试的软核程序,得到软核程序的目标程序。导出目标程序中的指令机器码数据,并将数据转换为MicroBlaze仿真模型所需的内存初始化文件形式。编译软核程序时,可以将调试选项打开,以增强用户后续进行覆盖率分析的可读性;
(3)编写外围其他逻辑的仿真模型,和测试用例模块,实现整个MicroBlaze仿真平台模块,提供工作时钟等信号,实现MicroBlaze仿真平台模块的运行;
针对其中的软核执行流监视记录模块,具体实施方式为:
(1)接收MicroBlaze仿真平台模块输出的执行信息,执行信息中具体包括工作时钟、当前的PC指针、指令有效信号和跳转发生信号;
(2)当指令有效信号为有效时,记录当前的PC指针,并在对应的地址标记为已经执行过;
(3)对于分支指令,当跳转发生信号有效时,标记为真分支已经执行过,否则标记为假分支已经执行过;
(4)重复执行上述步骤(2)和步骤(3),直至当前用例执行结束;
(5)将上述标记的指令执行情况和分支执行情况作为覆盖率文件输出,输出覆盖率文件时,记录软核目标程序的名称和版本,用于后续合并时的比对;
针对其中的目标码分析模块,具体实施方式为:
(1)加载软核程序的目标程序,按照目标程序的格式,对所有的程序指令进行解析;
(2)加载覆盖率文件,当选择多个覆盖率文件时,检查多个覆盖率文件的软核目标程序名称和版本是否一致,如有不一致则提示用户。将软核目标程序名称和版本一致的多个覆盖率文件数据按地址进行合并。并根据地址,将指令执行信息和分支执行信息进行反标;
(3)将反标覆盖率后的数据,输出给覆盖率分析模块进行覆盖率计算和分析;
针对其中的覆盖率分析模块,具体实施方式为:
(1)根据目标码分析模块的输出结果,统计被测软核程序的语句总数;
(2)根据反标后的覆盖率结果,统计已执行的语句数,计算语句覆盖率指标=已执行语句数/可执行语句总数*100%;
(3)根据目标码分析模块的输出结果,统计被测软核程序的真分支总数和假分支总数;
(4)根据反标后的覆盖率结果,统计已执行的真分支数和假分指数,计算分支覆盖率指标=(已执行真分支数+已执行假分支数)/(真分支总数+假分支总数)*100%;
(5)将反标到每个语句和每个分支上的覆盖率信息,结合语句代码,以友好的形式显示给用户,供用户进行分析。
针对MicroBlaze软核程序的测试验证方法,如图2所示,其实施步骤如下:
(1)利用EDA平台上的仿真软件,编译MicroBlaze仿真模型,并编译MicroBlaze软核上运行的目标程序,生成仿真文件以及程序加载文件,之后进入步骤(2);
(2)在仿真软件中,构建MicroBlaze软核的外围其他逻辑的仿真模型,,提供时钟激励以及各种接口的模拟,使得整个软硬件系统可以协同运行,之后进入步骤(3);
(3)设计测试用例,实现整个MicroBlaze仿真平台模块,利用EDA仿真软件进行动态仿真运行;
(4)在仿真运行的过程中,监视MicroBlaze仿真平台模块输出的执行信息,进行软核执行流的分析,并记录指令执行情况和分支执行情况;
(5)仿真运行中反复执行步骤(4),直至测试用例结束后,进入步骤(6);
(6)测试用例执行结束后,输出该测试用例的覆盖率文件。反复运行多个测试用例,将各测试用例输出的覆盖率文件合并,得到总覆盖率文件,并进入步骤(7);
(7)分析软核程序的目标程序,并将总覆盖文件中的指令执行信息和指令跳转执行情况反标到目标程序中,并进入到步骤(8);
(8)根据覆盖率反标结果,进行目标码的覆盖率分析,分析语句覆盖率、分支覆盖率等指标,判断是否满足要求,如果满足要求则可以结束测试,否则返回步骤(3),补充设计新的测试用例。
图3说明了进行软核执行流监视记录的流程图,仿真开始后,软核执行流监视记录模块监视MicroBlaze仿真平台模块输出的执行信息,在软核系统时钟的下降沿采集当前PC指针、指令有效标志和跳转标志。当指令有效标志为有效时,表示当前PC指针对应为有效指令,软核执行流监视记录模块记录PC指针对应的地址为已执行,若指令有效标志为无效,表示当前PC指针对应的指令被丢弃,软核执行流监视记录模块记录无需进行记录。对于有效指令,软核执行流监视记录模块检测跳转标志为有效时,软核执行流监视记录模块记录指令的真分支执行,否则记录假分支执行。重复上述处理,直至测试用例执行结束,即可输出当前测试用例对应的覆盖率文件。
目前已在部分在研型号卫星上使用该测试验证系统,经过测试表明,采用该方法,可以解决软核程序动态测试无法获取覆盖率信息的问题,有效地保障了软核程序测试验证的充分性。
本发明说明书中未作详细描述的内容属于本领域专业技术人员的公知技术。

Claims (4)

1.一种针对MicroBlaze软核程序的测试验证系统,其特征在于包括:MicroBlaze仿真平台模块、软核执行流监视记录模块、目标码分析模块和覆盖率统计分析模块,其中:
MicroBlaze仿真平台模块,实现MicroBlaze软核处理器在EDA环境下的仿真运行;该模块通过加载软核目标程序的机器码,实现软核程序的仿真运行,并将运行结果与外围其他逻辑进行交互,实现FPGA逻辑代码、MicroBlaze软核以及软核程序的集成运行;同时该模块还包含外围其他逻辑的仿真模型和测试用例模块,实现整个被测软件运行的模拟平台,并向软核执行流监视记录模块输出执行信息,供软核执行流监视记录模块实现执行流的监视、分析和记录;
软核执行流监视记录模块,根据MicroBlaze仿真平台模块输出执行信息,对软核程序执行情况进行分析,实现真正指令执行序列的监视和记录;该模块接收来自MicroBlaze仿真平台模块的执行信息,所述执行信息包括软核工作时钟、PC指针、指令有效标志和跳转标志;根据指令有效标志和跳转标志,识别出当前执行的指令地址和分支跳转情况,实现执行流的监视、分析和记录。仿真测试时重复执行上述过程直至用例执行结束,生成覆盖率文件;
目标码分析模块,通过对软核目标程序进行分析,实现覆盖率信息的反标;该模块加载软核目标程序文件以及软核执行流监视记录模块输出的覆盖率文件,通过对目标程序进行格式分析,识别出各条指令以及各分支指令,并将覆盖率文件中的覆盖率信息在目标程序上进行反标;在进行覆盖率反标时,还可以将多个测试用例执行后输出的覆盖率文件进行合并,将合并后的总覆盖率信息,全部反标到对应目标程序上,实现多个测试用例对应覆盖率结果的统一分析;反标覆盖率后的数据,将输出给覆盖率分析模块进行后续的覆盖率分析;
覆盖率分析模块,实现覆盖率指标的分析,统计软核程序执行的语句覆盖率、分支覆盖率指标;该模块接收目标码分析模块输出的数据,通过统计其中的语句总数和分支总数,并根据反标后的覆盖率信息,分析执行过的语句数以及真假分支执行情况,最终向用户输出语句覆盖率和分支覆盖率指标,其中语句覆盖率指标和分支覆盖率指标的计算公式如下:
语句覆盖率=已执行语句数/可执行语句总数*100%
分支覆盖率=(已执行真分支数+已执行假分支数)/(真分支总数+假分支总数)*100%。
2.根据权利要求1所述的针对MicroBlaze软核程序的测试验证系统,其特征在于:所述MicroBlaze仿真平台模块的具体实现步骤如下:
(1)首先需要编译MicroBlaze处理器的仿真模型,根据所用的EDA仿真软件,编译MicroBlaze处理器的仿真模型,以及MicroBlaze软核处理器所用到的外围接口模块;
(2)完成MicroBlaze处理器的仿真模型构建后,还需要编译将被测试的软核程序,得到软核程序的目标程序,导出目标程序中的指令机器码数据,并将指令机器码数据转换为MicroBlaze处理器仿真模型所需的内存初始化文件形式;编译软核程序时,将调试选项打开,以增强用户后续进行覆盖率分析的可读性;
(3)最后编写外围其他逻辑的仿真模型和测试用例模块,构建整个MicroBlaze仿真平台模块,提供工作时钟信号,实现MicroBlaze仿真模块平台的运行。仿真运行过程中,向软核执行流监视记录模块输出软核程序的执行信息。
3.根据权利要求1所述的针对MicroBlaze软核程序的测试验证系统,其特征在于:所述软核执行流监视记录模块具体实现步骤如下:
(1)接收MicroBlaze仿真平台模块输出执行信息,;
(2)当执行信息中的指令有效信号为有效时,记录执行信息中的当前PC指针,并将对应的地址标记为已经执行过;
(3)对于分支跳转情况的处理,通过识别执行信息中的跳转发生信号,当跳转发生信号有效时,标记为真分支已经执行过,否则标记为假分支已经执行过;
(4)重复执行上述步骤(2)和步骤(3),直至当前测试用例执行结束;
(5)将上述标记的指令执行情况和分支执行情况作为覆盖率文件输出,输出覆盖率文件时,记录软核程序的名称和版本,用于后续合并时的比对。
4.一种针对MicroBlaze软核程序的测试验证方法,实现步骤如下:
(1)利用EDA平台上的仿真软件,编译MicroBlaze仿真模型,并编译MicroBlaze软核上运行的目标程序,生成仿真文件以及程序加载文件,之后进入步骤(2);
(2)在仿真软件中,构建MicroBlaze软核的外围其他逻辑的仿真模型,提供时钟激励以及各种接口的模拟,使得整个软硬件系统可以协同运行,之后进入步骤(3);
(3)设计测试用例,实现整个MicroBlaze仿真平台模块,,利用EDA仿真软件进行动态仿真运行;
(4)在仿真运行的过程中,监视MicroBlaze仿真平台模块输出执行流信息,进行软核执行流的分析,并记录指令执行情况和分支执行情况;
(5)仿真运行中反复执行步骤(4),直至测试用例结束后,进入步骤(6);
(6)测试用例执行结束后,输出该测试用例的覆盖率文件。反复运行多个测试用例,将各测试用例输出的覆盖率文件合并,得到总覆盖率文件,并进入步骤(7);
(7)分析软核目标程序,并将总覆盖文件中的指令执行情况和指令跳转执行情况反标到目标码文件中,得到覆盖率反标结果,并进入到步骤(8);
(8)根据覆盖率反标结果,进行目标码的覆盖率分析,分析语句覆盖率、分支覆盖率指标,判断是否满足要求,如果满足要求则结束测试,否则返回步骤(3),补充设计新的测试用例;其中语句覆盖率指标和分支覆盖率指标的计算公式如下:
语句覆盖率=已执行语句数/可执行语句总数*100%
分支覆盖率=(已执行真分支数+已执行假分支数)/(真分支总数+假分支总数)*100%。
CN201410302903.5A 2014-06-27 2014-06-27 一种针对MicroBlaze软核程序的测试验证系统及测试验证方法 Active CN104063321B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410302903.5A CN104063321B (zh) 2014-06-27 2014-06-27 一种针对MicroBlaze软核程序的测试验证系统及测试验证方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410302903.5A CN104063321B (zh) 2014-06-27 2014-06-27 一种针对MicroBlaze软核程序的测试验证系统及测试验证方法

Publications (2)

Publication Number Publication Date
CN104063321A true CN104063321A (zh) 2014-09-24
CN104063321B CN104063321B (zh) 2017-06-13

Family

ID=51551043

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410302903.5A Active CN104063321B (zh) 2014-06-27 2014-06-27 一种针对MicroBlaze软核程序的测试验证系统及测试验证方法

Country Status (1)

Country Link
CN (1) CN104063321B (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105005645A (zh) * 2015-06-30 2015-10-28 浪潮(北京)电子信息产业有限公司 一种覆盖率的统计方法及装置
CN106326124A (zh) * 2016-08-25 2017-01-11 网易(杭州)网络有限公司 覆盖率检测方法、装置和设备
CN106326120A (zh) * 2016-08-22 2017-01-11 北京金山安全软件有限公司 一种应用软件的回归测试方法及装置、电子设备
CN107145381A (zh) * 2017-04-05 2017-09-08 同济大学 面向实践教学的mips‑cpu测试工具
CN108959079A (zh) * 2018-06-27 2018-12-07 郑州云海信息技术有限公司 一种以自动化测试为主导的软件敏捷开发方法及系统
CN109791398A (zh) * 2017-06-27 2019-05-21 三菱电机株式会社 调试装置
CN111522264A (zh) * 2020-04-02 2020-08-11 青岛海尔科技有限公司 设备的控制方法及装置、存储介质、电子装置
CN111813672A (zh) * 2020-07-03 2020-10-23 北京计算机技术及应用研究所 一种针对多种处理器架构的非侵入式覆盖率统计方法
CN112799942A (zh) * 2021-01-28 2021-05-14 上海航天计算机技术研究所 基于Keil C51的软件源码和目标码覆盖率分析方法和系统
CN113139359A (zh) * 2021-03-29 2021-07-20 西安润道智检科技有限公司 基于fpga内嵌处理器的虚拟仿真测试方法
CN113157574A (zh) * 2021-04-19 2021-07-23 上海湃星信息科技有限公司 一种软件实物测试覆盖率收集方法及装置、电子设备
CN115562465A (zh) * 2022-09-14 2023-01-03 中国科学院空间应用工程与技术中心 一种fpga系统中软核处理器的复位方法和系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100095274A1 (en) * 2008-10-10 2010-04-15 American Express Travel Related Services Company, Inc. System, Computer Program, and Method for a Static Code Coverage Analyzer for Computer Programs
CN102135928A (zh) * 2011-03-30 2011-07-27 武汉大学 基于lut级演化硬件的三模异构冗余容错方法
CN103473159A (zh) * 2013-10-13 2013-12-25 西安电子科技大学 基于动态重构的fpga配置信息翻转测试平台及测试方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100095274A1 (en) * 2008-10-10 2010-04-15 American Express Travel Related Services Company, Inc. System, Computer Program, and Method for a Static Code Coverage Analyzer for Computer Programs
CN102135928A (zh) * 2011-03-30 2011-07-27 武汉大学 基于lut级演化硬件的三模异构冗余容错方法
CN103473159A (zh) * 2013-10-13 2013-12-25 西安电子科技大学 基于动态重构的fpga配置信息翻转测试平台及测试方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
李炜: "基于MicroBlaze的FPGA重配置系统设计", 《科学技术与工程》 *

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105005645B (zh) * 2015-06-30 2018-10-02 浪潮(北京)电子信息产业有限公司 一种覆盖率的统计方法及装置
CN105005645A (zh) * 2015-06-30 2015-10-28 浪潮(北京)电子信息产业有限公司 一种覆盖率的统计方法及装置
CN106326120A (zh) * 2016-08-22 2017-01-11 北京金山安全软件有限公司 一种应用软件的回归测试方法及装置、电子设备
CN106326124A (zh) * 2016-08-25 2017-01-11 网易(杭州)网络有限公司 覆盖率检测方法、装置和设备
CN107145381A (zh) * 2017-04-05 2017-09-08 同济大学 面向实践教学的mips‑cpu测试工具
CN109791398A (zh) * 2017-06-27 2019-05-21 三菱电机株式会社 调试装置
CN109791398B (zh) * 2017-06-27 2020-12-18 三菱电机株式会社 调试装置
CN108959079A (zh) * 2018-06-27 2018-12-07 郑州云海信息技术有限公司 一种以自动化测试为主导的软件敏捷开发方法及系统
CN111522264B (zh) * 2020-04-02 2024-01-23 青岛海尔科技有限公司 设备的控制方法及装置、存储介质、电子装置
CN111522264A (zh) * 2020-04-02 2020-08-11 青岛海尔科技有限公司 设备的控制方法及装置、存储介质、电子装置
CN111813672A (zh) * 2020-07-03 2020-10-23 北京计算机技术及应用研究所 一种针对多种处理器架构的非侵入式覆盖率统计方法
CN111813672B (zh) * 2020-07-03 2022-07-08 北京计算机技术及应用研究所 一种针对多种处理器架构的非侵入式覆盖率统计方法
CN112799942B (zh) * 2021-01-28 2023-08-22 上海航天计算机技术研究所 基于Keil C51的软件源码和目标码覆盖率分析方法和系统
CN112799942A (zh) * 2021-01-28 2021-05-14 上海航天计算机技术研究所 基于Keil C51的软件源码和目标码覆盖率分析方法和系统
CN113139359A (zh) * 2021-03-29 2021-07-20 西安润道智检科技有限公司 基于fpga内嵌处理器的虚拟仿真测试方法
CN113139359B (zh) * 2021-03-29 2023-09-08 西安润道智检科技有限公司 基于fpga内嵌处理器的虚拟仿真测试方法
CN113157574A (zh) * 2021-04-19 2021-07-23 上海湃星信息科技有限公司 一种软件实物测试覆盖率收集方法及装置、电子设备
CN115562465A (zh) * 2022-09-14 2023-01-03 中国科学院空间应用工程与技术中心 一种fpga系统中软核处理器的复位方法和系统

Also Published As

Publication number Publication date
CN104063321B (zh) 2017-06-13

Similar Documents

Publication Publication Date Title
CN104063321A (zh) 一种针对MicroBlaze软核程序的测试验证系统及测试验证方法
CN105302950B (zh) 一种软、硬件协同的可编程逻辑器件交联仿真测试方法
Chen et al. Challenges and trends in modern SoC design verification
Park et al. Post-silicon bug localization in processors using instruction footprint recording and analysis (IFRA)
US11726899B2 (en) Waveform based reconstruction for emulation
CN104750603A (zh) 一种多核dsp软件仿真器及其物理层软件测试方法
CN105279345B (zh) 一种航天器用数字软ip核评测方法
US20190278884A1 (en) Methodology To Create Constraints And Leverage Formal Coverage Analyzer To Achieve Faster Code Coverage Closure For An Electronic Structure
CN103605556A (zh) 虚拟试验对象一体化构建系统及方法
WO2024045436A1 (zh) 图形化高层次综合电路性能分析方法、系统、装置及介质
CN105893707B (zh) 一种soc芯片模块验证和功耗分析方法
CN106777529A (zh) 基于fpga的集成电路抗故障注入攻击能力评估方法
CN104050069B (zh) 一种基于Mars评判Verilog实现MIPS处理器正确性的自动化测试方法
US9626468B2 (en) Assertion extraction from design and its signal traces
CN106528414A (zh) 处理器芯片仿真器
Biancolin et al. Accessible, FPGA resource-optimized simulation of multiclock systems in firesim
Hazott et al. DSA monitoring framework for HW/SW partitioning of application kernels leveraging VPs
CN112559359A (zh) 一种基于s2ml的安全攸关系统分析与验证方法
Mammo Reining in the functional verification of complex processor designs with automation, prioritization, and approximation
CN102426335B (zh) Dsp器件测试图形向量的自动生成方法
CN105912380A (zh) 一种EDIF网表文件转Protel网表文件的方法
CN106529043A (zh) 基于计算机软件系统对电路进行分模块综合设计的方法
Beltrame et al. A framework for reliability assessment and enhancement in multi-processor systems-on-chip
Hu et al. System verifacation based on VMM and SOPC
Chukhman et al. Instrumentation-driven model detection for dataflow graphs

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant