If I want to do systems research that needs a simple and synthesizable RISC-V design, what are some good options? BOOM seems to be pretty complicated and I don't really need the out-of-order execution.
I also want to be able to run it on a cheap FPGA, something like Artix A7.
This is what the OpenHW Foundaiton is for. Providing well verified cores for people who just need a core. They are based on the original Pulp Cores from the ETH Zürich and Unviersity of Bolongia. See:
Claire Wolf's PicoRV32 seems to get a lot of "simple and synthesizable RISC-V design to run on a cheap FPGA" use, although that's more typically for much cheaper FPGA's than an Artix A7, like an iCE40. SeRV is even cheaper and simpler but much slower. Graeme Smecher’s RVC-first "Minimax" is almost as simple as SeRV but not nearly as slow.
I haven't tried any of them, though, so take this with a Himalayan salt lamp.
I've been getting tremendous use out of PicoRV32- it works, it's tiny, and for many use cases ("management plane") you just don't need much speed. I work around its slowness by providing things like relatively large communication buffers in the FPGA. I use it in "execute in place" mode from external SPI-flash (the FPGA's config flash), but with an instruction cache. It can do floating point via emulation which is handy for printf.
I've been meaning to update my toolbox to at least a pipelined processor of some sort (to up the IPC rate to at least 1), but so far just had no strong need. For applications that really need CPU power, I use SoC FPGAs like Zynq.
rwmj|4 months ago
If you want something very tiny and completely understandable, and don't mind that it's 32 bit, then PicoRV32 (https://github.com/YosysHQ/picorv32).
daedalus-|4 months ago
jhallenworld|4 months ago
huyage|4 months ago
dmitrygr|4 months ago
this one is well tested in real life and works well (it is the RV core in RP2350)
panick21|4 months ago
https://openhwfoundation.org/
Or because its part of OpenTitan, Ibex sees a lot of development: https://github.com/lowRISC/ibex
kragen|4 months ago
I haven't tried any of them, though, so take this with a Himalayan salt lamp.
jhallenworld|4 months ago
I've been meaning to update my toolbox to at least a pipelined processor of some sort (to up the IPC rate to at least 1), but so far just had no strong need. For applications that really need CPU power, I use SoC FPGAs like Zynq.
drob518|4 months ago