当前位置: 首页 > 专利查询>浙江大学专利>正文

一种面向硬件语言代码的通用测试系统和方法技术方案

技术编号:33962537 阅读:17 留言:0更新日期:2022-06-30 00:49
本发明专利技术公开了一种面向硬件语言代码的通用测试系统和方法,包括FPGA开发板和控制器;所述FPGA开发板包括测试输入激励模块、被测试模块、测试输出检测模块、测试同步模块以及测试数据采样模块;被测试模块获取用户通过被测试模块、或者和可调用辅助模块编写能够实现测试应用场景的硬件语言代码;在测试同步模块的标签同步下,以及测试输入激励模块和测试输出检测模块在标签的控制下,对被测试模块的硬件语言代码进行运行和监控以实现测试过程,输出测试结果和测试进度至控制器;控制器依据测试结果和测试进度判断测试是否通过,并输出最终测试结果。该系统和方法实现了硬件语言代码的高效且通用测试。高效且通用测试。

【技术实现步骤摘要】
一种面向硬件语言代码的通用测试系统和方法


[0001]本专利技术属于程序代码测试领域,具体涉及一种面向硬件语言代码的通用测试系统和方法。

技术介绍

[0002]对代码进行测试是软硬件开发过程的必要过程。目前已有的针对软件语言的在线评测平台较多,例如浙江大学的PAT(Programming Ability Test,LeetCode刷题网站,牛客网招聘刷题网站等,这些在线评测平台能够提供对C/C++、Java、Python,JavaScript等多种软件语言软件执行测试。
[0003]目前已有针对硬件编程语言(硬件语言)的在线评测平台有Jutge,HDLbit等,提供对于Verilog语言的软件仿真验证,并且只能验证规模较小的电路,且没有物理验证。目前已有很多远程FPGA实验平台的实现方法,例如:公开号为CN111666685A提供的轻量级服务器搭建的远程FPGA实验平台、公开号为CN111427839A提供的一种Intel Soc FPGA远程在线配置和调试方法,或者公开号为CN111445364A提供的专门为教学而设计的FPGA云实验室平台,这些公开的技术方案无法提供符合一定规范的测试模式。
[0004]目前已有针对硬件语言的在线测试平台,都能下载到FPGA开发板自动进行特定代码测试。目前已有的远程FPGA平台很少用于学生特定工程问题的代码的评测,有一些已有的远程FPGA教学平台,能够对课程内的实验进行简单的自动评测,但是不能对实际生产中遇到的问题提供测试方案,但是不能进行很好的扩展,即可能只有特定实验能够评测。例如国科大的FPGA可扩展的云实验平台ZyCube,其中每个云节点都由ARM处理器和紧密耦合的可重构结构组成,能够为学生提供动手操作硬件和软件编程体验,但是无法对学生的实验结果进行自动评价,老师对每个学生的代码进行检查和运行是一个工作量很大的任务。
[0005]现有的远程FPGA实验平台,例如江苏大学的WeLab远程实验平台。具有优秀的实验操作界面,但是其主要目的是让学生理解计算机组成的原理,系统中有很多预先设定好的硬件电路实验,用户可以点击下载然后通过虚拟面板观察实验现象。可以对系统中已经设计好的CPU进行编程,观察数据变化情况。但是学生进行自主的硬件设计存在限制,从而在一定程度上无法验证自己的硬件代码。
[0006]现有的硬件代码物理真机测试的方法与软件代码测试的方法相比较为复杂,需要综合考虑硬件与软件的协同设计、软硬件交互、不同设备间同步和数据通信等等问题,并且往往具有专用性,即一套测试方案只能针对某种特定任务的芯片,缺少灵活性和可重用性。
[0007]现有的硬件模块测试最常用的方法是软件仿真,但是仿真通过后在真机上执行代码未必能够通过,即使在保证物理开发板没有硬件问题的前提下,也存在物理时序上的问题,例如硬件代码如果需要对物理外设进行调用(如读取存储器中的数据),仅仅通过软件仿真未必能够完全模拟物理设备的所有细节。

技术实现思路

[0008]鉴于上述,本专利技术的目的是提供一种面向硬件语言代码的通用测试系统和方法,实现硬件语言代码的高效且通用测试。
[0009]为实现上述专利技术目的,实施例提供了一种面向硬件语言代码的通用测试系统,包括FPGA开发板和控制器;所述FPGA开发板包括测试输入激励模块、被测试模块、测试输出检测模块、测试同步模块以及测试数据采样模块;
[0010]所述测试输入激励模块用于根据测试应用场景输出时钟信号、输入控制信号、测试输入数据至被测试模块;
[0011]所述被测试模块用于被用户设计,得到设计的硬件语言代码,并基于时钟信号、输入控制信号以及测试输入数据对硬件语言代码进行测试,输出测试状态、输出控制信号以及测试输出数据至测试输出检测模块;
[0012]所述输出检测模块用于对测试输出数据和正确输出数据进行比对,将比对结果作为测试结果输出至控制器,同时分析测试状态以得到测试进度并输出至控制器;
[0013]所述测试同步模块用于对测试输入数据和测试输出数据进行同步标记,便于数据的管控和数据的比对;
[0014]所述测试数据采样模块用于采样测试输入数据、测试输出数据以及对应的正确输出数据,并形成测试数据输出至控制器;
[0015]所述控制器用于对FPGA开发板实现硬件语言代码的测试过程进行控制,还用于根据接收的测试结果和测试进度判断测试是否通过,并输出最终测试结果。
[0016]在一个实施例中,所述测试同步模块通过测试标签对当前时刻输入的测试输入数据、和对应的测试输出数据进行同步标记,以将测试输入数据与对应的测试输出数据对应起来;
[0017]所述测试同步模块通过下一组标签对下一时刻输入的测试输入数据和对应的测试输出数据进行同步标记,以将测试输入数据与对应的测试输出数据对应起来。
[0018]在一个实施例中,所述测试输入激励模块用于在当前时刻生成测试标签,在当前时刻将测试输入数据输入至被测试模块时,将测试标签输出至测试同步模块;
[0019]所述测试同步模块用于将接收的测试标签转发至测试输出检测模块;
[0020]所述测试输出检测模块用于利用接收的测试标签对测试输入数据经过硬件语言代码执行计算得到的测试输出数据进行标记,还用于在当前时刻的测试输入数据测试结束后,生成下一时刻的下一组标签并发送至测试同步模块;
[0021]所述测试同步模块还用于将接收的下一组标签转发至测试输入激励模块;
[0022]所述测试输入激励模块用于根据接收的下一组标签对下一时刻的测试输入数据进行标记。
[0023]在一个实施例中,所述测试输入激励模块还用于根据测试需求对时钟信号和输入控制信号进行分频和延时处理,处理后的时钟信号和输入控制信号输入至被测试模块。
[0024]在一个实施例中,所述FPGA开发板还包括多个可调用辅助模块,单个可调用辅助模块具有单一辅助功能或提供FPGA开发板的适配所需文件,以辅助被测试模块实现硬件语言代码的编写。
[0025]在一个实施例中,所述FPGA开发板还包括复位模块,所述复位模块用于受所述控
制器控制输出复位信号,所述复位信号包括系统复位信号、待测复位信号以及计时复位信号;其中,系统复位信号用于控制通用测试系统的执行测试功能的开始,待测复位信号用于控制测试例的测试开始,计时复位信号用于控制计时的开始。
[0026]在一个实施例中,所述FPGA开发板还包括时钟模块,所述时钟模块用于为测试过程提供多种频率的时钟信号,以驱动测试顺利进行。
[0027]为实现上述专利技术目的,实施例还提供了一种面向硬件语言代码的通用测试方法,所述通用测试方法采用上述通用测试系统,包括以下步骤:
[0028]被测试模块获取用户通过被测试模块、或者和可调用辅助模块编写能够实现测试应用场景的硬件语言代码;
[0029]控制器在接到测试任务后,将可执行文件烧录到FPGA开发板,并控制复位模块输出复位信号以开始测试;
[0本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种面向硬件语言代码的通用测试系统,其特征在于,包括FPGA开发板和控制器;所述FPGA开发板包括测试输入激励模块、被测试模块、测试输出检测模块、测试同步模块以及测试数据采样模块;所述测试输入激励模块用于根据测试应用场景输出时钟信号、输入控制信号、测试输入数据至被测试模块;所述被测试模块用于被用户设计,得到设计的硬件语言代码,并基于时钟信号、输入控制信号以及测试输入数据对硬件语言代码进行测试,输出测试状态、输出控制信号以及测试输出数据至测试输出检测模块;所述输出检测模块用于对测试输出数据和正确输出数据进行比对,将比对结果作为测试结果输出至控制器,同时分析测试状态以得到测试进度并输出至控制器;所述测试同步模块用于对测试输入数据和测试输出数据进行同步标记,便于数据的管控和数据的比对;所述测试数据采样模块用于采样测试输入数据、测试输出数据以及对应的正确输出数据,并形成测试数据输出至控制器;所述控制器用于对FPGA开发板实现硬件语言代码的测试过程进行控制,还用于根据接收的测试结果和测试进度判断测试是否通过,并输出最终测试结果。2.根据权利要求1所述的面向硬件语言代码的通用测试系统,其特征在于,所述测试同步模块通过测试标签对当前时刻输入的测试输入数据、和对应的测试输出数据进行同步标记,以将测试输入数据与对应的测试输出数据对应起来;所述测试同步模块通过下一组标签对下一时刻输入的测试输入数据和对应的测试输出数据进行同步标记,以将测试输入数据与对应的测试输出数据对应起来。3.根据权利要求2所述的面向硬件语言代码的通用测试系统,其特征在于,所述测试输入激励模块用于在当前时刻生成测试标签,在当前时刻将测试输入数据输入至被测试模块时,将测试标签输出至测试同步模块;所述测试同步模块用于将接收的测试标签转发至测试输出检测模块;所述测试输出检测模块用于利用接收的测试标签对测试输入数据经过硬件语言代码执行计算得到的测试输出数据进行标记,还用于在当前时刻的测试输入数据测试结束后,生成下一时刻的下一组标签并发送至测试同步模块;所述测试同步模块还用于将接收的下一组标签转发至测试输入激励模块;...

【专利技术属性】
技术研发人员:陈文智魏成坤施青松刘剑文王淼王总辉
申请(专利权)人:浙江大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1