从零搭建RISC-V处理器实战
📚 30章 · 30个实战
RV32I
01
课程导论与环境搭建
RISC-V简介
Verilator
GTKWave
工具链验证
02
数字逻辑基础回顾
组合/时序逻辑
Verilog基础
加法器模块
03
处理器微架构概览
五级流水线
数据通路
指令格式
04
取指阶段 (IF)
程序计数器
指令存储器
取指逻辑仿真
05
译码阶段 (ID)
指令译码器
立即数生成器
寄存器堆
06
执行阶段 (EX)
ALU设计
分支判断
执行Verilog
07
访存阶段 (MEM)
数据存储器
加载/存储
访存实现
08
写回阶段 (WB)
写回逻辑
数据前递
写回实现
09
流水线控制冒险
数据冒险
Stall机制
Bubble插入
分支预测初探
10
数据前递深入
前递路径
前递控制
前递与暂停协同
11
分支预测基础
静态预测
动态预测
饱和计数器
12
流水线控制单元
主控制器FSM
冒险检测
前递控制单元
13
RV32I实现 (上)
ADD/SUB/ADDI
AND/OR/XOR
移位指令
14
RV32I实现 (下)
比较/分支
加载/存储
BEQ/BNE/LB/SB
15
伪指令与汇编编程
LI/MV/NOP/RET
汇编器
汇编仿真
16
异常与中断处理
异常/中断概念
mtvec/mcause
异常处理单元
17
CSR寄存器实现
CSRRW/CSRRS
mstatus/mie
CSR建模
18
多周期指令·M扩展
乘除法器
MUL/DIV/REM
M扩展实现
19
总线接口与SoC集成
TileLink/AXI-Lite
处理器IP封装
最小SoC
20
外设模型与中断控制器
GPIO建模
UART建模
PLIC简化
21
指令集仿真器(ISS)
Python/C++ ISS
RTL对比
指令验证
22
验证方法学入门
Testbench规范
定向/随机测试
功能覆盖率
23
RISC-V一致性测试
Arch Test Suite
运行官方用例
Bug修复
24
性能分析与优化
CPI分析
关键路径
流水线深度权衡
25
高级流水线技术
超标量/乱序
BTB/Gshare
分支预测改进
26
缓存(Cache)基础
直接映射/组相联
写策略
一级Cache集成
27
内存管理单元(MMU)
虚拟内存
页表遍历
TLB实现
28
RISC-V特权架构
M/S/U模式
特权指令
模式切换
29
裸机程序与RTOS
链接脚本
启动代码
移植FreeRTOS
30
课程总结与展望
设计流程回顾
常见陷阱
RISC-V生态