01
RISC-V与CPU基础
RISC-V指令集架构概览 · CPU工作原理 · 流水线概念入门
概览入门
02
开发环境搭建
Vivado/Quartus安装 · Verilog仿真工具配置 · RISC-V工具链安装
环境工具链
03
Verilog基础回顾
模块与端口 · 组合逻辑与时序逻辑 · 阻塞与非阻塞赋值 · Testbench编写
Verilog基础
04
单周期CPU设计(上)
指令译码单元设计 · 寄存器堆设计 · ALU设计
译码ALU
05
单周期CPU设计(下)
数据存储器接口 · 控制单元设计 · 完整单周期CPU集成与仿真
集成仿真
06
流水线基本原理
五级流水线(IF、ID、EX、MEM、WB)详解 · 流水线寄存器的作用
流水线寄存器
07
流水线冒险概述
结构冒险 · 数据冒险 · 控制冒险的概念与危害
冒险危害
08
数据冒险与转发(上)
数据冒险的检测 · 转发(旁路)技术原理
转发旁路
09
数据冒险与转发(下)
转发单元Verilog实现 · 带转发的流水线CPU仿真
实现仿真
10
数据冒险与流水线停顿
Load-Use冒险 · 流水线互锁(Stall)机制实现
停顿互锁
11
控制冒险与分支预测
分支指令带来的控制冒险 · 静态分支预测 · 动态分支预测(BTB)简介
分支预测
12
分支预测器实现
2位饱和计数器预测器设计 · BTB的Verilog实现
饱和计数BTB
13
结构冒险与多端口存储器
哈佛结构 · 指令缓存与数据缓存分离 · 多端口寄存器堆
哈佛多端口
14
异常与中断处理(上)
RISC-V异常与中断机制 · CSR寄存器介绍
异常CSR
15
异常与中断处理(下)
异常处理流水线实现 · 精确异常模型
精确异常流水线
16
多周期指令支持(上)
乘法指令(M扩展)的流水线集成
M扩展乘法
17
多周期指令支持(下)
除法指令 · 原子操作指令的流水线处理
除法原子
18
流水线控制单元
复杂控制信号生成 · 流水线控制状态机设计
控制状态机
19
存储层次与Cache(上)
Cache基本原理 · 直接映射Cache设计
Cache直接映射
20
存储层次与Cache(下)
组相联Cache · 写策略(Write-Through/Write-Back)
组相联写策略
21
总线与接口
AXI4-Lite总线协议简介 · 将CPU挂载到总线上
AXI4-Lite总线
22
系统集成(上)
将流水线CPU、Cache、总线集成到一个SoC中
SoC集成
23
系统集成(下)
添加UART、GPIO等外设,运行简单程序
UARTGPIO
24
性能分析与优化
CPI、吞吐量计算 · 关键路径分析 · 时序优化技巧
性能时序
25
低功耗设计
时钟门控 · 操作数隔离 · 流水线级平衡
低功耗门控
26
验证方法论
UVM简介 · 面向流水线CPU的验证计划 · 覆盖率驱动验证
UVM覆盖率
27
FPGA原型验证
综合 · 布局布线 · 上板调试 · 使用ILA/VIO调试
FPGAILA
28
RISC-V向量扩展(V扩展)简介
向量指令集 · 向量处理单元设计思路
向量V扩展
29
超标量处理器入门
多发射 · 乱序执行 · 重排序缓冲(ROB)概念
超标量ROB
30
课程总结与未来展望
RISC-V生态 · 开源处理器项目(Rocket、BOOM)介绍 · 学习路径建议
生态开源