VexRiscv icon indicating copy to clipboard operation
VexRiscv copied to clipboard

RV32E support

Open xobs opened this issue 7 years ago • 4 comments

After a discussion with @Dolu1990 , it was revealed that 50% of the gate count of a minimal VexRiscv is the register file, which is 32x32-bits. That's many registers.

The RV32E version of the specification cuts the number of registers down to 16, which should shrink the number of gates required by ~25%.

How much work is required to add support for RV32E?

xobs avatar Nov 08 '18 04:11 xobs

Hi, So, RV32E is only about removing x16 to x31 and traping if an instruction try to access them. It can be done in less than 1 hour as it's realy minor changes.

Also, in the dev branch, for the riscv-contest i'm working on making VexRiscv more configurable in the number of stages to use less ressources. With the current changes you can go down to a 3 stage pipeline, but with some additional change, it can go down to 2 stages.

Dolu1990 avatar Nov 09 '18 09:11 Dolu1990

Got a two stages VexRiscv running zephyr and compliance tests :)

Dolu1990 avatar Nov 13 '18 10:11 Dolu1990

Got a two stages VexRiscv running zephyr and compliance tests :)

Very nice work!

FYI: Clifford Wolf checked in a riscv-formal change for a serial RISC-V CPU => super small size.

tomverbeure avatar Nov 13 '18 17:11 tomverbeure

Hooo yeah, it will be a funny one XD

Dolu1990 avatar Nov 14 '18 10:11 Dolu1990