RISCV学习笔记6.1--初步认识蜂鸟e203

参考网站:
1、全平台轻量开源verilog仿真工具iverilog+GTKWave使用教程
2、Makefile 中获取自身目录(pwd, lastword,dirname)
3、在vcs中编译及运行测试E203例子

在我们自己设计riscv芯片之前,一定要多了解一些优秀的riscv设计作品。

1.下载工程

蜂鸟e203的项目的github地址为:e200_opensource
首先在命令行中输入git clone https://github.com/SI-RISCV/e200_opensource.git来下载工程文件。
RISCV学习笔记6.1--初步认识蜂鸟e203_第1张图片
接着cd到下图所示的文件夹中,并用gvim来编辑run.makefile文件。
RISCV学习笔记6.1--初步认识蜂鸟e203_第2张图片
RISCV学习笔记6.1--初步认识蜂鸟e203_第3张图片

2、安装iverilog和gtkwave

蜂鸟e203默认采用iverilog来进行仿真工作。这款软件是一个轻量、免费、开源的Verilog编译器。
RISCV学习笔记6.1--初步认识蜂鸟e203_第4张图片
如果ubuntu没有装过iverilog(编译verilog程序)和gtkwave(查看波形)的话,可以采用下面的方式来进行安装。

sudo apt update
sudo apt upgrade 
sudo apt install iverilog
sudo apt install gtkwave

RISCV学习笔记6.1--初步认识蜂鸟e203_第5张图片
RISCV学习笔记6.1--初步认识蜂鸟e203_第6张图片
我们可以使用下面的命令来查看软件的安装位置,可以看出均是安装在/user/bin/目录下的。

which iverilog
which vvp
which gtkwave

RISCV学习笔记6.1--初步认识蜂鸟e203_第7张图片
在命令行中输入iverilog,也可以查看iverilog的配置参数。
RISCV学习笔记6.1--初步认识蜂鸟e203_第8张图片

3、Makefile文件的分析

首先进入下面的路径,用gvim来打开Makefile文件。
注:有些地方不是很理解,暂时没有标注。
RISCV学习笔记6.1--初步认识蜂鸟e203_第9张图片
RISCV学习笔记6.1--初步认识蜂鸟e203_第10张图片
假如输入的是CORE为e203,则CORE_NAME为E203,core_name为e203。
在这里插入图片描述
注:中间的两个sed语句,是把tb_top.v文件中的e200和E200进行替换。
例如在命令行中输入make install CORE=e203,可以把tb_top.v的e200和E200关键词替换为e203和E203。这样批量的转换会更有效率。
RISCV学习笔记6.1--初步认识蜂鸟e203_第11张图片
下面则主要介绍了compile、wave、run_test、regress_comprare、regress_run、regress_collect、regress、clean。
RISCV学习笔记6.1--初步认识蜂鸟e203_第12张图片
在这里插入图片描述
RISCV学习笔记6.1--初步认识蜂鸟e203_第13张图片

4、run.makefile文件的分析

RISCV学习笔记6.1--初步认识蜂鸟e203_第14张图片
在这里插入图片描述
RISCV学习笔记6.1--初步认识蜂鸟e203_第15张图片
RISCV学习笔记6.1--初步认识蜂鸟e203_第16张图片

4.运行工程

首先输入make install CORE=e203,这时候会把rtl和tb文件拷贝到install文件夹下。同时修改tb文件中的关键词e200和E200。
RISCV学习笔记6.1--初步认识蜂鸟e203_第17张图片
RISCV学习笔记6.1--初步认识蜂鸟e203_第18张图片
接着输入make compile来对工程进行编译,这时候使用到的编译器是iverilog。
RISCV学习笔记6.1--初步认识蜂鸟e203_第19张图片
首先会调用makefile的下图所示的代码,主要的作用是生成一个run文件夹用来保存编译后的结果。并且将run.makefile进行链接。要注意这时候的RUN_DIR的值。这个RUN_DIR需要传递给run.makefile的
例如RUN_DIR的值可以为/home/xiaoxing/Desktop/work/e203/e200_opensource/vsim/run
RISCV学习笔记6.1--初步认识蜂鸟e203_第20张图片
之后会继续运行run.makefile的代码来调用iverilog来对工程进行编译。此时的RUN_DIR的值可以为/home/xiaoxing/Desktop/work/e203/e200_opensource/vsim/run
RISCV学习笔记6.1--初步认识蜂鸟e203_第21张图片
在这里插入图片描述
RISCV学习笔记6.1--初步认识蜂鸟e203_第22张图片
工程编译成功后,再运行make run_test来跑测试。
RISCV学习笔记6.1--初步认识蜂鸟e203_第23张图片
当我们输入make run_test的时候,会调用makefile文件的下图的代码。这个命令需要传递给run.makefile使用的。
例如:RUN_DIR的值可以为/home/xiaoxing/Desktop/work/e203/e200_opensource/vsim/run
TESTCASE的值可以为/home/xiaoxing/Desktop/work/e203/e200_opensource/vsim/run/../../riscv-tools/riscv-tests/isa/generated/rv32ui-p-add}
在这里插入图片描述
之后传递到run.makefile中,删除原有的文件夹,之后新建一个以测试项目命名的文件夹。此时的TEST_RUNDIR为/home/xiaoxing/Desktop/work/e203/e200_opensource/vsim/run/rv32ui-p-add
在这里插入图片描述
RISCV学习笔记6.1--初步认识蜂鸟e203_第24张图片
输入make regress_run可以进行回归测试。
RISCV学习笔记6.1--初步认识蜂鸟e203_第25张图片
输入make regress_collect可以查看回归测试结果。
RISCV学习笔记6.1--初步认识蜂鸟e203_第26张图片
最后使用make clean来清除编译与运行文件。
RISCV学习笔记6.1--初步认识蜂鸟e203_第27张图片

你可能感兴趣的:(riscv处理器设计,fpga开发,学习)