从github下载蜂鸟E203如下所示(github上仅提供E203源代码):
riscv/riscv-tools在(一)已经在eclipse中配置完成。
risc-v tools包含:
(1)GCC(GNU C compile)
(2)C运行库
(3)Binutils
(4)GDB以及Openocd
(其中在使用git的过程中,一般我们总会有些文件无需纳入git的管理,也不希望它们总出现在未跟踪文件列表,这些文件通常是日志文件、临时文件、编译产生的中间文件、工具自动生成的文件等等。此时我们可以创建一个名为 .gitignore 的文件,列出要忽略的文件模式,Git会根据这些模式规则来判断是否将文件添加到版本控制中)
如何在verilog tb中利用vcs 软件运行riscv-tests自测试用例
自测试用例(riscv-test),由上图所示,在其子文件夹isa下,包含由汇编语言编写的一些测试处理器是否符合指令集架构定义的测试文件。
其中不同文件夹均是扩展指令集的指令测试:
基础指令集:RV32I RV64I
标准扩展 M(整数乘/除)
标准扩展A(原子内存操作)
标准扩展 C(精简的16位指令)
标准扩展 F(单精度浮点数)
标准扩展 D(双精度浮点数)
特权级 M(Machine)
特权级U(User)
特权级S(Supervisor)
而riscv-tests中这些指令集架构(ISA)的测试用例都是使用汇编语言编写,为了在仿真阶段能够被处理器执行,还需要将这些汇编程序编译成二进制文件。而在generated文件夹下,已经预先上传了一组编译完成的可执行文件和反汇编文件,以及能够被verilog 的tb文件readmemh函数读入的文件。
而testbench测试平台的主要功能在于:
1、例化DUT文件,并生成时钟和复位信号
2、根据运行命令解析测试用例的名称,并使用系统函数readmemh读入相应文件的内容,然后使用文件中的内容初始化ITCM
3、在运行结束后分析该测试用例是否执行成功,在tb文件中对x3寄存器进行判断,如果x3为1,则意味pass,否则fail
使用makefile 运行测试用例:
SIM_DIR := ${PWD}
RUN_DIR := ${PWD}/run
TESTNAME := rv32ui-p-add
TESTCASE := ${RUN_DIR}/../../riscv-tools/riscv-tests/isa/generated/${TESTNAME}
DUMPWAVE := 1
CORE := e203
CFG := ${CORE}_config
E201 := e201
E203 := e203
E205 := e205
E205F := e205f
E205FD := e205fd
E225FD := e225fd
#将CORE_NAME中的CORE变量中如果有小写转换成大写
#将core_name中的CORE变量中如果有大写转换成小写
CORE_NAME = $(shell echo $(CORE) | tr a-z A-Z)
core_name = $(shell echo