Project Of SI100B EE Part

RISCV miniCPU in Logisim

@Yunxiang He, heyx1@shanghaitech.edu.cn
@Yongzhi Zhang, zhangyz2022@shanghaitech.edu.cn
@Chaofan Li, lichf1@shanghaitech.edu.cn
@Qihan Ding, dingqh@shanghaitech.edu.cn
@Quanyu Chen, chenqy2022@shanghaitech.edu.cn

Contents

Contents

Background

Background

What is RISC-V?

指令集就是软件与硬件之间沟通的"翻译官",是芯片产业中不可或缺的基础部分。

#c

SI100B EE Part Project Introduction Dec.4 2024

Background

What's RISC-V?

  • 20世纪80年代初,UCB 的 David Patterson 和 Stanford 的 John L. Hennessy 等学者开始精简传统 CISC,RISC 由此诞生。
  • RISC-V 名称表示 UC Berkeley 设计的第五代 RISC 芯片,罗马数字 "V" 暗示 "变种" 和 "向量",支持各种体系结构研究和数据并行加速器。
  • 起初,学术界对 RISC-V 的技术创新性持怀疑态度,认为这不属于伯克利教授的工作,因此在一级学术会议上不受关注。直到伯克利团队将 RISC-V 推进到原型芯片,并在2015年成立 RISC-V 基金会,经过大量技术研讨会后,RISC-V 逐渐得到关注和认可。

#c

SI100B EE Part Project Introduction Dec.4 2024

Background

Why RISC-V?

  1. 完全开源:RISC-V 指令集采用宽松的 BSD 协议,企业可以自由免费使用,并允许添加自有指令集。此外,避免了像 X86 和 ARM 架构那样可能被限的问题。
  2. 架构简单:RISC-V 架构具备后发优势,没有历史包袱,指令集仅需 100 余条,相比 X86 和 ARM 的数千条指令更为简洁,减少了错误发生的风险。
  3. 模块化设计:RISC-V 架构采用模块化设计,可根据不同应用场景灵活选择模块组合。例如,小面积低功耗嵌入式场景可选择 RV32IC 指令集,高性能应用可选择 RV32IMFDC 指令集。
SI100B EE Part Project Introduction Dec.4 2024

Tasks

Tasks

Must

  1. 实现 miniCPU 的 Datapath,包括寄存器堆、ALU、程序计数器、指令存储器、数据存储器等。(30%)
  2. 实现 miniCPU 的 Controller,包括指令译码、控制信号生成等,并与 Datapath 部分连接,实现指令执行。(30%)
  3. 手动编写一个简单的汇编程序,将其转换为机器码,加载到 miniCPU 的指令存储器中,观察 miniCPU 的运行情况。(20%)
  4. 编写实验报告,详细介绍 miniCPU 的设计、实现、运行情况等。(20%)

Bonus

  1. 为单周期 miniCPU 添加五级流水线。(+20%)
  2. 实现一个简单的汇编器,将 RISC-V 汇编代码转换为机器码。(+20%)
  3. 实现一个简单的模拟器,用于模拟 miniCPU 的运行。(+40%)
  4. 实现 B-Type 和 J-Type 指令的支持。(+30%)
SI100B EE Part Project Introduction Dec.4 2024

Tasks

Some Special Bonus...

我感觉自己非常厉害!

来,挑战一下这些项目!

  1. 在五级流水线 miniCPU 中完成全部指令的支持,并处理好冒险问题。(+500%)
  2. 实现 Cache 模块、添加异常处理和中断支持......(+1000%)
  3. ......(+∞%)
SI100B EE Part Project Introduction Dec.4 2024

Grading Policy

Grading Policy for Basic Tasks

  1. Datapath(30%)
    • 寄存器堆、ALU、程序计数器、指令存储器、数据存储器等的实现。
    • 连接正确,能够正常工作,通过 OJ 测试。
  2. Controller(30%)
    • 指令译码、控制信号生成等的实现。
    • 连接正确,能够正常工作,通过 OJ 测试。
    • 指令执行正确,通过 OJ 测试。
  3. Assembly Program(20%)
    • 编写简单的汇编程序,转换为机器码,加载到指令存储器中。
    • 在 面对面 Check 的时候,现场展示你们的程序和程序 miniCPU 的运行情况。
  4. Report(20%)
    • 你需要使用 LaTeX 编写实验报告。
    • 详细介绍 miniCPU 的设计、实现、运行情况等。
    • 在 面对面 Check 的时候,我们可能会问一些问题,以检验你们对 miniCPU 的理解。
SI100B EE Part Project Introduction Dec.4 2024

Grading Policy for Bonus Tasks

Bonus

  • Bonus 部分的分数将在基础分数的基础上进行加分。
  • 这部分不会有 OJ 测试,但我们会在面对面 Check 的时候,检查你们的实现。
    • 你们需要自己设计合适的测试用例,以证明你们的实现是正确的。否则,我们可能会认为你们的实现是不完整的,从而你们的加分也会受到影响。
  • 即使你们的实现不完整,如果在报告中展现了你们的尝试和思考,并做出有意义的尝试和分析,我们也会给予一定的加分。
SI100B EE Part Project Introduction Dec.4 2024