学习进度
第3期 tinyriscv的FPGA移植—— RISC-V囫囵吞枣式学习_哔哩哔哩_bilibili 第39s
tiny RISCV项目信息相关资料
参考视频:第1期 开发环境准备 —— RISC-V囫囵吞枣式学习_哔哩哔哩_bilibili
项目地址:tinyriscv: 一个从零开始写的极简、非常易懂的RISC-V处理器核。
详细的技术文档:...........作者的readme开头有链接,但是链接失效了
相关项目
基于tiny_riscv实现的:小麻雀处理器: 小麻雀处理器SparrowRV采用RISC-V架构,支持RV32IMZicsr指令集,2级流水线,哈佛结构,配有中断系统。MCU级别的处理器,麻雀虽小,五脏俱全。
整体框图
仿真逻辑
sim目录下,运行旧的指令集测试程序
目录路径
/home/itheima/tiny_riscv/tinyriscv/sim/compliance_test
运行add指令测试
其实也只是对add指令进行了测试
python ./compliance_test.py ../../tests/riscv-compliance/build_generated/rv32i/I-ADD-01.elf.bin inst.data
结果
运行全部指令测试
python ./test_all_isa.py
结果
sim目录下,运行新的指令集测试程序
目录路径
/home/itheima/tiny_riscv/tinyriscv/sim/compliance_test
运行指令集代码
python ./compliance_test.py ../../tests/riscv-compliance/build_generated/rv32i/I-ADD-01.elf.bin inst.data
编译C语言程序
目录
修改工具链
会报错,是因为工具链文件夹的名称没有对上
用python执行
cd /home/itheima/tiny_riscv/tinyriscv/sim
python ./sim_new_nowave.py ../tests/example/simple/simple.bin inst.data
结果
FPGA的移植
C语言编译的仿真逻辑
大概是:通过为RISCV指令集写的工具链,用make将.c文件编译成二进制指令。测试的时候通过将指令放到rom里面取指,FPGA上通过pc取指。
rtl文件的编译
rtl的tb文件
在路径下
/home/itheima/tiny_riscv/tinyriscv/tb/tinyriscv_soc_tb.v
原理是通过将wire连接到一个寄存器上,如果这个寄存器拉高,就说明,这个代码成功的执行了