Verilog模块化设计RISC-V多核系统

📚 共计 32 章节
01
RISC-V与多核概述
RISC-V指令集架构简介 · 多核处理器的发展与挑战 · 课程目标与项目概览
基础概念
02
开发环境搭建
Verilog仿真工具 (Icarus/Verilator) · RISC-V GCC工具链 · Makefile与仿真脚本
工具配置
03
单核RISC-V处理器基础
微架构(取指/译码/执行/访存/写回) · 五级流水线 · 数据通路与控制信号
核心流水线
04
RV32I整数指令集实现
算术/逻辑/移位/比较 · 分支跳转 · 加载存储指令
指令Verilog
05
流水线冒险与解决
结构冒险 · 数据冒险(前递/旁路) · 控制冒险(分支预测) · 停顿与冲刷
冒险优化
06
存储层次与Cache设计
Cache原理(直接/组相联/全相联) · 写策略 · Verilog实现单核Cache
存储Cache
07
总线与互连结构
总线协议(AXI/AHB/自定义) · Crossbar · 环形互连 · 网格互连
互连总线
08
多核一致性基础
缓存一致性问题 · 监听协议 · 目录协议 · MESI协议详解
一致性协议
09
Verilog实现监听协议
总线嗅探接口 · 状态机(M/E/S/I) · 原子操作(LR/SC)支持
监听Verilog
10
Verilog实现目录协议
目录项结构 · 目录状态机 · 点对点消息 · 目录与Cache交互
目录一致性
11
多核中断控制器
PLIC架构 · 中断路由与优先级 · 核间中断(IPI)设计
中断PLIC
12
多核启动与同步
Boot ROM设计 · 核启动流程(Hart 0→N) · 同步原语(锁/屏障)硬件支持
启动同步
13
原子指令与同步原语
LR/SC指令实现 · AMO原子操作 · 硬件锁(Ticket Lock/MCS Lock)
原子
14
多核调试接口
JTAG调试协议 · RISC-V调试规范(Debug Module) · 硬件断点与单步
调试JTAG
15
性能计数器与监控
硬件性能计数器(Cycle/Inst/Cache Miss) · PMU设计 · 性能分析工具
性能PMU
16
功耗管理
时钟门控 · 电源门控 · DVFS硬件支持
低功耗门控
17
多核系统验证策略
定向测试与随机测试 · 形式化验证 · 仿真加速(Emulation/FPGA)
验证策略
18
Verilog Testbench设计
自检测试平台(Self-checking) · 覆盖率驱动验证 · UVM基础
TBUVM
19
FPGA原型验证
Xilinx/Altera开发板 · 综合与布局布线 · ChipScope/SignalTap调试
FPGA原型
20
RISC-V多核SoC集成
SoC架构 · 外设(UART/SPI/GPIO) · 内存控制器设计
SoC集成
21
裸机编程与启动代码
链接脚本 · 启动代码(Startup.S) · 异常与中断向量表
裸机启动
22
轻量级操作系统移植
FreeRTOS在RISC-V多核移植 · 任务调度与核间通信 · 同步API
RTOS移植
23
多核并行编程模型
OpenMP支持 · MPI消息传递 · Pthreads多线程库
并行编程
24
多核基准测试
CoreMark · SPEC CPU · Stream · Parsec移植与运行
基准性能
25
多核系统性能优化
负载均衡 · 数据局部性 · 锁竞争优化 · 伪共享避免
优化调优
26
高级主题
NUMA · 硬件事务内存(HTM) · 近内存计算
高级NUMA
27
RISC-V向量扩展(V)
向量指令集基础 · 向量单元微架构 · 向量化编程
向量V扩展
28
RISC-V安全扩展
物理内存保护(PMP) · 可信执行环境(TEE) · 加密加速器
安全PMP
29
项目实战:双核RISC-V
需求分析 · 模块划分 · RTL编码 · 仿真验证 · FPGA实现
实战双核
30
项目实战:四核RISC-V
缓存一致性 · 中断控制器 · 操作系统启动 · 性能调优
实战四核
31
多核虚拟化与Hypervisor
CPU虚拟化 · 内存虚拟化 · 多核虚拟机调度
虚拟化Hypervisor
32
课程总结与未来展望
多核设计回顾 · 开源生态 · 下一步学习路径
总结展望