The CORE-V CVA6 is an Application class 6-stage RISC-V CPU capable of booting Linux
Find a file
2017-08-04 10:59:31 +02:00
docs Remove TB directory 2017-07-26 23:47:49 +02:00
failedtests Update .gitignore in failed-tests directory 2017-07-03 14:15:51 +02:00
include Add DCache flush signal and logic 2017-08-04 10:47:19 +02:00
riscv-tests@b253ea66b0 Align privilege level by using clocking block 2017-07-14 14:32:11 +02:00
riscv-torture@120d3d7e50 Pump submodule versions 2017-07-06 15:33:37 +02:00
src Add DCache flush signal and logic 2017-08-04 10:47:19 +02:00
tb@bccf2a125d Pump TB submodule version 2017-08-04 10:47:35 +02:00
uvm-scaffold@d59b8d6a51 Instantiated dcache interface for store queue test 2017-05-29 19:09:14 +02:00
.editorconfig Add support for device tree 2017-07-13 18:05:29 +02:00
.gitignore Add support for device tree 2017-07-13 18:05:29 +02:00
.gitlab-ci.yml Remove randomized if CI job, randomizer buggy 2017-08-01 11:04:33 +02:00
.gitmodules Update ci submodule testing strategy 2017-07-06 15:28:18 +02:00
ariane-run-torture Switch to UVM reporting and set verbosity for display 2017-06-29 12:55:51 +02:00
ariane_tb.dts Increase memory to 16 MB 2017-07-15 11:33:33 +02:00
CHANGELOG.md Add CHANGELOG entry 2017-07-26 23:47:50 +02:00
CONTRIBUTING.md WIP: Re-work instruction interface 2017-07-31 16:19:47 +02:00
LICENSE 📝 Add license 2017-04-21 11:11:40 +02:00
Makefile Add DCache flush signal and logic 2017-08-04 10:47:19 +02:00
mkdocs.yml 📝 Add timing diagram for memory interface 2017-05-07 13:09:05 +02:00
README.md Add CHANGELOG entry 2017-07-26 23:47:50 +02:00
src_files.yml Add register file to gf22 target for synthesis 2017-07-26 09:57:09 +02:00

build status coverage report

Ariane RISC-V CPU

For detailed documentation refer to the online documentation (Login: zarubaf Password: zaruba).

Getting Started

Go and get the RISC-V tools.

Checkout the repository and initialize all submodules

git checkout git@iis-git.ee.ethz.ch:floce/ariane.git
git submodule update --init --recursive

Build Ariane by using the Makefile:

make build

Start the simulation using Modelsim:

make sim

To specify the test to run use (e.g.: you want to run rv64ui-p-sraw inside the riscv-tests isa folder:

make sim riscv-test=rv64ui-p-sraw

If you call simc instead of sim it will run without the GUI.

Or start any of the unit tests by:

make dcache_arbiter

Randomized Constrained Testing with Torture

Ariane's core testbench is fully compatible with the randomized constrained testing framework called Torture. To start testing Ariane all you need is to step into the riscv-torture/ folder and issue:

make rgentest

Which will produce a single randomized program, runs it on Spike (see Getting Started) and on the RTL simulator (QuestaSim) by calling ariane-run-torture.

Torture's overnight tests work the same way, just call

make rnight

C (a.k.a. Verilator) tests are currently not supported.

Contributing

Check out the contribution guide

Test Overview

User Mode Integer Tests

Test Name P/V Test Name P/V Test Name P/V
add lb sll
addi lbu slli
addiw ld slliw
addw lh sllw
and lhu slt
andi lui slti
auipc lw sltiu
beq lwu sltu
bge or sra
bgeu ori srai
blt sb sraiw
bltu sd sraw
bne sh srl
sub simple srli
subw jal srliw
sw jalr srlw
xor
xori

Compressed Instruction Tests

Test Name P/V Test Name P/V Test Name P/V
rvc

Machine Mode Tests

Test Name P/F/U Test Name P/F/U Test Name P/F/U
csr illegal mcsr
breakpoint Not Impl. ma_addr ma_fetch
sbreak scall

Supervisor Mode Tests

Test Name P/F/U Test Name P/F/U Test Name P/F/U
csr dirty ma_fetch
sbreak scall wfi

Multiplication Instructions

Test Name P/V Test Name P/V Test Name P/V
mulw remuw mulhu
divw mul div
divuw mulh divu
remw mulhsu rem
remu