Generation of a QEMU based instruction set simulator from a processor description in OpenVADL (SAMOS’25)
QEMU (Quick EMUlator) is a generic and open source machine emulator and virtualizer which employs Dynamic Binary Translation (DBT) to emulate a guest architecture on a host architecture. OpenVADL is an open source implementation of the Vienna Architecture Description Language (VADL), a processor description language developed for rapid design space exploration in the area of processor design. OpenVADL automatically generates various essential artifacts. One such artifact is the Instruction Set Simulator (ISS), which enables the execution of programs compiled for the described processor on different host systems. To achieve high-performance simulation with broad platform support, OpenVADL's ISS generator produces a QEMU frontend, seamlessly integrating into the QEMU system. This integration leverages QEMU's DBT, along with built-in features such as GDB debugging. Optimized generation of QEMU's TCG intermediate representation ensures competitive performance, even when compared to manually written and optimized frontends. Benchmark results show that the OpenVADL-generated QEMU based ISS achieves a speedup of up to 1.77 compared to the official handwritten QEMU frontend for the RISC-V RV64IM instruction set architecture. Full article: https://www.complang.tuwien.ac.at/vadl/papers/samos25Acknowledge.pdf GitHub: https://github.com/OpenVADL/openvadl Information: https://www.openvadl.org <https://www.openvadl.org/> In OpenVADL version 0.2.0 a QEMU frontend for the integer subset of RISC-V RV**IM and AArch64 frontend can be automatically generated from a VADL specification. Limited compiler generation for RISC-V is available, for AArch64 it is work in progress. Power and AMD64 is work in progress. Specification of tensor instructions is work in progress. Floating point support is not available. Hardware generation is work in progress. Andreas -- a...@complang.tuwien.ac.at <mailto:a...@complang.tuwien.ac.at> Andreas Krall www.complang.tuwien.ac.at/andi <http://www.complang.tuwien.ac.at/andi> Compilers and Languages, TU Wien tel: (+431) 58801/18511 Argentinierstr. 8/4/194-5 fax: (+431) 58801/18598 A-1040 Wien AUSTRIA EUROPE