一种基于Verilog的判题装置、方法及系统与流程

文档序号:15560657发布日期:2018-09-29 02:10阅读:122来源:国知局

本发明涉及信息技术领域,特别是一种基于verilog的判题装置、方法及系统。



背景技术:

目前,多数学校的计算机相关专业都开发了自己的在线测评系统,例如c/c++、java、python等语言的在线练习评判系统,大多采用后台沙盒运行学生提交代码,然后根据程序输出,同数据库中正确答案相对比,得出结论。

然而对于电子或通信等领域的学生,大部分都会学习数字系统设计课程,都会用到verilog/vhdl语言,verilog广义上讲也是编程语言的一种,用来设计电路,但是由于其输出不仅有文本文件,还有波形文件,所以并不能使用上述c、java等语言的判题系统。

现在的教学环境中使用,普遍的情况还是学生的编程作业通过ftp,email等方式提交给老师,由老师直接对程序以及程序的相关文档进行批改和打分,大批量的作业修改对老师来说是一件费时费力且容易出错的重复劳动,而且学生收到老师的反馈也不及时。



技术实现要素:

为解决上述问题,本发明的目的在于提供一种基于verilog的判题装置、方法及系统,可以对verilog的编程作业自动进行批改。

本发明解决其问题所采用的技术方案是:

一种基于verilog的判题装置,包括用于接收用户的verilog答案信息的录入模块、用于对用户的verilog答案信息进行仿真处理的处理模块、预设参数的判定模块以及将判定结果传输到用户的输出模块,所述录入模块将接收的verilog答案信息传输到处理模块,处理模块对verilog答案信息进行处理后传输到判定模块,判定模块根据预设参数对处理后的verilog答案信息进行判定后通过输出模块输出。

进一步,所述处理模块包括用于检测verilog答案信息的文件类型是否符合格式要求的检测反馈模块,当检测反馈模块检测到verilog答案信息的文件类型不符合格式要求时,将检测结果通过输出模块输出到用户。

进一步,所述处理模块还包括用于对verilog答案信息进行仿真的仿真模块,所述仿真模块与检测反馈模块连接,当检测反馈模块检测到verilog答案信息的文件类型符合格式要求时,将verilog答案信息传输到仿真模块,经仿真模块进行处理后传输到判定模块进行判定。

进一步,所述处理模块还包括用于将仿真结果进行转换的转换模块,所述转换模块将转换的结果传输到判定模块,由判定模块对转换的结果进行判定,并通过输出模块输出到用户。

一种基于verilog的判题方法,包括以下步骤:

a、接收verilog答案信息;

b、利用仿真工具对verilog答案信息进行仿真,生成仿真结果,其中仿真结果包括程序执行结果、代码错误信息以及波形信息;

c、对波形信息进行转换得到转换后的信息;

d、根据预设的参数对程序执行结果以及转换后的信息进行判定,得到判定结果;

e、输出结果。

进一步,所述步骤a接收verilog答案信息,其中verilog答案信息包括题目信息、verilog代码以及测试用例。

进一步,所述步骤a在接收verilog答案信息后,检测verilog答案信息的文件类型是否符合格式要求,若不符合,进入步骤e,若符合,进入步骤b。

进一步,所述步骤b中,利用开源仿真工具icarusverilog对verilog答案信息进行编译仿真得到仿真结果。

进一步,所述步骤c中,采用脚本程序将波形信息转换成字符串信息。

进一步,所述步骤c中,采用开源软件或者html5中的canvas技术将波形信息转换成图片信息。

进一步,所述步骤d根据预设的参数对程序执行结果以及转换后的信息进行判定,其中预设的参数为预先设置好的测试用例。

一种基于verilog的判题系统,包括:

浏览器,用于供用户录入verilog答案信息;

处理器,用于对verilog答案信息进行处理;

寄存器,用于存储处理器可执行的指令;

所述处理器根据寄存器的指令执行以下步骤:

