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






Reply via email to