It is written in C# so is a bit slower than Qemu but does provide some working emulated RISC-V boards like the HiFive Unleashed, where unlike the fu540 qemu board, this one has the small supervisor e300 and 4 fu540's along with the peripherals to match the actual board. They have example scripts to get going with it too: https://github.com/renode/renode/blob/master/scripts/single-node/hifive_unleashed.resc
Where you just point your renode program at that script and it'll take care of the rest, landing you at a serial terminal. It also has GDB server support.
You mentioned two emulators: Qemu and Spike. Another one to consider may be Renode: https://renode.readthedocs.io/en/latest/
It is written in C# so is a bit slower than Qemu but does provide some working emulated RISC-V boards like the HiFive Unleashed, where unlike the fu540 qemu board, this one has the small supervisor e300 and 4 fu540's along with the peripherals to match the actual board. They have example scripts to get going with it too: https://github.com/renode/renode/blob/master/scripts/single-node/hifive_unleashed.resc
Where you just point your renode program at that script and it'll take care of the rest, landing you at a serial terminal. It also has GDB server support.