Late Breaking Results: CHESSY: Coupled Hybrid Emulation with SystemC-FPGA Synchronization
Lorenzo Ruotolo, Giovanni Pollo, Mohamed Amine Hamdi, Matteo Risso, Yukai Chen, Enrico Macii, Massimo Poncino, Sara Vinco, Alessio Burrello, Daniele Jahier Pagliari

TL;DR
This paper presents CHESSY, an open-source framework that enables synchronized co-emulation of digital and non-digital components in cyber-physical systems, achieving significant speedups over traditional RTL simulation.
Contribution
It introduces an open-source, vendor-agnostic system connecting SystemC virtual platforms with FPGA emulation for accurate, fast, and synchronized system prototyping.
Findings
Up to 2500x speedup compared to RTL simulation.
Less than 2x total simulation time relative to pure FPGA emulation.
Effective synchronization of digital and non-digital components.
Abstract
The growing complexity of cyber-physical systems (CPSs) calls for early prototyping tools that combine accuracy, speed, and usability. Virtual Platforms (VPs) provide fast functional simulation, but hybrid co-emulation solutions, in which key digital components are deployed on FPGA, become necessary when accurate timing modelling is required and RTL simulation is too costly. However, existing hybrid emulation tools are mostly proprietary, and rely on vendor-specific FPGA features. To address this gap, we introduce an open-source framework that connects SystemC-based VPs with FPGA emulation, enabling full-system co-emulation of digital and non-digital components. The FPGA accelerates the execution of main digital subsystems, while a wrapper coordinates timing and communication with the VP through JTAG, maintaining synchronization with simulated peripherals. Evaluations using a RISC-V…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
