dashjay / Verilog-OJ-USTB

一个使用laravel编写的OJ,后台使用Verilog-Judge-USTB,拥有自动评测的功能
GNU General Public License v3.0
3 stars 0 forks source link

有关框架问题 #2

Open lluckydog opened 4 years ago

lluckydog commented 4 years ago

你好,我是中国科学技术大学的学生。作为软件工程的作业,想做一个类似这个的系统,但是感觉现有文档没有有关框架的介绍,不知道怎么入手了解一下

dashjay commented 4 years ago

你好!着手这个做这个系统有几个步骤:

  1. 编译器的选择,你有很小的概率可能自己去编写一个编译器,以下编译器将成为你的首选,我们两个都尝试过。

  2. 代码正确性判断需要使用其他的任何后端语言,请确认是否有使用JAVA,PHP,Golang,Python的基础。不太推荐使用C++,因为可能会是一个web服务。

这里有一个看起来似乎是PHP编写的用于SystemVerilog代码正确性判断的例子,他采用的是PHP和Modelsim编写,前端显示波形使用的wavedrom 这个HDLBits — Verilog Practice

  1. 以上是一些必要的准备,我们项目放弃的原因是因为老师要求的是复杂的行政系统,包括学生统计,班级创建等,这些繁杂的系统让我们疲于应对,对OJ评测过程产生了厌恶感。

最终一个版本的技术实现使用的是 python写了一个flask框架,其中使用bash脚本控制modelsim生成输出和波形,并打包成了docker,另一个后端接收用户的代码,提交python,获得反馈并显示在网页上。

目前现在国内似乎没有人实现这个东西,国防科技大学好像有一套,但是不公开使用,我们也疲于查找大量的资料。最后祝你成功~~,github的issues并不能得到快速的响应。有什么其他问题也可以联系wechat: zhaofang0903