前言

从2019年秋季学期开始,我们在计算机类本科实验教学中引入RISC-V CPU设计的内容,到现在已经经过了五轮教学实践的不断改进完善,实验方案和实验项目已经趋于稳定。我们决定将本书和参考设计的代码按照CC BY-NC-SA:署名-非商业性使用-相同方式共享 4.0 国际许可协议开源,实验代码和相关资源发布在开源项目托管网站,网址是https://gitee.com/fpga-lab/jurv-open

这套实验主要是面向“计算机组成原理”课程。这门课程一向被认为是一门比较难学的课程,除了内容庞杂、考题灵活多变等原因外,缺少与理论教学内容相一致的实验设计是一个重要因素。在引入RISC-V之前,我们曾开发了JUC系列微程序控制的教学模型计算机(见开源项目openJUC3),2010年起在教学中使用,印证了我们“从设计的角度理解计算机的组成和工作原理”的教学思想。当年学生对课程设计的认可给了我们很大的鼓励,成为后来我们继续开发RISC-V系列实验的动力。

本书分为四大部分:实验环境、SystemVerilog和逻辑电路实验、计算机组成实验、RISC-V CPU设计实验。各个部分并非截然分开,而是环环相扣、循序渐进,是一个整体的设计,但也可以根据自己的基础选择一部分学习,详见实验内容的组织

本书采用“范例-任务”教学法。大部分实验项目都会先给出一个参考设计(范例),再布置一个任务。通过学习参考设计,理解相关原理、结构和HDL描述方法,对完成任务会有很大帮助。本书还配套了教学视频,发布在中国大学MOOC等网站上,见教学视频资源

对于实验课,实验工具也是非常重要的一环。本书所用的虚拟实验软件也是我们自己开发的。所谓虚拟实验,并不是模拟(仿真)实验,它以真实硬件实验板为基础,通过软件实现人机交互。虚拟实验包括本地(线下)和远程(线上)两种方式。本地虚拟实验调试系统是我和马学文老师带领研究生开发的,从2013年起在本校投入使用。在这个基础上,继续开发了远程FPGA虚拟实验平台,后端主要由我的研究生开发,前端由在校的本科生开发。远程实验平台自2018年秋季投入教学使用,很大程度上改变了硬件实验的教学方式。在3年的抗疫中,不仅为本校的实验教学提供了保障,也为其他有需要的高校提供了服务和支持。2021年底,我们与上海吉亮信息科技有限公司合作,由吉亮信息开发了教学管理功能,并对原有的实验功能做了重要改进和补充,合称为FPGA实验云。有关实验工具的具体介绍见实验环境部分。

最后,给学员提一点额外的要求。您完成的实验代码,希望不要在博客、开源网站等网站上公开。如上所述,这些实验项目经过几年的改进已经趋于稳定,会在学校的教学中继续使用,虽然每年会有一些细节完善,但可能不会有太大的变化。您可以在博客上发表相关的内容,但希望您不要将答案公开。既要给学弟学妹们指路,也要让他们有路可走 (◠‿◠)。

欢迎读者提出改进意见。可以在开源项目托管网站发issue讨论,也可以直接给我发邮件。

作者                        

2022年12月28日