Of course, you need to have the SystemC system libraries installed. Make sure you have them from your EDA Vendor, or as open source from Accellera

Virtual Platforms Demonstrators

A virtual platform captures your hardware in an executable program, which you can debug. The virtual platform is capable of loading exactly the same software that you will eventually run on your hardware.

ARM926


SystemC Platform, ready to be extended
With this platform, you will be able to boot Linux, and interact with the platform via the UART interface. You will be able to add your own peripheral models to the SystemC platform, and (for instance) develop device drivers for those devices. You will be able to connect GDB to the GDB stub interface and debug the running kernel and device drivers, you will also be able to run the platform under GDB, putting breakpoints in your model code.

You can, for instance, put a breakpoint in your model and your device driver, you will then be able to step through the hardware and the software as the device driver writes to the device, and the device code responds to the software access.

This platform contains the following SystemC models:

  • ARM926 Qbox (Containing ARM 926 + System controller) + TLM2C and SimpleCPU
  • GreenRouter (Generic TLM2.0 Bus fabric)
  • SimpleMemory
  • PL011 (Serial UART)
  • PL190 (Interrupt Controller)
  • SP804 (Timers)

Cortex M3


SystemC Platform, ready to be extended
This platform provides a generic M3 based ARM platform, ready for you to port your own software, or to extend with other models.

Only a simple binary test case is provided, but you will be able to connect GDB to the GDB stub interface and debug the running kernel and device drivers, you will also be able to run the platform under GDB, putting breakpoints in your model code.

You can, for instance, put a breakpoint in your model and your device driver, you will then be able to step through the hardware and the software as the device driver writes to the device, and the device code responds to the software access.

This platform contains the following SystemC models:

  • ARM Cortex M3 QBox (Containing ARM Cortex M3 controller) + TLM2C and SimpleCPU
  • GreenRouter (Generic TLM2.0 Bus fabric)
  • SimpleMemory
  • AHB GPIO (Register stub only)
  • APB dual-input timers
  • APB timer
  • APB Watchdog
  • APB UART
  • PL022 Serial port + TCP Serial

x86


QEMU platform, Add your own SystemC peripheral

This platform provides a complete Intel i7 based platform with a TLM-2.0 PCIE interface for you to add your own components. You will be able to boot Linux, and interact with the system via the serial interfaces as supported by QEMU. You will be able to connect GDB to the GDB stub interface and debug the running kernel and device drivers, you will also be able to run the platform under GDB, putting breakpoints in your SystemC model code.

You can, for instance, put a breakpoint in your model and your device driver, you will then be able to step through the hardware and the software as the device driver writes to the device, and the device code responds to the software access.

This platform includes a simple 'example' SystemC device to get you going, which demonstrates how to write SystemC TLM-2.0 models, support PCIe, interact with files, generate interrupts etc.

Once you have it working - please get in touch so we can help you with the next step.

Plug in SystemC TLM-2.0 CPU models using QBox

If you have a platform, but you need to add a SystemC CPU model, you will need our open source solution : QBox. Based on QEMU, QBox provides a full SystemC TLM-2.0 compatible CPU model for a wide variety of architectures. QBox allows the powerful JIT based CPU simulations to be exploited within a TLM-2.0 context, such that it can, for instance be instantiated without TLM models in a SystemC simulation environment.

If you don't find the right variety of model, or need other components, please email us.

Better SystemC code with GreenLib

If you are writing SystemC models, but would like to be able to write them faster, easier and with greater re-use, please check out GreenLib, our open-source powerful model productivity library. GreenLib includes components for:

  • Easy accessible register modelling (GreenReg)
  • Flexible configuration and inspection (GreenConfig)
  • More advanced and customised TLM 2.0 socket (GreenSocket)
  • GreenSocket extension to model different signals in an IP (GreenSignal)
  • Router to connect the IPs using the GreenSocket infrastructure (GreenRouter)
  • Framework to pass messages (GreenMessage)
  • Extension to write SystemC module using Python (GreenScript)
  • and many more !

If you don't find tools that help you, or you need something different, we are here to help .

If you have any problems, or suggestions, please get in touch. We can help you decide which starting point would be best to use, and what additional models you may need.

We're online, be in touch