张德学+张小军+郭华

摘要:近年来,在线评测系统(Online Judge,OJ)在多种编程语言的教学、ACM竞赛中得到了广泛应用,实践效果良好。Verilog是一种硬件描述语言,目前尚没有支持该语言的在线评测系统。本文以较流行的在线评测系统HUSTOJ为基础,对其扩展以支持Verilog语言,能够实现Verilog代码在线编辑、提交、后台仿真、结果评价,可用于Verilog语言个人学习、课堂教学、结课评测以及竞赛。
关键词:在线评测系统,Verilog,Online Jud
一、前言
在线评测Online Judge系统,简称OJ[1],是一个在线的判题系统。用户可以在线提交程序源代码(如C/C++/Java等),系统对源代码进行编译和执行,并通过预先设计的测试数据来检验程序源代码的正确性。OJ系统最初用于ACM-ICPC国际大学生程序设计竞赛和OI信息学奥林匹克竞赛中的自动判题和排名,现广泛应用于世界各地高校学生程序设计的训练、参赛队员的训练和选拔、各种程序设计竞赛以及数据结构和算法的学习和作业的自动提交判断中。著名的OJ系统有RQNOJ、URAL等,各具特色的OJ系统也在不断的推出和完善。HUSTOJ[2]是一款出色的开源项目,由华中科技大学前ACM队员Sempr等同学开发,2008年5月14日首先上线于华中科技大学,目前已有近百家学校、公司使用HUSTOJ进行计算机程序设计竞赛、计算机程序设计日常教学与测验、人才招聘等。HUSTOJ采用GPL开源,目前主要由张浩斌先生在维护,项目地址:https://github.com/zhblue/hustoj。HUSTOJ仍在持续更新,目前支持C、c++、Java、bash、python、ruby等17种语言。
Verilog[3]是一种硬件描述语言,是主流的电子系统设计语言,是国内外高校的EDA、FPGA、数字IC设计相关课程的重要内容。Verilog语言主要面向硬件设计,有其独特的特点,但其代码也可以通过仿真软件在计算机中运行、调试,与其他编程语言类似。……