tinyriscv 项目推荐
1. 项目基础介绍和主要编程语言
tinyriscv 是一个开源的 RISC-V 处理器核项目,由开发者梁康南创建。该项目旨在提供一个简单易懂的 RISC-V 处理器实现,适合初学者和研究人员学习和参考。项目主要使用 Verilog 语言编写,这是一种硬件描述语言,广泛用于数字电路设计和 FPGA 开发。
2. 项目核心功能
tinyriscv 实现了一个单核 32 位的 RISC-V 处理器核,具有以下核心功能:
- 支持 RV32IM 指令集:通过 RISC-V 指令兼容性测试。
- 三级流水线架构:包括取指、译码和执行三个阶段。
- 支持 C 语言程序运行:可以在处理器上运行 C 语言编写的程序。
- 支持 JTAG 调试:可以通过 OpenOCD 进行内存读写和在线程序更新。
- 支持中断:处理器能够响应外部中断信号。
- 支持总线:处理器与外部设备通过总线进行通信。
- 支持 FreeRTOS:可以在处理器上运行 FreeRTOS 操作系统。
- 支持通过串口更新程序:可以通过串口进行固件更新。
- 易于移植:可以轻松移植到不同的 FPGA 平台上。
3. 项目最近更新的功能
tinyriscv 项目近期进行了多项更新,主要包括:
- 2020-10-25:支持 Linux 平台编译和仿真,新建 bram 分支,使用 BRAM 代替 LUTRAM(DRAM),节省一半以上的 LUT 资源,并且可以运行更大的程序。
- 2020-07-04:支持通过 UART 烧写固件。
- 2020-05-27:增加新的指令兼容性(riscv-compliance)测试项。
- 2020-05-05:支持 SPI Master,增加 SPI 测试例程。
- 2020-04-25:支持 FreeRTOS(v10.3.1)。
- 2020-04-18:适当添加代码注释,优化中断管理模块。
- 2020-04-11:增加 CoreMark 跑分例程和跑分成绩。
- 2020-04-05:支持 CSR 指令。
- 2020-03-29:重大更新,主要更新如下:
- 支持 RIB(RISC-V Internal Bus)总线。
- 优化乘法代码,节省了 2/3 的 DSP 资源。
- 优化除法代码,解决了除法模块的 BUG。
- 完善 C 语言例程、启动代码和链接脚本。
- 增加一次性对所有指令进行测试的脚本。
- 2020-03-08:支持中断,为此增加了 timer 模块来验证。
- 2020-03-01:支持 JTAG,配合 OpenOCD 可进行内存读写,JTAG 文档参考深入浅出 RISC-V 调试。
- 2020-02-23:支持在 Xilinx Artix-7 平台上运行,详见 tinyriscv_vivado。
- 2020-01-13:支持 RV32M 的除法指令,其 C 语言实现详见 div。
- 2020-01-02:支持 RV32M 的乘法指令。
- 2019-12-06:第一次发布。
通过这些更新,tinyriscv 项目不断完善和优化,使其成为一个更加强大和易用的 RISC-V 处理器学习平台。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



