I am a bit curious about how people actually develop on RISC-V. This curious originated in something I read online about a “widely used” RISC-V tool that I had never heard of, so I am curious if this was marketing or just my ignorance. This post contains a couple of questions which will be open for response during one week after the poll initial publication (responses should be visible longer).
With more and more hardware being available, it seems there have never been that many options to actually develop on RISC-V. So what do you actually use ?
Outside of work, I tend to mostly use spike (riscv-isa-sim
) and hardware (Banana Pi F3 and CanMV K230). If the tool you use the most is not in the list (substack limits polls to 5 choices), feel free to leave a comment (in particular if you use a custom / original tool).
Now, let’s discuss compiler, what is your compiler of choices for RISC-V:
I tend to use clang (LLVM) for my RISC-V Vector kernel and GCC (GNU Compiler Collection) for the boilerplate code. Mostly because I have found it easier in my workflow to rely on the RISC-V GNU Toolchain (https://github.com/riscv-collab/riscv-gnu-toolchain) to build ready to run programs for spike + pk (proxy kernel). Clang has been supporting new extensions and their intrinsics (e.g. vector crypto) sooner than GCC in my experience and I am more familiar with LLVM when it comes to actually extending the compiler so I have stuck to clang for the actual kernels. When I use a particular hardware platform, I often fallback to the toolchain initially available on the image I use. What about you ?
I am working on a few other posts (with more content, I promise :-) ). Stay tuned.
In the meantime, happy RISC-V hacking to y’all.
I wonder what other (HDL) tooling people use. I use SpinalHDL with the MicroSoC library developed for VexiiRiscV. If there’s any good tooling to go from HDL -> ASIC implementation (I know OpenROAD exists) , a la, closed source EDA tools I’d be very interested. I’m still kinda bummed out about the slow risc-v formal progress