利用仿真工具对verilog答案信息进行仿真,生成仿真结果,其中仿真结果包括程序执行结果、代码错误信息以及波形信息;

对波形信息进行转换得到转换后的信息;

根据预设的参数对程序执行结果以及转换后的信息进行判定,得到判定结果;

输出结果。

本发明的有益效果是:本发明采用的一种基于verilog的判题装置,包括录入模块、处理模块、判定模块以及输出模块,可以对用户输入的verilog答案信息进行仿真处理,并根据预设的参数对处理后的结果进行判定,然后通过输出模块将判定结果输出到用户,可以实现对verilog硬件语言作业的自动判题,减少教师的工作量;

本发明采用的一种基于verilog的判题方法,可以对verilog答案信息进行自动判题,并且还可以检测verilog答案信息的格式要求,同时还能对仿真结果中的波形信息进行转换,从而将对波形信息的对比转换成其他形式的信息的对比,方便判题,可以减少教师的工作量;

本发明采用的一种基于verilog的判题系统,用户可以通过浏览器上传verilog答案信息,然后处理器会对verilog答案信息进行仿真、转换以及判定后得到判定结果,然后将结果输出到用户,可以实现对verilog答案信息的自动判题。

附图说明

下面结合附图和实例对本发明作进一步说明。

图1是本发明一种基于verilog的判题装置的原理框图;

图2是本发明一种基于verilog的判题方法的流程图;

图3是本发明一种基于verilog的判题系统的原理框图。

具体实施方式

参照图1,本发明的一种基于verilog的判题装置,包括录入模块1、处理模块2、判定模块3以及输出模块4,本发明的判题装置,针对的是硬件编程语言verilog的判题,可以对用户输入的verilog答案信息进行自动判题,并将判题的结果反馈到用户,用户可以根据结果对自己的答案信息进行修改,并可以重新上传答案信息,通过本发明的判题装置,可以减少教师的工作量,同时还可以使学生不断的测试修改自己的程序,锻炼学生的编程能力。

本发明首先通过录入模块1接收用户的verilog答案信息,然后将verilog答案信息传输到处理模块2中,由处理模块2对verilog答案信息进行仿真处理,并将处理后的结果传输到判定模块3中,判定模块3内置有预设参数,将预设参数与处理模块2处理后的结果进行比较判定,从而可以得到判定的结果,该结果即为整个自动判题过程的最终结果,然后通过输出模块4将最终的结果输出到用户,用户即可以根据结果对自己的程序进行修改并再次上传答案信息,相比于传统的手动判题,大大的缩短了判题的时间,减少了教师的工作量,同时也对学生的学习起到了一定的帮助。

为了防止用户上传的答案信息有误,在处理模块2内先设置了一个检测反馈模块21,录入模块1录入的用户的verilog答案信息首先经过检测反馈模块21,检测反馈模块21用于检测verilog答案信息的文件类型是否符合格式要求,当检测反馈模块21检测到verilog答案信息的文件类型不符合格式要求时,将检测结果通过输出模块4输出到用户,用户根据输出结果修改其verilog答案信息的类型、文件大小等,通过设置检测反馈模块21可以确保学生上传的verilog答案信息的文件类型是正确的,可以减少对不符合格式要求的verilog答案信息进行不必要的计算。

处理模块2还包括仿真模块22和转换模块23,当检测反馈模块21检测到verilog答案信息的文件类型符合格式要求时,将verilog答案信息传输到仿真模块22,由仿真模块22对verilog答案信息进行仿真,仿真后得到仿真结果,仿真结果包括程序执行结果、代码错误信息或可能存在的波形信息,程序执行结果直接输出到判定模块3中用于进行后续的判定,而代码错误信息则会通过输出模块4输出到用户,提醒用户代码有错误,需进行修改,而波形信息由于其复杂性较难于判定,所以波形信息会先经过转换模块23进行转换,转换成容易判定的信息之后在传输到判定模块3中,由判定模块3进行最终的判定。

参照图2,本发明的一种基于verilog的判题方法,包括以下步骤:

a、接收verilog答案信息;

b、利用仿真工具对verilog答案信息进行仿真,生成仿真结果,其中仿真结果包括程序执行结果、代码错误信息以及波形信息;

c、对波形信息进行转换得到转换后的信息;

d、根据预设的参数对程序执行结果以及转换后的信息进行判定,得到判定结果;

e、输出结果。

具体地,在步骤a接收verilog答案信息中,由于需要对答案信息进行一个完整的判定,所以所录入的verilog答案信息应该至少包括题目信息、verilog代码以及相关测试用例等。

例如,假设一道题目为“使用verilog语言实现半加器”,该题目包括四个测试用例,其中第1个-第4个测试用例分别为计算0+1、1+1、1+0、0+0的值,则答案信息包括可运行的输入代码以及预设的测试用例测试代码等。

具体地,在步骤a接收verilog答案信息后,需要对verilog答案信息的文件类型进行检测,以防止verilog答案信息的文件类型不符合格式要求,可以减少不必要的运算,在进行检测时,主要检测verilog答案信息的文件类型以及大小是否符合格式要求,同时教师可以通过对参数进行设置,具体设置为编程作业的类型、文件大小或者是程序的行数等等,当学生提交的答案信息不符合规范,可以减少不必要的计算,同时也可以使学生得到提交的作业是否正确的反馈,便于学生对不正确的作业进行及时的修改,减少学生交错误程序的概率。

若检测到verilog答案信息的文件类型不符合格式要求,则直接将结果输出,提示用户对verilog答案信息进行修改,若检测到verilog答案信息的文件类型符合格式要求,则进入步骤b中进行后续的判题。

具体地,在步骤b中,利用开源仿真工具icarusverilog对录入的verilog答案信息进行编译仿真得到仿真结果,具体设计时,也可以采用其他仿真工具来代替icarusverilog。

由于波形信息不便于进行判定,所以本发明对波形信息进行转换得到便于判定的信息类型之后在进行判定,可以提高判题的正确率,并且也可以提高效率,在步骤c对仿真结果中的波形信息进行转换得到转换后的信息中,一般将波形信息转换成图片或者文字两种易于识别判定的信息,本发明着重于将波形信息转换成图片或者文字,但不局限于图片和文字。

将波形信息转换成字符串信息的方法是:使用脚本程序(例如javascript)将vcd格式的波形信息文件处理成json格式的数据,该json数据包括波形信息文件的时间精度、变量定义方式、值变化信息,这些信息能够唯一的表达出该波形信息文件,从而把波形信息文件的对比转换为json数据的对比,再将该json数据序列化成字符串,然后对该字符串进行逐字符对比,即可确定该波形文件是否正确。

将波形信息转换成图片信息的方法是:采用开源软件gtkwave或者使用html5中的canvas技术将波形信息转换成图片信息,从而将波形信息的对比转换成图片信息的对比。

具体地,步骤d根据预设的参数对程序执行结果以及转换后的信息进行判定,其中预设的参数为预先设置好的测试用例。

参照图3,本发明的一种基于verilog的判题系统,包括浏览器10、处理器20和寄存器30,用户可以通过浏览器10上传verilog答案信息,然后通过处理器20对verilog答案信息进行仿真、转换以及判定,得到最终的判定结果,然后将判定结果返回到用户,用户可以根据判定结果对verilog答案信息进行修改,同时还可以重新上传verilog答案信息,不仅可以实现对verilog答案信息的自动判题,减少教师的工作量,而由于其判题的快速性,还能让学生在不断得到判题结果并进行修改的过程中提高其编程能力。

在本发明中,用户可以通过浏览器10在任何地方进行操作而不用安装任何专门的软件,客户端零维护,系统的扩展非常容易,同样也可以用于在线培训以及高校教育当中。

以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,都应属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1