We've a C++ application intended to be run on a x86 hosted RISC-V processor. The application is executed on both the host (x86) and the tethered RISC-V processor. The RISC-V processor is emulated on an FPGA. We have a shared library called libfpga_intf.so
consisting of drivers providing a C API to the RISC-V processor on the FPGA.
We also wish to simulate the RISC-V processor on VCS, as access to FPGA system is limited. I've systemverilog models of the RISC-V processor and the FPGA interface which I'd like to compile with the C++ application. Is there a way I could compile the SV models with VCS to generate libfpga_intf.so
equivalent.
(I could use SV DPI to compile application into VCS simv
, which means the application executable is simv
and command line interface is very different to what is actually intended by the application. I prefer the software interface to be a drop in replacement to the real FPGA system.)