Project Of SI100B EE Part

RISCV miniCPU Design in Logisim

@Chaofan Li, lichf2025@shanghaitech.edu.cn
@Yunxiang He, heyx2025@shanghaitech.edu.cn
@Qihan Ding, dingqh2025@shanghaitech.edu.cn
@Quanyu Chen, chenqy2022@shanghaitech.edu.cn
@Qihang Yan, yanqh2022@shanghaitech.edu.cn
@Kailun Jin jinkl2022@shanghaitech.edu.cn
@Jun Wang wangjun2023@shanghaitech.edu.cn

Contents

Contents

Background——What is CPU?

SI100B EE Part Project Introduction Dec.5 2025

Background——Compile

alt text

SI100B EE Part Project Introduction Dec.5 2025

Background——Assembly

alt text

SI100B EE Part Project Introduction Dec.5 2025

Background

What is RISC-V?

在计算机体系结构中,指令集架构(ISA)定义了处理器的基本指令规范,而微架构则负责具体实现这些指令的硬件电路设计。

主流的指令集包括 x86、ARM、MIPS 等。与它们不同的是, RISC-V 作为一个全新的开源指令集架构正在迅速发展。与闭源的 x86 和 ARM 不同,RISC-V 采用开放标准,允许任何厂商自由使用和实现。

#c

SI100B EE Part Project Introduction Dec.5 2025

Overview of RISC-V Architecture

#c

SI100B EE Part Project Introduction Dec.5 2025

Tasks

Must Part

  1. 实现 miniCPU 的 Datapath,包括 RegFile、ALU、PC、IMem、DMem 等。(20%)(在gradescope上有测试点)
  2. 实现 miniCPU 的 Controller,包括指令译码、控制信号生成等,并与 Datapath 部分连接,实现指令执行。(20%)
  3. 使用 Python 编写一个简单的汇编器,将 RISC-V 汇编代码转换为机器码。(20%)
  4. 手动编写汇编程序,完成指定功能,加载到 miniCPU 的指令存储器中,观察 miniCPU 的运行情况。(15%)
  5. 实验报告。(25%)
SI100B EE Part Project Introduction Dec.5 2025

Tasks

Must Part (Result Example)

#c

SI100B EE Part Project Introduction Dec.5 2025

Bonus

  1. 为单周期 miniCPU 添加流水线。

    添加流水线之后,你可能会遇到被称之为“冒险”(Hazard)的问题,你需要设计合适的解决方案来处理这些冒险问题。

  2. 为 miniCPU 增加更多指令的支持。

我觉得自己特别厉害!那么可以尝试以下 Bonus

  1. 为 miniCPU 添加向量运算单元,并支持一些向量指令的支持。
  2. 为 miniCPU 支持标量-向量双发射。
  3. 使用 Spinal HDL 完成 miniCPU 的设计与实现!(Recommended)
    • 如果你决定使用 Spinal HDL 来实现 miniCPU,你可以不实现 Logisim 版本。请务必提前联系助教!完成相同的任务,使用 Spinal HDL 实现的项目将获得额外的加分。
SI100B EE Part Project Introduction Dec.5 2025

Grading Policy

About AI?

  • 在我们的 Project 中,我们允许任何 AI 工具的使用。但是,请务必确保你理解你的 AI 做了什么。如果在最终的 Check 中你的回答是“AI 这么写的,我也不太清楚”,那么我们可能会认为你并没有真正理解你的实现,从而影响你的评分。
  • 请同学们在合作中遵守基本的学术诚信原则。组间的抄袭是严格禁止的。
  • 允许参考公开的资源实现,但请按照自己的理解进行调整和修改。如果你参考了公开的资源(例如 GitHub 上的开源项目),请务必在报告中注明引用来源。非复制粘贴的参考不会影响你的评分。
    #c
  • 即使存在 Bug,如果你能准确描述 Bug 的原因,并展示你为解决 Bug 所做的努力,我们也会给予一定的分数。实现固然重要,但我们更看重你在实现过程中所展现的理解和思考!
SI100B EE Part Project Introduction Dec.5 2025

Grading Policy for Bonus Tasks

Bonus

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

Who should choose our project?

  • EE方向对数字集成电路方向感兴趣,
    • 渴望学习CPU相关知识但是又不想学那门workload很大的CS课——计算机体系结构
    • 想加入我们课题组但是不了解我们具体在干什么
  • CS方向但是对数集或者架构与系统方向感兴趣,想预习大二必修课——计算机体系结构
  • 其他专业但是对架构与系统和对数字集成电路方向感兴趣或者考虑转专业
SI100B EE Part Project Introduction Dec.5 2025