M06 Let's simulate together! A tutorial on co-simulation

Printer-friendly versionPDF version
Location / Room: 


Davide Quaglia, University of Verona, IT (Contact Davide Quaglia)


Davide Quaglia, University of Verona, IT (Contact Davide Quaglia)
Robert de Simone, INRIA, FR (Contact Robert de Simone)
Stefano Centomo, University of Verona, IT (Contact Stefano Centomo)

A major problem when designing complex systems is the vast set of different design domains to consider. Usually, each design domain is managed by one or more team of engineers strongly specialized on the particular domain. Each team usually relies on the best-suited set of tools and techniques for modeling and simulating the components of the system the team must design. For this reason, a major obstacle to achieve holistic system simulation is the impossibility to connect different tools and heterogeneous models.

Intended audience
All participants involved in cyber-physical systems design and verification can fruitfully apply the provided knowledge in their work fields: automotive, avionics, control systems for smart manufacturing, energy plants, etc. Also people from academia, especially PhD students, can use the content of this tutorial to revise their knowledge on system theory with a new modern perspective on state-of-art applications.

The tutorial aims at providing knowledge about the concept of simulation, its role in the design of cyber-physical systems, the main issues and solutions to jointly address digital and analog domains. Training will be provided as a mix of theory and practice with both a scientific and an industrial perspective.

The Functional Mock-up Interface (FMI) Standard aims at tackling this problem by defining a standardized interface to connect different simulators and models. Another emerging approach addresses the issues introduced by the heterogeneity by reconciling heterogeneous models to an intermediate homogeneous representation. The approach relies on automatic translation and abstraction techniques to achieve such a target. This tutorial combines the automatic abstraction features provided by HIFSuite, and the interfacing functions furnished by the FMI Standard, to create a cycle-accurate virtual platform of an HW/SW device. The tutorial will start with a set of heterogeneous Intellectual Property (IP) components, representing both digital and analog devices. Each IP will be translated and abstracted to produce a "basic block" of an FMI-based simulation environment: a Functional Mock-up Unit (FMU). Then, the tutorial will show how to use an FMI Simulator, to integrate the produced FMUs to create the final model for the holistic simulation of the system. Finally, the tutorial will show how to use the obtained simulation environment when aiming at developing embedded SW running on the modeled HW platform. The participants will work directly on a case study composed of a general purpose CPU connected to a set of heterogeneous peripherals, ranging from HW accelerators to an analog accelerometer. They will learn how to exploit the FMI Standard to integrate heterogeneous models to describe an HW/SW device. Furthermore, they will learn how to create simulation scenarios composed by multiple FMUs. Tools utilized in the tutorial are open-source or licensed by EDALab s.r.l. such as HIFSuite.

Necessary background
Basic knowledge about difference between digital hardware and analog hardware and about system theory.


  • Stefano Centomo, Julien Deantoni, Robert de Simone, Using SystemC Cyber Models in an FMI Co-Simulation Environment, Proc. of Euromicro Conference on Digital System Design, 2016.
  • Frédéric Mallet and Robert de Simone, Correctness issues on MARTE/CCSL constraints, Sci. Comput. Program. 106, C (August 2015), pp. 78-92.
  • S. Centomo, M. Lora, A. Portaluri, F. Stefanni, F. Fummi, Automatic generation of cycle-accurate Simulink blocks from HDL IPs, Proc. of ECSI Forum on Specification and Design Languages (FDL), 2017.
  • Sara Vinco, Valerio Guarnieri, Franco Fummi, Code Manipulation for Virtual Platform Integration, IEEE Transactions on Computers, vol. 65, no. 9, Sept. 2016, pp. 2694-2708, DOI 10.1109/TC.2015.2500573.
  • M. Lora, S. Vinco, E. Fraccaroli, D. Quaglia, F. Fummi, Analog Models Manipulation for Effective Integration in Smart System Virtual Platforms, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, vol. 37, n. 2, Feb. 2018, pp. 378-391, DOI 10.1109/TCAD.2017.2705129.

Tutorial material
Attendees will receive handouts of presented slides and a virtual machine with the tools and models for the practical sessions.


13:30M06.1Tutorial and Conference Registration
14:00M06.2Introduction to Simulation and Model Manipulation

Davide Quaglia, University of Verona, IT, Contact Davide Quaglia

This session aims at introducing the main concepts of the tutorial as follows:

  • definition of cyber-physical systems
  • simulation issues for cyber-physical systems
  • modeling approaches
  • model manipulation: translation and abstraction
14:45M06.3Practical Session on Model Manipulation

Stefano Centomo, University of Verona, IT, Contact Stefano Centomo

This session brings the participants to practice the concept of model manipulation by using HIFSuite tool by EDALab s.r.l.

The tool will be provided in a Linux virtual machine together with models of some IP cores to be manipulated.

15:30M06.4Coffee Break for Tutorials
16:00M06.5Co-Simulation Issues and Approaches

Robert De Simone, INRIA Sophia-Antipolis, FR, Contact Robert de Simone

This session aims at introducing:

  • simulation issues when discrete-time models are mixed with continuous-time models
  • the Functional Mock-up Interface (FMI) Standard to provide interoperation between simulators
  • how FMI extensions can solve simulation issues
17:00M06.6Practical Session on Co-simulation

Stefano Centomo, University of Verona, IT, Contact Stefano Centomo

This session brings the participants to practice the concept of co-simulation by using an FMI-based simulation tool.

A virtual platform will be created starting from heterogeneous models of IP cores. An IP block will be manipulated by using HIFSuite to create the FMI interface which enables its co-simulation with the other components of the virtual platform.

The tools will be provided in a Linux virtual machine together with models of some IP cores to be manipulated and combined in the virtual platform.