diff --git a/README.md b/README.md index 675eb55..ac739f9 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ # 2.介绍 -本项目实现的是一个单核32位的小型RISC-V处理器核(tinyriscv),采用verilog语言编写。tinyriscv有以下特点: +本项目实现的是一个单核32位的小型RISC-V处理器核(tinyriscv),采用verilog语言编写。设计目标是对标ARM Cortex-M3系列处理器。tinyriscv有以下特点: 1. 支持RV32IM指令集,通过RISC-V指令兼容性测试; 3. 采用三级流水线,即取指,译码,执行; @@ -34,6 +34,8 @@ **pic**:存放图片; +**tb**:testbench文件; + **FPGA**:存放FPGA相关文件,如约束文件; tinyriscv的整体框架如下: @@ -78,9 +80,17 @@ tinyriscv目前外挂了6个外设,每个外设的空间大小为256MB,地 可以通过百度网盘下载(链接: https://pan.baidu.com/s/1nFaUIwv171PDXuF7TziDFg 提取码: 9ntc),或者通过微云下载[https://share.weiyun.com/59xtmWR](https://share.weiyun.com/59xtmWR),下载完成后直接解压,然后将make所在的路径添加到环境变量里。 +4. 安装python3 + +到python官网下载安装win版本的python,注意要下载python3版本的。网速慢的同学可以通过百度网盘下载(链接: https://pan.baidu.com/s/1gNC8L5dZTsN6E5TJD2rmnQ 提取码: 3b4t),或者通过微云下载[https://share.weiyun.com/XwzSQHND](https://share.weiyun.com/XwzSQHND)。安装完后将python添加到环境变量里。 + ## 4.2运行指令测试程序 -下面以add指令为例,说明如何运行指令测试程序。 +### 4.2.1 运行旧的指令测试程序 + +旧的指令测试程序属于比较早的指令兼容性测试方法,虽然目前RISC-V官方已经不更新了,但仍然是一个比较好的测试参考。 + +下面以add指令为例,说明如何运行旧的指令测试程序。 打开CMD窗口,进入到sim目录,执行以下命令: @@ -90,6 +100,28 @@ tinyriscv目前外挂了6个外设,每个外设的空间大小为256MB,地 ![](./pic/test_output.png) +也可以一次性对所有指令进行测试,方法如下。 + +打开CMD窗口进入到sim目录下,执行以下命令: + +`python .\test_all_isa.py` + +### 4.2.2运行新的指令测试程序 + +新的指令兼容性([riscv-compliance](https://github.com/riscv/riscv-compliance))测试项相对于旧的指令兼容性测试项来说对指令的测试更加严谨,可以精确到每一条指令的运行结果,而且RISC-V官方一直在更新。 + +下面以add指令为例,说明如何运行新的指令测试程序。 + +打开CMD窗口,进入到sim/compliance_test目录,执行以下命令: + +`python compliance_test.py ..\..\tests\riscv-compliance\build_generated\rv32i\I-ADD-01.elf.bin inst.data` + +如果运行成功的话就可以看到"PASS"的打印。其他指令使用方法类似。 + +![new_test_output](./pic/new_test_output.png) + +目前只测试了几条指令,还没全部指令测试过一遍。如有遇到测试失败的指令,可先自行通过查看波形定位问题所在。 + ## 4.3运行C语言程序 C语言程序例程位于tests\example目录里。 @@ -122,6 +154,8 @@ C语言程序例程位于tests\example目录里。 # 7.更新记录 +2020-05-27:增加新的指令兼容性(riscv-compliance)测试项。 + 2020-05-05:支持spi master,增加spi测试例程。 2020-04-25:支持FreeRTOS(v10.3.1)。 diff --git a/pic/new_test_output.png b/pic/new_test_output.png new file mode 100644 index 0000000..b041c61 Binary files /dev/null and b/pic/new_test_output.png differ