SystemC stellt verschiedene Konstrukte zur Systembeschreibung zur Verfügung. Die wichtigsten sind:
- Module: Diese definieren Container, die nach außen nur durch ihre Interfaces repräsentiert werden. Dadurch wird die Implementierung versteckt, was eine Möglichkeit zur Einbindung von bereits vorhandenen, sogenannten Intellectual-Property (IP)-Blöcken schafft.
- Prozesse: In Prozessen wird die eigentliche Funktionalität beschrieben. Dabei unterscheidet man verschiedene Typen von Prozessen. Method-Prozesse verhalten sich wie Funktionen. Thread-Prozesse werden dagegen nur einmal gestartet und werden immer wieder durchlaufen. CThread-Prozesse sind synchrone Thread-Prozesse.
- Signale: Diese definieren Verbindungen zwischen den Modulen und werden wie in anderen Hardware-Beschreibungssprachen verwendet, d.h. die Zuweisung von Signalwerten kann verzögert erfolgen.
- Datentypen: In SystemC stehen alle Datentypen von C++ sowie Festkommatypen und 2- und 4-wertige Logik zur Verfügung.
- Clocks dienen der Zeitsteuerung der Simulation. Dabei sind mehrere Clocks mit beliebigen Phasenlagen zueinander möglich.
- Reactivity: Diese definieren Mechanismen für das Warten auf Taktflanken und Ereignisse sowie das Überwachen von bestimmten Signalen.
- Systemkonzepte: Diese ermöglichen die Beschreibung von Kommunikationskanälen und abstrakten Kommunikationsprotokollen (Handshakes).