1 Star 21 Fork 5

FPGA-Lab / JURV-open

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

openJURV

介绍

RISC-V CPU 实验资源。配套指导书网址:http://fpga-lab.gitee.io/jurv-open。授课视频见中国大学MOOC(慕课)开放课程《计算机组成与CPU设计实验》(肖铁军 赵蕙),实验环境使用FPGA实验云平台

文件组织结构

实验资源可以分为三大版块

  • 硬件描述语言和数字逻辑电路实验
  • 计算机组成原理实验
  • RISC-V CPU设计实验

每一版块所对应的文件夹和慕课单元如下。

版块 文件夹 慕课单元
实验环境 L00~L02 01~02
硬件描述语言 L11~L19 11~16
计算机组成原理实验 L21~L29 21~27
RISC-V CPU设计实验 RV01~RV27PL 31~38

实验项目列表

文件夹 实验项目名称
L00 工程框架
L01 熟悉设计工具
L02 认识虚拟实验
L11 三态门和多路器
L12 译码器
L13 寄存器堆
L14 流水灯与移位寄存器
L15 计数器和分频器
L16 彩灯控制器
L21 加减运算电路
L22 算术逻辑单元
L33 数据通路
L24 存储器
L25 控制器
L26 RISC-V汇编语言
L27 RISC-V微架构

CPU部分的文件夹命名与支持的指令数量有关,见下表。

文件夹 描述 新增指令数 支持的指令数
RV-01 实现addi指令 1 1
RV-15 实现整数运算指令 14 15
RV-17 实现访存指令 2 17
RV-23 实现分支指令 6 23
RV-23PL 实现简单流水线 23
RV-27 支持27条指令 4 27
RV-27PL 解决流水线数据冲突 27
RV-37 访存6条,SLT 4条 10 37

关于实验环境

支持团队致力于提供跨平台的软硬件实验环境。这里的“跨平台”有两方面含义,一是实验软件同时支持线上和线下方式,二是实验硬件同时支持两大主流FPGA厂商的芯片。

线上实验基于FPGA实验云,提供以云端真实实验板为基础的虚拟实验环境。线下实验基于 Windows 版的虚拟实验软件,通过USB适配器与多种实验板、开发板连接。

云端实验板的FPGA芯片采用的是 Intel / Altera 芯片,实验平台支持线下 Quartus 编译上传电路文件,同时也提供了云端编译,支持平台无关的硬件设计。

线下实验通过特制的USB调试适配器可以适配 Intel/Altera 和 AMD/Xilinx 两大主流FPGA厂商的芯片和开发板,并且实验软件与线上环境有着相似的操作方式。所有实验项目中的范例充分考虑了可移植性,无需修改均可在 Quartus 和 Vivado 两种设计环境下编译通过。

跨平台的软硬件实验环境为实验教学提供了灵活的实施方式。既可以以线上方式为主,也可以以线下为主,还可以采用线上、线下混合的方式,比如线下实验室使用 Altera 或 Xilinx 的开发板,线上完成慕课的预习和实验云平台的实验任务。

学习建议

  • 硬件描述语言

    如果已经有Verilog/SystemVerilog(以下简称Verilog)基础,这部分可以快速浏览跳过。如果没有Verilog基础但已经熟练掌握VHDL,本课程的所有实验也都可以用VHDL完成,“01 熟悉设计工具”中也给出了VHDL的代码模板;但是后面所有实验的范例只有Verilog的代码,实验指导和视频讲解也只是针对Verilog。

  • 计算机组成原理实验

    这部分的实验内容和后面CPU设计实验内容有一部分交叉,“数据通路实验”、“硬布线控制器实验”和“RISC-V微架构实验”可以不做。对于偏软的专业,如果不做后面的RISC-V CPU设计实验,可以选择这几个实验作为初步的CPU设计,也可以选择CPU实验部分的开头两个实验。

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

  • RISC-V CPU设计实验

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

    • 基本层次。完成23条指令的单周期 RISC-V 以及初步的流水线设计。这23条指令分3个项目完成:整数运算指令、存储器访问指令和分支指令,每个项目的指导都给出了具体的数据通路。所谓“初步的流水线设计”,是指硬件不处理相关和冲突的流水线。
    • 常规层次。这个层次完成27条指令的单周期 RISC-V 以及流水线设计。虽然只增加了4条指令,但需要更复杂的数据通路。通过基本层次的训练,已经很好地理解了指令和数据通路的关系,所以这个层次需要学员自己设计数据通路。而流水线的设计,也需要用硬件处理数据冲突和控制冲突。
    • 提高层次。如果学有余力,可以在以下几个方面扩展。
      • 实现中断接口(基本层次中包含了简单输入输出接口);
      • 实现分支预测;
      • 支持37条指令;
      • ......

许可 | License

CC-BY-NC-SA:署名-非商业性使用-相同方式共享 4.0 国际许可协议

空文件

简介

RISC-V CPU 实验资源 展开 收起
取消

发行版 (3)

全部

贡献者

全部

近期动态

加载更多
不能加载更多了
Verilog
1
https://gitee.com/fpga-lab/jurv-open.git
git@gitee.com:fpga-lab/jurv-open.git
fpga-lab
jurv-open
JURV-open
master

搜索帮助