热门排行
简介
tinyriscv是一个从零开始写的极简、非常易懂的RISC-V处理器核。
tinyriscv项目实现的是一个单核32位的小型RISC-V处理器核(tinyriscv),采用verilog语言编写。设计目标是对标ARM Cortex-M3系列处理器。
tinyriscv有以下特点:
1、支持RV32IM指令集,通过RISC-V指令兼容性测试;
2、采用三级流水线,即取指,译码,执行;
3、可以运行C语言程序;
4、支持JTAG,可以通过openocd读写内存(在线更新程序);
5、支持中断;
6、支持总线;
7、支持FreeRTOS;
8、支持通过串口更新程序;
9、容易移植到任何FPGA平台(如果资源足够的话);
项目中的各目录说明:
rtl:该目录包含tinyriscv的所有verilog源码;
sim:该目录包含仿真批处理bat文件和脚本;
tests:该目录包含测试程序源码,其中example目录为C语言程序例程源码,isa目录为RV32指令测试源码;
tools:该目录包含编译汇编和C语言程序所需GNU工具链和将二进制文件转成仿真所需的mem格式文件的脚本,还有通过串口下载程序的脚本。
pic:存放图片;
tb:该目录包含仿真的testbench文件;
fpga:存放FPGA相关文件,比如约束文件;
如何使用
本项目可以运行在Windows和Linux平台(macOS平台理论上也是可以的),编译仿真工具使用的是iverilog和vpp,波形查看工具使用的是gtkwave。
Windows平台环境搭建
在使用之前需要安装以下工具:
1、安装iverilog工具
可以在这里http://bleyer.org/icarus/下载,安装过程中记得同意把iverilog添加到环境变量中,当然也可以在安装完成后手动进行添加。安装完成后iverilog、vvp和gtkwave等工具也就安装好了。
2、安装GNU工具链
可以通过百度网盘下载(链接: https://pan.baidu.com/s/1bYgslKxHMjtiZtIPsB2caQ 提取码: 9n3c),或者通过微云下载https://share.weiyun.com/5bMOsu9,下载完成后将压缩包解压到本项目的tools目录下。注意目录的层次结构,解压后的工具路径应该如下所示:
tinyriscv\tools\gnu-mcu-eclipse-riscv-none-gcc-8.2.0-2.2-20190521-0004-win64\bin\riscv-none-embed-gcc
3、安装make工具
可以通过百度网盘下载(链接: https://pan.baidu.com/s/1nFaUIwv171PDXuF7TziDFg 提取码: 9ntc),或者通过微云下载https://share.weiyun.com/59xtmWR,下载完成后直接解压,然后将make所在的路径添加到环境变量里。
5、安装python3
到python官网下载win版本的python,注意要下载python3版本的。网速慢的同学可以通过百度网盘下载(链接: https://pan.baidu.com/s/1gNC8L5dZTsN6E5TJD2rmnQ 提取码: 3b4t),或者通过微云下载https://share.weiyun.com/XwzSQHND。安装完后将python添加到环境变量里。
5、下载tinyriscv代码
使用git clone命令下载,不要使用zip方式下载,否则有些文件会有格式问题。
git clone https://gitee.com/liangkangnan/tinyriscv.git
Linux平台环境搭建
这里以Ubuntu系统为例进行说明。
1、下载iverilog源码
git clone https://github.com/steveicarus/iverilog.git
2、切换到v11分支(必须用V11或以上的版本)
git checkout v11-branch
3、安装依赖
sudo apt-get install autoconf gperf flex bison build-essential
4、编译、安装iverilog和vvp
sh autoconf.sh
./configure
make
make install
5、创建python软链接
sudo ln -s /usr/bin/python3.8 /usr/bin/python
其中/usr/bin/python3.8对应你实际安装的python版本。
6、安装gtkwave
sudo apt-get install gtkwave
7、安装GNU工具链
可以从百度网盘下载(链接:https://pan.baidu.com/s/10uLZYf_cgtH94kZI_N6JhQ 提取码:uk0w)或者自行下载其他版本的,下载后解压到tools目录下。
最后,需要确认tests/example/common.mk文件里的这几行内容要与你安装的工具链对应得上。