Custom extensions to the RISC-V ISA
#2
Hello,

Instruction Set Extensions are one of the most popular things to do with RISC-V. As you point out, it is actually quite tricky, you need to know about the HW and you need to be able to have the tool support. Getting this to work is more complicated than it looks.

Now using an architectural simulator is IMHO not the best way, as these do not really consider the cost of the implementation, and for instruction set extensions, it is usually this cost that is an issue. On an architectural simulator you can conjure up a super instruction, but it may be too costly to implement (either in execution time, or implementation area) and it might not be as good as it seems.

Usually to develop good extensions, you need to understand the limitations of the current implementation, and examine optimized code to see where you are loosing (in terms of cycles) and see what can be done. Note that the same effort is also needed to see if the compilers are able to generate good code. I think this sort of manual inspection is very important to understand the issues of the current system. This can be made with architectural simulators.

As for the cores.. CV32E40P has actually many many extensions included. So the extension space is a bit limited. As a 4 stage pipelined core, it is also a bit tricky with all the tricks in the pipeline fwds etc to untangle.. Ibex would be a simpler core to play with..

If you are less into HW, and more at home with Scale like languages, VexRiscV from Charles Pappon might actually be what you are looking for:
https://github.com/SpinalHDL/VexRiscv

Hope that helps,
KGF
Visit pulp-platform.org and follow us on twitter @pulp_platform
Reply


Messages In This Thread
RE: Custom extensions to the RISC-V ISA - by kgf - 10-09-2022, 03:56 PM

Forum Jump: