1 Star 0 Fork 72

那你能帮帮我么 / 小麻雀处理器

forked from xiaowuzxc / 小麻雀处理器 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

小麻雀处理器

rvlogoRISC-V官网收录
teelogoGitee推荐项目
book处理器文档导航页

简介

小麻雀处理器(SparrowRV)是一款RISC-V架构的32位单周期两级流水线处理器。它的控制逻辑简单,没有复杂的流水线控制结构,代码注释完备,配有易上手的仿真环境和软件开发环境,适合用于学习。
此项目处于开发阶段,master分支更新频繁,稳定版请参阅release发行版
设计指标:

  • 顺序两级流水线结构(IF -> ID+EX+MEM+WB)
  • RV32I RV32E M、Zicsr扩展可配置
  • 向量中断系统,仅支持机器模式(开发中)
  • 哈佛结构,指令存储器映射至存储器空间
  • 支持C语言,有配套BSP
  • 支持ICB总线
  • 支持JTAG调试

2级流水线
流水线

系统功能框图
soc架构

内核原理图
内核原理图

软件开发请参阅板级支持包BSP
仿真环境搭建请参阅仿真流程

开发工具

  • 处理器RTL设计采用Verilog-2001可综合子集。此版本代码密度更高,可读性更强,并且受到综合器的广泛支持。
  • 处理器RTL验证采用System Verilog-2005。此版本充分满足仿真需求,并且受到仿真器的广泛支持。
  • 数字逻辑仿真采用iverilog/Modelsim。可根据使用平台与具体需求选择合适工具。
  • 脚本采用 Batchfile批处理(Win)/Makefile(Linux) + Python3。发挥各种脚本语言的优势,最大程度地简化操作。
  • 板级支持包采用MRS(MounRiver Studio)图形化集成开发环境,做到开箱即用。
  • 所有文本采用UTF-8编码,具备良好的多语言和跨平台支持。

仿真

本工程使用批处理/Makefile + Python3 + Modelsim/iverilog可根据个人喜好与平台使用合适的工具完成仿真全流程。如果已配置相关工具,可跳过环境搭建步骤。
若需要编写c语言程序并仿真,请参阅板级支持包BSP
仿真环境框架
soc架构

Linux环境搭建与仿真

必须使用带有图形化界面的Linux的系统,否则无法正常仿真。
Linux下仅支持iverilog
Debian系(Ubuntu、Debian、Deepin)执行以下命令:

sudo apt install make git python3 python3-tk gtkwave gcc g++ bison flex gperf autoconf
git clone -b v12_0 --depth=1 https://gitee.com/xiaowuzxc/iverilog/
cd iverilog
sh autoconf.sh
./configure
make
sudo make install
cd ..
rm -rf iverilog/

其他Linux发行版暂不提供支持,请自行探索。

  • /tb/makefile是Linux环境下的实现各项仿真功能的启动器

进入/tb/目录,终端输入make即可启动人机交互界面。根据提示,输入make+空格+单个数字或符号,按下回车即可执行对应项目。

Makefile支持以下命令:

  • [0]导入inst.txt,RTL仿真并显示波形
  • [1]收集指令测试集程序,测试所有指令
  • [2]转换bin文件为inst.txt,可被testbench读取
  • [3]转换bin文件并进行RTL仿真、显示波形,主要用于仿真c语言程序
  • [4]显示上一次的仿真波形
  • [c]清理缓存文件

Windows环境搭建

  • 进入Python官网,下载并安装Python 3.x版本(建议使用稳定版)
  • (可跳过)如果想在Win系统使用make,请参阅Makefile开发第2步。

iverilog仿真

进入iverilog Win发行版,下载并安装iverilog-v12-20220611-x64_setup[18.2MB]
Windows下iverilog安装流程及仿真可参考视频教程
可选择以下任意一种方式进行仿真

  • /tb/run_zh.bat是Windows环境下的启动器,进入/tb/目录,仅需双击run_zh.bat即可启动人机交互界面。根据提示,输入单个数字或符号,按下回车即可执行对应项目。
  • /tb/makefile是Windows/Linux环境下的启动器,进入/tb/目录,终端输入make即可启动人机交互界面。根据提示,输入make+空格+单个数字或符号,按下回车即可执行对应项目。

