Supporting SystemC model in X-HEEP
is still a work-in-progress.
However, a simple example is provided in the SystemC testbench available in tb/tb_sc_top.cpp
.
When compiling the X-HEEP
with Verilator using SystemC, the above testbench is used for simulation.
The testbench gets an X-HEEP
external-memory obi
master port to communicate with a SystemC memory model.
Such model is very simple as meant to be an example and is provided in tb/systemc_tb
.
For those who want to extend the functionality of X-HEEP
with SystemC, such examples can be used as starting point.
The SystemC modules leverages TLM-2.0
as well as baseline SystemC functionalities.
The X-HEEP
obi
port is connected to a C++
direct-mapped cache who handles hit
and miss
with pre-defined latencies.
It uses TLM-2.0
to communicate with the external SystemC memory on miss
cache-transactions.
A module in SystemC then communicates with the RTL SystemC model compiled by Verilator to provides read/write data.