add new inst test

Signed-off-by: liangkangnan <liangkangnan@163.com>
pull/1/head
liangkangnan 2020-05-27 23:24:33 +08:00
parent 38c2245218
commit 0a7d7616ab
2 changed files with 36 additions and 2 deletions

View File

@ -12,7 +12,7 @@
# 2.介绍 # 2.介绍
本项目实现的是一个单核32位的小型RISC-V处理器核(tinyriscv)采用verilog语言编写。tinyriscv有以下特点 本项目实现的是一个单核32位的小型RISC-V处理器核(tinyriscv)采用verilog语言编写。设计目标是对标ARM Cortex-M3系列处理器。tinyriscv有以下特点
1. 支持RV32IM指令集通过RISC-V指令兼容性测试 1. 支持RV32IM指令集通过RISC-V指令兼容性测试
3. 采用三级流水线,即取指,译码,执行; 3. 采用三级流水线,即取指,译码,执行;
@ -34,6 +34,8 @@
**pic**:存放图片; **pic**:存放图片;
**tb**testbench文件
**FPGA**存放FPGA相关文件如约束文件 **FPGA**存放FPGA相关文件如约束文件
tinyriscv的整体框架如下 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所在的路径添加到环境变量里。 可以通过百度网盘下载(链接: 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运行指令测试程序 ## 4.2运行指令测试程序
下面以add指令为例说明如何运行指令测试程序。 ### 4.2.1 运行旧的指令测试程序
旧的指令测试程序属于比较早的指令兼容性测试方法虽然目前RISC-V官方已经不更新了但仍然是一个比较好的测试参考。
下面以add指令为例说明如何运行旧的指令测试程序。
打开CMD窗口进入到sim目录执行以下命令 打开CMD窗口进入到sim目录执行以下命令
@ -90,6 +100,28 @@ tinyriscv目前外挂了6个外设每个外设的空间大小为256MB
![](./pic/test_output.png) ![](./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`
如果运行成功的话就可以看到&quot;PASS&quot;的打印。其他指令使用方法类似。
![new_test_output](./pic/new_test_output.png)
目前只测试了几条指令,还没全部指令测试过一遍。如有遇到测试失败的指令,可先自行通过查看波形定位问题所在。
## 4.3运行C语言程序 ## 4.3运行C语言程序
C语言程序例程位于tests\example目录里。 C语言程序例程位于tests\example目录里。
@ -122,6 +154,8 @@ C语言程序例程位于tests\example目录里。
# 7.更新记录 # 7.更新记录
2020-05-27增加新的指令兼容性(riscv-compliance)测试项。
2020-05-05支持spi master增加spi测试例程。 2020-05-05支持spi master增加spi测试例程。
2020-04-25支持FreeRTOS(v10.3.1)。 2020-04-25支持FreeRTOS(v10.3.1)。

BIN
pic/new_test_output.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB