SystemC Evolution Fika March 2021
The first SystemC Evolution Fika took place on March 17, 2021 presented free of charge to the SystemC Community. Two presentations were given; one on SystemC and Python and one about the Intel SystemC Compiler. See the abstracts and slides below.
March 17, 2021 Presentations
16:00 - 17:00 - Python and SystemC
Rocco Jonack, Arteris; Eyck Jentzsch, MINRES Technologies
Scripting is commonly used in today's applications and EDA tools. For SystemC various proprietary and open source solutions are available. All of them impose various constraints on SystemC users and often restrict the visibility of C++ components to Python. We present a novel approach of integrating SystemC. It does not require any instrumentation or manual preparation and exposes all SystemC types and functions as well as components provided by other libraries, i.e. IP libraries (even in binary form). It allows calling Python from SystemC modules e.g. to implement scriptable components for verification purposes. The session will outline how this can be used to implement interactive and dynamic tools to assemble Virtual prototypes (VP) easily as well as control their simulation. This is especially useful in HW/SW unit testing and FW verification where the dynamic nature of Python allows to select various test cuts of the VP to ease the tasks.
17:00 - 18:00 - Intel Compiler for SystemC
Mikhail Moiseev, Intel
Intel® Compiler for SystemC (ICSC) translates synthesizable SystemC design to synthesizable SystemVerilog design.
ICSC supports SystemC synthesizable subset in method and thread processes and arbitrary C++ code in module constructors. The tool produces human-readable SystemVerilog for complex multi-module designs in tens of seconds. This tool is focused on improving productivity of design and verification engineers and leaves optimization work for an underlying logic synthesis tool. It performs design checks to detect non-synthesizable code and common coding mistakes. ICSC is based on LLVM/Clang frontend, that allows to support modern C++ standards.
ICSC has a common library which includes collections of FIFOs, clock gate cells, zero-delay channels and others. ICSC supports SystemC immediate and temporal assertions translation into SystemVerilog Assertions (SVA).
The Intel® Compiler for SystemC is available at https://github.com/intel/systemc-compiler
The Very First SystemC Evolution Fika
The first SystemC Evolution Fika was held on March 17, 2021. It was a virtual event, hosted by Accellera's Webex, with around 80 participants. We had two presentations on SystemC-related topics - Python and SystemC by Rocco Jonack and Eyck Jentzsch, and Intel Compiler for SystemC by Mikhail Moiseev.
Using Python together with SystemC, it is possible to express simulator configuration, with model instantiations and model connections, in Python. This gives a flexible environment which can be combined with other Python tools, in areas such as computation or graphical visualization.
The Intel Compiler for SystemC translates SystemC to synthesizable SystemVerilog. With a focus on improving productivity in design and verification, it supports modern variants of C++ and the SystemC Synthesizable Standard. It generates human-readable SystemVerilog code, and it can be built using CMake. It also supports more advanced verification features, such as assertions and temporal assertions, which are translated from SystemC (C++) to corresponding SystemVerilog assertions. The Intel Compiler for SystemC is available via Intel's GitHub.
We would like to thank the speakers, and the participants, for this first Fika!
Ola Dahl, on behalf of the SystemC Evolution Team