🤖 AI Summary
Addressing the challenge of integrating virtual prototyping with multi-tool co-simulation in complex systems, this paper proposes a SystemC TLM-based virtual platform framework natively supporting the Functional Mock-up Interface (FMI) standard. The framework enables bidirectional data exchange between the virtual platform and external simulation tools—such as control models and physical environment simulators—without modifying the target software, thereby overcoming SystemC’s inherent lack of native FMI support. It represents the first deep integration of FMI at the TLM abstraction level, enabling full-system co-simulation and injection of real-world environmental inputs. Evaluated on a temperature sensor case study, the framework supports early software pre-testing and verification under functional safety standards (e.g., ISO 26262), significantly enhancing test completeness and trustworthiness of embedded software in virtual environments.
📝 Abstract
As systems become more complex, the demand for thorough testing and virtual prototyping grows. To simulate whole systems, multiple tools are usually needed to cover different parts. These parts include the hardware of a system and the environment with which the system interacts. The Functional Mock-up Interface (FMI) standard for co-simulation can be used to connect these tools.
The control part of modern systems is usually a computing unit, such as a System-on-a-Chip (SoC) or Microcontroller Unit (MCU), which executes software from a connected memory and interacts with peripherals. To develop software without requiring access to physical hardware, full-system simulators, the so-called Virtual Platforms (VPs), are commonly used. The IEEE-standardized framework for VP development is SystemC TLM. SystemC provides interfaces and concepts that enable modular design and model exchange. However, SystemC lacks native FMI support, which limits the integration into broader co-simulation environments.
This paper presents a novel framework to control and interact with SystemC-based VPs using the FMI. We present a case study showing how a simulated temperature sensor in a SystemC simulation can obtain temperature values from an external tool via FMI. This approach allows the unmodified target software to run on the VP and receive realistic environmental input data such as temperature, velocity, or acceleration values from other tools. Thus, extensive software testing and verification is enabled. By having tests ready and the software pre-tested using a VP once the physical hardware is available, certifications like ISO 26262 can be done earlier.