USTC-RVSoC 项目使用教程
1. 项目的目录结构及介绍
USTC-RVSoC 是一个基于 FPGA 的 RISC-V CPU+SoC 项目,包含一个简单且可扩展的外设总线。以下是项目的目录结构及其介绍:
USTC-RVSoC/
├── FPGA-Arty7/
├── FPGA-DE0Nano/
├── FPGA-Nexys4/
├── RTL/
├── SIM-CPU/
├── SIM-SoC/
├── USTCRVSoC-tool/
├── UartSession/
├── asm-code/
├── figures/
├── LICENSE
├── README.md
- FPGA-Arty7/: 针对 Arty7 FPGA 开发板的配置和代码。
- FPGA-DE0Nano/: 针对 DE0-Nano FPGA 开发板的配置和代码。
- FPGA-Nexys4/: 针对 Nexys4 FPGA 开发板的配置和代码。
- RTL/: 寄存器传输级(RTL)设计文件。
- SIM-CPU/: CPU 仿真相关文件。
- SIM-SoC/: SoC 仿真相关文件。
- USTCRVSoC-tool/: 项目工具和脚本。
- UartSession/: UART 会话相关文件。
- asm-code/: 汇编代码示例。
- figures/: 项目图表和图片。
- LICENSE: 项目许可证(GPL-3.0)。
- README.md: 项目介绍和基本说明。
2. 项目的启动文件介绍
项目的启动文件通常位于 asm-code/
目录下,用于初始化 RISC-V CPU 和 SoC。以下是一个典型的启动文件示例:
# asm-code/start.S
.section .text
.globl _start
_start:
# 初始化堆栈指针
la sp, stack_top
# 调用主函数
call main
# 无限循环
loop:
j loop
- _start: 启动标签,CPU 复位后从这里开始执行。
- la sp, stack_top: 初始化堆栈指针。
- call main: 调用主函数。
- loop: 无限循环,防止程序跑飞。
3. 项目的配置文件介绍
项目的配置文件通常位于 USTCRVSoC-tool/
目录下,用于配置 SoC 和外设。以下是一个典型的配置文件示例:
{
"bus_router": {
"masters": 2,
"slaves": 4,
"address_space": [
{"base": "0x00000000", "size": "0x10000000"},
{"base": "0x10000000", "size": "0x10000000"},
{"base": "0x20000000", "size": "0x10000000"},
{"base": "0x30000000", "size": "0x10000000"}
]
},
"cpu": {
"pipeline_stages": 5,
"instruction_set": "RV32I"
}
}
- bus_router: 总线路由器配置。
- masters: 总线主接口数量。
- slaves: 总线从接口数量。
- address_space: 从接口占用的地址空间。
- cpu: CPU 配置。
- pipeline_stages: 流水线阶段数。
- instruction_set: 支持的指令集(RV32I)。
以上是 USTC-RVSoC 项目的基本使用教程,涵盖了项目的目录结构、启动文件和配置文件的介绍。希望这些信息能帮助你更好地理解和使用该项目。