Verifying SystemC TLM Peripherals using Modern C++ Symbolic Execution Tools

Pascal Pieper, Vladimir Herdt, Daniel Große, Rolf Drechsler

In: 59th Design Automation Conference (DAC). Design Automation Conference (DAC-2022) July 10-14 San Francisco United States 2022.


In this paper we propose an effective approach for verification of realworld SystemC TLM peripherals using modern C++ symbolic execution tools. We designed a lightweight SystemC peripheral kernel that enables an efficient integration with the modern symbolic execution engine KLEE and acts as a drop-in replacement for the normal SystemC kernel on pre-processed TLM peripherals. The pre-processing step essentially replaces context switches in SystemC threads with normal function calls which can be handled by KLEE. Our experiments, using a publicly available RISC-V specific interrupt controller, demonstrate the scalability and bug hunting effectiveness of our approach.


German Research Center for Artificial Intelligence
Deutsches Forschungszentrum für Künstliche Intelligenz