第六期"一生一芯"课程主页

学习目标

"一生一芯"将会培养大家的综合能力. 大家完成学习之后, 将会对以下问题有一定的认识:

  1. 处理器是如何设计的?
  2. 程序是如何在计算机上运行的?
  3. 如何对处理器的性能进行优化?
  4. 如何使用/设计正确的工具高效地进行调试?
  5. 如何自己编写测试用例进行单元测试?
  6. RTL设计如何生成可流片的版图?

我们将会引导大家设计一款RISC-V流水线处理器, 并在自己设计的处理器上运行操作系统, 在操作系统上运行真实游戏. 达成指标的处理器将可以接入到SoC, 并获得流片机会.

教学资源

  • 时间一栏是以小时为单位的预估完成时间
    • 预估完成时间为2的内容, 一般没有相关的编程任务, 只有2小时的视频录播, 用于补充讲解相关知识
    • 鉴于同学们的基础水平有高有低, 此处按照"中等水平"同学的能力来预估. 但这里的"中等水平"并不是指"程序设计课程总评80分以上", 而是指"学习心态端正, 编写过500行以上代码的单个程序, 并且懂得调试".
    • 如果你是零基础的初学者, 你应该预期花费这个数字2~3倍的时间来完成学习. 不过你不必为此感到沮丧, 所谓"闻道有先后", 之所以其他同学学得快, 很大一部分原因是因为他们之前已经付出努力迈过了初学者的阶段.
  • 可点击图标跳转到相应资源
  • 完整的讲义可通过页面右上方导航栏查看
  • S阶段讲义内容仍然在🕊

C = C语言(程序/模拟器/系统软件) | R = RISC-V指令集 | P = 处理器设计 | T = 工具

阶段 序号任务 时间 讲义 课件 视频C R P T
预学习阶段 如何科学地提问 2📚📰🎬
Linux系统安装和基本使用 10📚📰🎬
计算机系统的状态机模型 2 - 📰🎬
复习C语言 20📚📰🎬
程序的执行和模拟器 2 - 📰🎬
搭建verilator仿真环境 5📚 - -
数字电路基础实验 20📚📰🎬
完成PA1 30📚📰🎬
申请入学答辩
基础阶段 支持RV32IM的NEMU 10📚📰🎬
程序的机器级表示(上) 2 - 📰🎬
程序的机器级表示(下) 2 - 📰🎬
用RTL实现最简单的处理器 5📚 - -
AM运行时环境 5📚📰🎬
工具和基础设施 5 - 📰🎬
支持RV32E的单周期NPC 10📚📰🎬
ELF文件和链接 2 - 📰🎬
设备和输入输出 10📚📰🎬
调试技巧 2 - 📰🎬
异常处理和RT-Thread 15📚📰🎬
总线 10📚📰🎬
SoC计算机系统(上) 15📚📰🎬
SoC计算机系统(下) 15📚📰🎬
性能优化和简易缓存 20📚📰🎬
流水线处理器 0📚
达成B阶段流片指标
进阶阶段 由于时间关系, 详细的A阶段讲义无法按时发布. 我们先列出一些大纲📚, 感兴趣的同学可以按照我们给出的方向自行探索. 0

页面加载条卡住了?

跳转页面时, 如果进度条卡住 3 秒以上, 很可能是由于我们推送了网页版本更新.
鉴于我们还在频繁更新、修订文档, 近期可能会比较容易遇到跳转卡住的情况.
遇到这种情况, 只需要 刷新整个页面 即可继续学习咯

往期课程主页

其他资源

活动记录

最近更新时间:
贡献者: Zihao Yu, Yuxuan Zhang, puckbee, myyerrol