实验内容的组织

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

SystemVerilog和逻辑电路实验

这部分的主要目的是学习Verilog / SystemVerilog硬件描述语言(以下简称Verilog),同时设计了一些基本的逻辑电路实验。这些逻辑电路实验的内容和后面的实验也有着密切的联系,比如移位寄存器实验中的桶形移位器将用于后面算术逻辑单元实验。如果已经有Verilog基础,语言部分可以跳过,但是实验项目建议至少浏览一遍。

如果没有Verilog基础但已经熟练掌握VHDL,本书的所有实验也都可以用VHDL完成,FPGA设计流程实验中也给出了VHDL的示例。但是后面所有实验的范例目前只有Verilog的示例,视频讲解也只是针对Verilog。

计算机组成原理实验

这部分的实验内容和后面CPU设计实验内容有一部分交叉,如“数据通路和硬布线控制器实验”和“RISC-V微架构实验”,这些实验是为不打算深入学习RISC-V CPU设计的学员准备的,比如软件工程专业,可以选择这几个实验初步了解CPU设计。对于以RISC-V-CPU设计为目标的学员,这两个实验可以跳过。

另外,不像其他实验项目之间有前后的依赖关系,“RISC-V汇编语言实验”和“存储器实验”这两个项目相对独立,顺序可以在这部分中前后调整,汇编语言实验甚至可以调整到SystemVerilog之前。

RISC-V CPU设计实验

这部分实验又可以分为三个层次。

基本层次

完成23条指令的单周期 RISC-V 以及简单的流水线设计。这23条指令分3个项目完成:整数运算指令、存储器访问指令和分支指令,还包含了简单输入输出接口。每个项目的指导都给出了具体的数据通路。所谓简单的流水线设计,是指硬件不处理相关和冲突的流水线设计。

常规层次

这个层次完成27条指令的单周期 RISC-V 以及流水线设计。虽然只增加了4条指令,但需要更复杂的数据通路。通过基本层次的训练,已经很好地理解了指令和数据通路的关系,所以这个层次需要学员自己设计数据通路。而流水线的设计,也需要用硬件处理数据冲突和控制冲突。

提高层次

如果学有余力,可以在以下几个方面扩展。

  • 实现分支预测;

  • 支持37条指令;

  • 实现中断接口;

  • …​…​