diff --git a/README.md b/README.md index cdcfcbfcf..10ec46c0e 100644 --- a/README.md +++ b/README.md @@ -2,10 +2,15 @@ # Ariane RISC-V CPU -![](docs/fig/ariane_overview.png) +Ariane is a 6-stage, single issue, in-order CPU which implements the 64-bit RISC-V instruction set. It fully implements I, M and C extensions as specified in Volume I: User-Level ISA V 2.1 as well as the draft privilege extension 1.10. It implements three privilege levels M, S, U to fully support a Unix-like operating system. + +It has configurable size, separate TLBs, a hardware PTW and branch-prediction (branch target buffer and branch history table). The primary design goal was on reducing critical path length. + +![](docs/img/ariane_overview.png) ## Getting Started + Go and get the [RISC-V tools](https://github.com/riscv/riscv-tools). Checkout the repository and initialize all submodules @@ -19,7 +24,7 @@ Build the Verilator model of Ariane by using the Makefile: make verilate ``` -This will create a C++ model of the core including a SystemVerilog wrapper and link it against a C++ testbench (in the `tb` subfolder). The binary can be found in the `obj_dir` and accepts a RISC-v ELF binary as an argument, e.g.: +This will create a C++ model of the core including a SystemVerilog wrapper and link it against a C++ testbench (in the `tb` subfolder). The binary can be found in the `obj_dir` and accepts a RISC-V ELF binary as an argument, e.g.: ``` obj_dir/Variane_wrapped -p rv64um-v-divuw @@ -27,9 +32,21 @@ obj_dir/Variane_wrapped -p rv64um-v-divuw The Verilator testbench makes use of the `riscv-fesvr`. That means that bare `riscv-tests` can be run on the simulator. - - +C (a.k.a. Verilator) tests are currently not supported. # Contributing