处理器运行C语言程序,见板级支持包BSP。需要将生成的obj.bin转换为inst.txt文件,才能导入程序并执行仿真。命令2仅转换,命令3可以转换并仿真。

/tb/tools/isa_test.py是仿真脚本的核心,负责控制仿真流程,转换文件类型,数据收集。使用者通过启动器与此脚本交互,一般情况下不建议修改。
iverilog是仿真工具,gtkwave用于查看波形。

Modelsim仿真

仅限Windows系统
本工程提供了Modelsim仿真脚本,启动方式与iverilog类似,软件安装问题请各显神通

  • /tb/run_zh.bat是Windows环境下的启动器,进入/tb/目录,仅需双击run_zh.bat即可启动人机交互界面。根据提示,输入单个数字或符号,按下回车即可执行对应项目。
  • 处理器运行C语言程序,见板级支持包BSP。需要将生成的obj.bin转换为inst.txt文件(命令2转换,命令3可以直接转换并仿真),才能导入程序并执行仿真。
  • /tb/tools/vsim_xxx.tcl主导Modelsim的启动、配置、编译、仿真流程,由批处理脚本启动,Modelsim启动后读入。

问题说明

  • inst.txt是被testbench读入指令存储器的文件,必须存在此文件处理器才可运行
  • 程序编译生成的bin文件不能直接被读取,需要先转换为inst.txt
  • iverilog版本建议大于v11,低于此版本可能会无法运行
  • Makefile环境下可能会出现gtkwave开着的情况下不显示打印信息
  • Windows下make建议使用Powershell,经测试Bash存在未知bug(实验性修复)
  • (已修复)run_zh.bat是中文的启动器,但是由于git CRLF相关问题无法使用
  • 若出现WARNING: tb_core.sv:23: $readmemh(inst.txt):...ERROR: tb_core.sv:24: $readmemh:警告或错误信息,请忽略,它不会有任何影响
  • 本项目基于Modelsim SE 2019.2进行环境搭建,此版本保证脚本的有效性;10.6d版本存在问题

板级支持包BSP

位于/bsp/文件夹下
本工程使用MRS(MounRiver Studio)作为图形化集成开发环境。MRS基于Eclipse开发,支持中文界面和帮助信息,配置了完善的GCC工具链,可以做到开箱即用。
官网链接http://www.mounriver.com/
使用流程:

  1. 下载并安装MRS
  2. 切换中文界面。打开MRS主界面,Help->Language->Simplified Chinese
  3. 双击打开/bsp/SparrowRV.wvproj
  4. 点击构建项目,编译并生成bin文件

致谢

本项目借鉴了tinyriscv的RTL设计和Python脚本。tinyriscv使用Apache-2.0协议。
本项目使用了printf的轻量化printf实现。printf使用MIT协议。
本项目使用了蜂鸟E203的ICB总线。蜂鸟E203使用Apache-2.0协议。
本项目使用了FPGA-SDcard-Reader的SD读卡器功能。
感谢先驱者为我们提供的灵感
感谢众多开源软件提供的好用的工具
感谢MRS开发工具提供的便利
感谢导师对我学习方向的支持和理解
大家的支持是我前进的动力!

MIT License Copyright (c) 2022 xiaowuzxc Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

Verilog编写的RISC-V处理器,支持RV32IMZicsr指令集,2级流水线,哈佛结构,配有中断系统。MCU级别的处理器,麻雀虽小,五脏俱全。 展开 收起
Verilog
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Verilog
1
https://gitee.com/bobcccc/SparrowRV.git
git@gitee.com:bobcccc/SparrowRV.git
bobcccc
SparrowRV
小麻雀处理器
master

搜索帮助