SystemC Libraries & Projects
This page gives an overview of open-source SystemC libraries and projects. Please let us know if a project or library is missing or needs update.
Models
This is a list of SystemC models for use in virtual platforms:
Name | Description | License |
---|---|---|
NVIDIA Deep Learning Accelerator (NVDLA) | SystemC TLM2.0-compatible virtual platform | NVIDIA Open NVDLA License and Agreement v1.0 |
ParaNut Processor | Customizable, highly scalable, and RISC-V compatible processor architecture for FPGA-based systems | BSD-2-Clause |
Virtual Components Modeling Library (VCML) Models | The VCML productivity library contains many component models (ARM, RISC-V, Virtio, ...) | Apache-2.0 |
Virtual Components Modeling Library (VCML) NVDLA Model | VCML integration of the NVDLA model | Apache-2.0 |
VPV-Peripherals | Library of example SystemC/TLM peripherals for various SoCs based on the SCC library | Apache-2.0 |
Productivity and Utility Libraries
The Productivity and utility libraries contain common resources, building blocks, and utilities that can be used for creation of SystemC-based virtual platforms, supporting different use cases such as software development, Architecture exploration, and High-Level Synthesis.
Name | Description | License |
---|---|---|
High-Level Synthesis Libs (HLSLibs) | Repository for the unlimited length integer and fixed-point AC types usable with SystemC, plus math, DSP and ML building blocks, as well as SystemC MatchLib | Apache-2.0 |
SystemC-Components (SCC) | A light weight productivity library for SystemC and TLM 2.0 based modeling tasks using C++11 provides common functions, components and modules often needed in SystemC based models | Apache-2.0 |
Virtual Components Modeling Library (VCML) | Sockets, Tracing, Registers, GDB server, Logging, Session Protocol, Component Models, Network backends, TLM2.0 protocols | Apache-2.0 |
sc-during | Parallel programming on top of SystemC/TLM | LGPLv2.1 |
Virtual Platforms and Virtual Prototypes
This is a list of open-source Virtual Platforms and Virtual Prototypes (VPs):
Name | Description | OS / Workloads | License |
---|---|---|---|
SymEx-VP | A concolic testing framework for RISC-V embedded software with support for SystemC peripherals. | RIOT, Zephyr, NuttX, Zig | GPLv3 |
ARMv8 Virtual Platform (AVP64) | OCX QEMU-based ARMv8 multi-core VP | CoreMark, Dhrystone, Linux, Xen hypervisor | MIT |
GreenSocs A53 VP | ARM Cortex A53 multi-core VP (registration required) | Linux | GPLv2 |
GreenSocs N1 VP | ARM Neoverse N1 multi-core VP (registration required) | Linux | GPLv2 |
GreenSocs RISC-V64 VP | 64-bit RISC-V multi-core VP (registration required) | Linux | GPLv2 |
HIFIVE1-VP | DBT-RISE-based RISC-V VP | FreeRTOS | BSD-3-Clause |
OpenRISC 1000 Multicore VP (OR1KMVP) | OR1KISS-based multi-core OpenRISC1000 VP | Linux | Apache-2.0 |
TGC-VP | The Scale4Edge ecosystem RISC-V VP | FreeRTOS | Apache-2.0 |
Xilinx Zynq-7000 | QEMU based Xilinx Zynq-7000 SoC connected SystemC TLM 2.0 | MIT |
Compilers, parsers, and source-to-source transformations
Name | Description | License |
---|---|---|
Recoding Infrastructure for SystemC (RISC) | Framework for analysis and agressive parallel simulation of embedded system models described in SystemC | BSD-3-Clause |
SystemC compiler | Compiler which translates synthesizable SystemC design to synthesizable SystemVerilog design | Apache-2.0 |
Verilator | Compiler and simulator which translates Verilog/SystemVerilog to SystemC | LGPLv3 |
systemc-clang | Static analysis framework for RTL and TLM SystemC models including a HDL synthesis plugin that generates Verilog | systemc-clang |
Simulators
Name | Description | License |
---|---|---|
SystemC | SystemC Reference Implementation | Apache-2.0 |
SystemC-AMS | SystemC-AMS Proof-of-concept implementation | Apache-2.0 |
Python Integration
Name | Description | License |
---|---|---|
PySysC | A Python package to make SystemC usable from Python. It supports composition of a SystemC/TLM model as well as running the simulation. | Apache-2.0 |
Verification
Name | Description | License |
---|---|---|
UVM-Connect | UVM-based library that provides TLM1 and TLM2 connectivity and object passing between SystemC and SystemVerilog UVM models and components | Apache-2.0 |
UVM-ML | Universal Verification Methodology Multi-Language (UVM-ML) Open Architecture supporting UVM-SV, UVM-e, and UVM-SC | Apache-2.0 |
UVM-SystemC | Accellera implementation and standard of the Universal Verification Methodology (UVM) in SystemC | Apache-2.0 |
CRAVE | Constrained RAndom Verification Enviroment NOTE: Join Accellera to get access to the latest version of this library |
MIT |
FC4SC | Functional Coverage for SystemC NOTE: Join Accellera to get access to the latest version of this library |
Apache-2.0 |