CN202110531U - 一种基于网络传输的处理器协同验证平台 - Google Patents
一种基于网络传输的处理器协同验证平台 Download PDFInfo
- Publication number
- CN202110531U CN202110531U CN201120120037XU CN201120120037U CN202110531U CN 202110531 U CN202110531 U CN 202110531U CN 201120120037X U CN201120120037X U CN 201120120037XU CN 201120120037 U CN201120120037 U CN 201120120037U CN 202110531 U CN202110531 U CN 202110531U
- Authority
- CN
- China
- Prior art keywords
- hardware
- test
- software
- program
- model
- 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 - Lifetime
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本实用新型公开了一种基于网络传输的处理器协同验证平台,基于网络传输的处理器协同验证平台由硬件实现程序、软件实现程序和硬件实现程序与软件实现程序之间的网络通信三个部分组成;硬件实现程序包括测试激励、硬件设计模型、硬件模拟模型和一台安装Linux操作系统的工作站;软件实现程序包括软件仿真器和一台安装Linux操作系统的工作站,利用软件仿真器对硬件进行模拟,在软件级对硬件设计进行进一步的验证;硬件实现程序与软件实现程序之间的网络通信,采用基于TCP/IP协议实现测试的同步性控制和文件传输,用于在上述两台工作站进行协同测试。能够详细/准确的定位错误和差异,验证准确率高;验证通过网络方式进行,便捷易行。
Description
技术领域
本实用新型涉及一种基于网络传输的处理器协同验证平台,属于处理器的功能验证和评测技术领域。
背景技术
在处理器的设计流程中,验证是一项很重要而且耗时耗力的工作。处理器的验证包括两个过程:功能验证和时序验证,功能验证有模拟验证、形式化验证和FPGA原型验证等几种方法,其中模拟验证是最基本的方法,验证过程使用最广泛,在处理器系统验证阶段起着非常重要的作用。在硬件RTL代码编写过程中,就需要对设计的逻辑性的正确性及各项性能指标进行验证,硬件设计完成后需要系统的进行功能验证以检验设计的正确性及其性能指标。
处理器硬件设计的逻辑功能和性能指标主要依赖于硬件设计人员利用硬件描述语言编写的代码质量。伴随处理器复杂度的不断上升,处理器验证工作的复杂度和工作量呈现指数上升,对验证的依赖与要求也越来越高。作为设计过程的一部分,验证起着越来越关键的作用,验证的工作量也是相对比较大,占据到整个工作设计工作量的70%左右,验证的效率和可靠性往往决定了项目的成败。
传统的功能验证方法是利用已有的软件模拟器模拟硬件设计(见图1),验证RTL代码的正确性,即分别将同一个测试激励分别在软件仿真器和硬件(RTL级)设计模型中运行,然后比较两者的运行结果,并由测试人员人工对运算结果进行比较分析,查找RTL代码中的错误并进行修改,修改后再重新进行模拟测试。软件仿真的思想是,在处理器设计验证时应用或开发软件仿真器,模拟硬件方面的功能设计,对硬件设计进行验证和测试。应用或开发软件仿真器,测试人员不需要关心底层的电路设计,只需要关心硬件设计本身逻辑层面的正确性和性能,适宜于硬件设计功能验证的自动化。
利用传统的功能验证方法,验证人员需要面对的问题有:(1)测试激励由人工编写,而每次人工编写的测试激励其功能覆盖率都不高,难以满足功能验证的需要,如要遍历所有激励输入及其可能的组合情况,达到完全的验证覆盖率,工作量非常大,也难以实现;(2)验证流程是利用软件仿真器运行结果检验RTL代码模型运行结果,由测试人员从运行结果中比较和分析,但RTL代码模型运行过程和软件仿真过程漫长,需要等待很长的时间才能看到结果并进行分析,RTL代码量以及运行结果的波形文件都比较大,依据人工分析、检查显 然不能满足验证的需求;(3)随着测试的深入,一般比较常见的设计错误已经排查,但仍然会有很多人们不易察觉的错误未能检测出,这需要反复、大量的测试以遍历到所有的情况,以确保硬件设计对任何可能的激励输入及其组合都产生合理的输出,,验证周期非常长;(4)验证依赖于软件模拟器,在软件模拟不是自行开发或源码不开放时,不能提取或跟踪软件模拟器的执行信息,难以确保软件行为的准确性及正确性,从而难以确保验证本身的正确性及其有效性。另外,还需要验证人员对RTL代码和软件仿真都非常的熟悉,才能分析出错误具体的原因,因而,传统方法费时费力且效率不高,这些都需要人们应用效率更高的验证方法。
发明内容:
本实用新型所要解决的技术问题是:提供一种能够实现自动化验证,提高测试可靠性和准确性以及测试效率高、覆盖范围广的基于网络传输的处理器协同验证平台及其测试方法。
其技术方案是:
一种基于网络传输的处理器协同验证平台,其特征在于:由硬件实现程序、软件实现程序和硬件实现程序与软件实现程序之间的网络通信三个部分组成;硬件实现程序包括测试激励、硬件设计模型、硬件模拟模型和一台安装Linux操作系统的工作站,测试激励用于产生测试激励,硬件设计模型用于在寄存器传输级Register Transfer Level,RTL进行建模,硬件模拟模型用于对硬件设计进行初级验证,硬件设计模型和硬件模拟模型硬件遵照相同的设计方案,对相同激励能够具有相同的响应;软件实现程序包括软件仿真器和一台安装Linux操作系统的工作站,软件仿真器用于仿真硬件设计功能,产生仿真结果并对硬件设计进行进一步的验证;硬件实现程序与软件实现程序之间的网络通信,采用基于TCP/IP协议实现测试的同步性控制和文件传输,用于在上述两台工作站进行协同测试。
所述基于TCP/IP协议实现测试的同步性控制和文件传输,是以UDP报文实现测试的同步控制,以TCP方式实现测试文件的自动传输和读取,其具体实现方式为:
第一步:测试开始,软件实现程序执行程序利用UDP报文发起测试请求,硬件部分收到UDP报文后,返回确认信号后启动测试(Req1/Ack1);
第二步:测试启动后,硬件部分以随机方式产生测试激励,并进一步生成对应的内存映像文件(.img1),以UDP报文与软件实现程序建立链接(Req2/Ack2),通过TCP方式将测试激励文件及内存映像文件传输到软件实现程序,并存放于程序指定的路径下;
第三步:软件实现程序读取硬件实现程序生成的测试激励文件及内存映像文件,进行汇编、编译和链接处理,生成软件仿真器需要的可加载文件(.out)及硬件需要的内存映像文件 (.img2),并与硬件实现程序生成的内存映像文件比较,以检查硬件设计/模拟模型及软件仿真是否加载相同的测试激励;
第四步:硬件实现程序以TCP方式加载第三步比较一致后的内存映像文件(.img2),分别生成硬件设计(RTL代码)结果和硬件模拟结果;
第五步:硬件设计模型和硬件模拟模型结果生成后,硬件程序通过UDP报文与软件实现程序来进行第三次链接(Req3/Ack3),将结果文件以TCP方式传输给软件实现程序,并存放于程序指定的路径下;
第六步:协同验证平台将软、硬件结果比较结束后,在软件实现程序和硬件程序之间产生一对UDP结束请求、应答信号(Req4/Ack4),并结束本轮测试,启动下轮测试。
其技术效果:本实用新型的协同验证平台及其测试方法,充分运用于自行研制的DSP芯片BWDSP100功能验证工作,验证结果显示在功能验证结果正确的情况下覆盖率能达到99.75%,完全能够满足处理器功能验证的需要。在验证过程中,完全不需要人工监控和干预,减少了大量验证时间和验证工作量,有效提高了验证工作效率。
1、本实用新型测试激励由程序生成,测试激励依据约束规则随机组合,测试工作即可由统一的协同验证平台自动完成,大大减少了验证人员工作量,提高了工作效率,经过批量测试后可尽可能接近设定的功能覆盖率。
2、本实用新型准确性高,本实用新型通过硬件模拟模型和软件仿真分别在硬件级和软件级两个层次对硬件设计进行验证,能够全面准确的检测出硬件设计RTL代码的错误。
3、本实用新型验证覆盖范围广,本协同验证平台及其测试方法的测试激励采用随机方式产生,支持批量测试,能够完成数据量非常大的测试,能够遍历到硬件设计中指令组合的各种方式,可系统全面的实现功能验证。
4、本实用新型验证效率更高,协同的验证平台是一个完整的软件程序,程序运行后自动进行功能验证,验证人员只需要检查验证程序生成结果,依据结果修改硬件设计的错误,不需要关心硬件设计/模拟模型和软件仿真器的内部执行信息,不需要查看硬件运行波形文件及软件模拟器的执行信息,减少了验证时间和验证人员的工作量。
5、适用范围广,本实用新型不仅可适用用于不同需求的处理器功能验证,也适用于后端仿真验证,并支持软件仿真器运算结果的正确性检测等。
附图说明
图1是传统的功能验证方法流程图。
图2是本实用新型的验证平台的结构图。
图3是本实用新型的测试流程图。
图4是通信流程图。
图5测试结果文件的比较、分析示意图。
具体实施方式
如图2所示,一种基于网络传输的处理器协同验证平台,由硬件实现程序、软件实现程序和硬件实现程序与软件实现程序之间的网络通信三个部分组成。
硬件实现程序包括测试激励、硬件设计模型、硬件模拟模型和一台安装Linux操作系统的工作站。测试激励由汇编指令按照一定的约束规则进行随机组合形成,处理器的汇编指令预先编辑在指令函数库中,约束规则利用硬件描述语言将其编辑成通用约束函数库,不同的硬件模块其约束也不相同。例如,移位器和乘法器的验证指令形式及组合方式即不相同。产生激励的方法是,每次测试启动后,硬件实现程序从函数库中随机抽取指令和约束,并以随机方式产生测试激励,作为硬件设计/模拟模型和软件仿真器的测试激励,每个测试激励里面包含的汇编指令及其组合形式因随机性都不尽相同。硬件设计模型用Verilog硬件描述语言生成,在寄存器传输级(Register Transfer Level,RTL)进行建模,Verilog是一种硬件描述语言和C语言语法相似,可以将硬件设计在非常抽象的层次上加以描述,该描述可以转换为任何制造工艺下的电路,例如,设计人员可以在不考虑具体制造工艺的情况下,对设计做寄存器传输级(RTL)的描述;寄存器传输级是利用Verilog语言描述硬件物理电路的一种抽象层次。硬件模拟模型用C++语言模拟硬件设计进行建模。两个模型遵照相同的设计方案,对相同激励能够具有相同的响应,若响应不同,则必有一者出错,以此对硬件设计RTL代码的正确性进行初级验证。汇编测试激励生成后,同时生成相应的二进制形式的内存映像文件(.img1),以网络形式传输给软件执行程序。硬件设计和模拟模型加载内存映像文件后分别生成相应的结果文件,由软件实现程序对两种模型的结果文件进行第一次比较,在硬件级验证硬件设计的正确性。
软件实现程序包括软件仿真器和一台安装Linux操作系统的工作站。软件实现程序依据输入的参数配置测试环境,是利用软件仿真器对硬件进行模拟,以在软件级对硬件设计进行进一步的验证。软件模拟器被打包成.so库文件后植入协同验证平台软件实现程序以被调用,软件仿真器内部实现了所有处理器指令功能,可自行开发或利用已有的软件模拟器。汇编测试激励生成后,软件实现程序编译调用编译工具对汇编测试激励进行编译和链接,分别编译生成软件可加载文件(.out)和硬件模型可加载内存映像文件(.img2),并同硬件实现程序的内存映像文件进行比较,以检测测试中的测试激励是否相同。软/硬件模型加载内存映像 文件后分别生成各自结果文件后,由软件实现程序自动完成硬件设计模型结果文件与硬件模拟模型及软件仿真器比较和分析,并将分析结果写入日记文件。
硬件实现程序与软件实现程序之间的网络通信,即软件仿真器与硬件设计/模拟模型之间的文件传输与数据通信,采用基于TCP/IP协议的网络传输方式,用于在上述两台工作站进行协同测试,通信基于TCP/IP协议实现测试的同步性控制和文件传输,以UDP报文实现测试的同步控制,以TCP方式实现测试文件的自动传输和读取,每轮测试包含四次以UDP报文实现的同步控制信号,及三次以TCP方式实现的文件传输回合。
上述基于TCP/IP协议实现测试的同步性控制和文件传输,以UDP报文实现测试的同步控制,以TCP方式实现测试文件的自动传输和读取,其具体实现方式(见图4)为:第一步:测试开始,软件实现程序执行程序利用UDP报文发起测试请求,硬件部分收到UDP报文后,返回确认信号后启动测试(Req1/Ack1);
第二步:测试启动后,硬件部分以随机方式产生测试激励,并进一步生成对应的内存映像文件(.img1),以UDP报文与软件实现程序建立链接(Req2/Ack2),通过TCP方式将测试激励文件及内存映像文件传输到软件实现程序,并存放于程序指定的路径下;
第三步:软件实现程序读取硬件实现程序生成的测试激励文件及内存映像文件,进行汇编、编译和链接处理,生成软件仿真器需要的可加载文件(.out)及硬件需要的内存映像文件(.img2),并与硬件实现程序生成的内存映像文件比较,以检查硬件设计/模拟模型及软件仿真是否加载相同的测试激励;
第四步:硬件实现程序以TCP方式加载第三步比较一致后的内存映像文件(.img2),分别生成硬件设计(RTL代码)结果和硬件模拟结果;
第五步:硬件设计模型和硬件模拟模型结果生成后,硬件程序通过UDP报文与软件实现程序来进行第三次链接(Req3/Ack3),将结果文件以TCP方式传输给软件实现程序,并存放于程序指定的路径下;
第六步:协同验证平台将软、硬件结果比较结束后,在软件实现程序和硬件程序之间产生一对UDP结束请求、应答信号(Req4/Ack4),并结束本轮测试,启动下轮测试。
如图3所示,基于网络传输的处理器协同验证平台测试方法,在Linux操作系统工作站的测试环境下,其测试步骤是:
第一步:测试开始,执行软件实现程序依据提示分别输入两个参数:参数1设置每次测试过程验证平台自动完成的测试轮数,参数2设置通信双方的端口号;并依据参数设置测试环境,自行建立三个级别文件存放目录以保存所有测试文件信息。其中,‘…/test’为测试一 级目录,存放所有测试文件子目录,在测试开始创建一次,并不重复创建,‘…/test/time/’以系统当前时间命名,存放一次测试产生的子目录及文件,在测试开始时创建,‘…/test/time/i/’用于存放第i轮测试产生的所有文件,每一轮测试创建一次,‘…/’表示协同验证平台程序所在的当前目录;
第二步:执行硬件实现程序,产生测试激励,并生成对应的内存映像文件(.img1)。测试激励由汇编指令按照一定的约束随机形成,汇编指令的及约束由程序从指令函数库即约束函数库中以随机方式抽取,测试激励的指令组合形式由指令按照约束规则随机组合,并生成对应的二进制内存映像文件(.img1);
第三步:软件实现程序以TCP方式读取测试激励,编译生成软件仿真器可加载的激励文件(.out),并进一步生成硬件设计/模拟模型需要的内存映像文件(.img2)并与硬件实现程序生成的内存映像文件进行比较,以确保每轮测试中硬件设计/模拟和软件仿真加载的是同一个测试激励;
第四步:比较硬件实现程序和软件实现程序分别生成的内存映像文件,以确保每一轮验证都是硬件设计/模拟和软件仿真加载相同的测试激励。内存映像文件比较不一致时,比较结果写入日记文件,结束本轮测试,比较结果一致时,运行软件仿真器,产生仿真结果;
第五步:硬件设计/模拟模型通过以TCP方式读取/加载内存映像文件(.img2),分别生成硬件设计模型结果和硬件模拟模型结果,保存在第一步描述的当前测试目录‘…/test/time/i/’下;
第六步:比较分析硬件设计模型结果和硬件模拟模型结果,并将分析结果写入日记文件(…/test/time/i/log.txt),本次比较实现硬件设计模型结果和硬件模拟模型进行相互验证,以验证RTL代码的正确性;
第七步:输出比较分析硬件设计模型运行结果和软件仿真结果(见图5),
并将分析结果写入日记文件(…/test/time/i/log.txt),本次比较实现软件级验证RTL代码的正确性;
第八步:软件实现程序查询每一轮测试差异结果文件,以文本形式(…/test/time/dirlog.txt)记录存在差异的测试文件所在目录,删除结果正确的目录及文件,统计覆盖率,在每一次结束后将功能验证覆盖率写入日记文件,并开始下一次测试。
Claims (1)
1.一种基于网络传输的处理器协同验证平台,其特征在于:由硬件实现程序、软件实现程序和硬件实现程序与软件实现程序之间的网络通信三个部分组成;
硬件实现程序包括测试激励、硬件设计模型、硬件模拟模型和一台安装Linux操作系统的工作站,测试激励用于产生测试激励,硬件设计模型用于在寄存器传输级Register TransferLevel,RTL进行建模,硬件模拟模型用于对硬件设计进行初级验证,硬件设计模型和硬件模拟模型硬件遵照相同的设计方案,对相同激励能够具有相同的响应;
软件实现程序包括软件仿真器和一台安装Linux操作系统的工作站,软件仿真器用于仿真硬件设计功能,产生仿真结果并对硬件设计进行进一步的验证;
硬件实现程序与软件实现程序之间的网络通信,采用基于TCP/IP协议实现测试的同步性控制和文件传输,用于在上述两台工作站进行协同测试。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201120120037XU CN202110531U (zh) | 2011-04-22 | 2011-04-22 | 一种基于网络传输的处理器协同验证平台 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201120120037XU CN202110531U (zh) | 2011-04-22 | 2011-04-22 | 一种基于网络传输的处理器协同验证平台 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN202110531U true CN202110531U (zh) | 2012-01-11 |
Family
ID=45435976
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201120120037XU Expired - Lifetime CN202110531U (zh) | 2011-04-22 | 2011-04-22 | 一种基于网络传输的处理器协同验证平台 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN202110531U (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102147760A (zh) * | 2011-04-22 | 2011-08-10 | 中国电子科技集团公司第三十八研究所 | 一种基于网络传输的处理器协同验证平台及其测试方法 |
CN106777665A (zh) * | 2016-12-07 | 2017-05-31 | 盛科网络(苏州)有限公司 | 提高协同仿真平台验证效率的方法及系统 |
-
2011
- 2011-04-22 CN CN201120120037XU patent/CN202110531U/zh not_active Expired - Lifetime
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102147760A (zh) * | 2011-04-22 | 2011-08-10 | 中国电子科技集团公司第三十八研究所 | 一种基于网络传输的处理器协同验证平台及其测试方法 |
CN106777665A (zh) * | 2016-12-07 | 2017-05-31 | 盛科网络(苏州)有限公司 | 提高协同仿真平台验证效率的方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102147760A (zh) | 一种基于网络传输的处理器协同验证平台及其测试方法 | |
CN106371813B (zh) | 一种基于Simulink的电动汽车电机控制器软件生成方法 | |
CN102141962B (zh) | 一种安全性分布式测试框架系统及其测试方法 | |
CN103577324B (zh) | 移动应用中隐私信息泄露的静态检测方法 | |
CN107783758B (zh) | 一种智能合约工程方法 | |
CN111694741A (zh) | 一种基于路径深度覆盖的测试用例设计方法 | |
CN112417798B (zh) | 一种时序测试方法、装置、电子设备及存储介质 | |
CN102624476B (zh) | 一种基于模型检测的无线传感器网络时间同步检验方法 | |
CN109299530A (zh) | 一种仿真测试案例生成方法、系统、存储介质和终端 | |
CN106446341A (zh) | 一种基于进程代数的实时协议分析及验证系统 | |
CN202110531U (zh) | 一种基于网络传输的处理器协同验证平台 | |
CN103455672B (zh) | 一种fpga仿真测试用例自动化回归方法 | |
CN104216703A (zh) | 嵌入式软件系统程序的开发方法 | |
CN108984945A (zh) | 基于多核心联合仿真被验证设计的仿真验证平台 | |
CN116467211B (zh) | 一种基于数字化仿真环境的系统级测试验证方法 | |
CN114692539A (zh) | 一种soc芯片验证架构并行验证的实现方法 | |
CN103017815A (zh) | 一种可视化的通用测试系统及测试方法 | |
CN103970653A (zh) | 一种传感器网软件可达性验证方法 | |
Godoy et al. | WebShawn, simulating wireless sensors networks from the web | |
CN102565685B (zh) | 逻辑内建自测试系统 | |
CN106100920A (zh) | 一种网络互连芯片的可复用模型验证方法 | |
JP2011154568A (ja) | 情報処理装置、プログラム検証方法およびプログラム | |
CN103970652B (zh) | 基于有界模型检验的无线传感网软件代码验证方法 | |
Maharaj et al. | A survey of formal methods applied to leader election in IEEE 1394 | |
CN104811259A (zh) | 一种卫星通信频偏验证方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20191106 Address after: 5 / F, airborne center, 38 new area, No. 199, Xiangzhang Avenue, hi tech Zone, Hefei City, Anhui Province 230000 Patentee after: Anhui core Century Technology Co., Ltd. Address before: 230088, 199, camphor Road, hi tech Zone, Anhui, Hefei Patentee before: No.38 Inst., China Electronic Sci. & Tech. Group Co. |
|
CX01 | Expiry of patent term | ||
CX01 | Expiry of patent term |
Granted publication date: 20120111 |