close

SystemC

Zur Navigation gehen Zur Suche gehen
SystemC
Art der Bibliothek (Programmierung)
Entwickler Open-System-C-Initiative
Geschrieben in C++
Operationssystem Plattformübergreifend
letzte Version 2.3
Lizenz Apache-Lizenz 2.0 [1]
Webseite systemc.org

SystemC  ist eine Modelldesign- und Verifizierungssprache auf Systemebene, die als Open-Source- C++- Bibliothek implementiert ist. [2] Die Bibliothek enthält eine Ereignismodellierungs-Engine, mit der Sie ein ausführbares Gerätemodell erhalten können. Die Sprache wird zum Erstellen von Transaktions- und Verhaltensmodellen sowie für die Synthese auf hoher Ebene verwendet.

Die Sprache SystemC verwendet eine Reihe von Konzepten, die denen der Hardwarebeschreibungssprachen VHDL und Verilog ähneln : Schnittstellen, Prozesse, Signale, Ereignisse, Modulhierarchie. Der SystemC-Standard erlegt der Verwendung der C++-Sprache bei der Beschreibung von Systemmodellen keine Beschränkungen auf.

Es wurde ein Standardentwurf für die SystemC- Synthese entwickelt , dessen Zweck es ist, eine Teilmenge der C++- und SystemC-Sprachen zu definieren, die für die Verhaltens- und RTL-Synthese geeignet sind. [3]

Normen

  • IEEE-Std. 1666-2005 Referenzhandbuch für die Sprache des IEEE-Standardsystems C [4]

Beispiel

Beispielbeschreibung des Addierermodells :

#include "systemc.h"       // einschließlich der Header-Datei der SystemC-Bibliothek 

SC_MODULE ( Addierer ) // Modul (Klasse) Deklaration {          

    sc_in < int > a , b ; // Ports sc_out < int > sum ;          
     

    void do_add () // verarbeiten {            
    
        Summe = a + b ;    
    }

    SC_CTOR ( Addierer ) // Konstruktor {          
    
        SC_METHOD ( do_add ); // Registrierung des do_add-Prozesses in der Modellierungs-Engine sensitive << a << b ; // Sensitivitätsliste verarbeiten do_add }    
              
    
};

Eigenschaften der Sprache

Module (Modul)

Module sind die Grundbausteine ​​in SystemC. Ein Modell in SystemC besteht normalerweise aus mehreren Modulen, die über Ports kommunizieren.

Signale

Signale in SystemC sind das Äquivalent zum Senden über eine Leitung.

Häfen

Über Ports kommuniziert das Modul mit der Außenwelt (normalerweise mit anderen Modulen).

Prozesse

Prozesse sind die wichtigsten Rechenelemente. Prozesse laufen parallel .

Kanäle

Elemente kommunizieren über Kanäle in SystemC. Kanäle können einfache Drähte oder komplexe Verbindungsmechanismen wie FIFO- Warteschlangen oder Busse sein .

Basiskanäle:

  • Signal
  • Puffer
  • fifo
  • mutex
  • Semaphor

Schnittstellen

Ports verwenden Schnittstellen, um über Kanäle zu kommunizieren.

Veranstaltungen

Muss während der Initialisierung deklariert werden. Zulassen, dass Prozesse synchronisiert werden.

Datentypen

SystemC enthält mehrere Datentypen, die die Hardwaremodellierung unterstützen.

Standardtypen erweitern:

  • sc_int<> 64-Bit-Ganzzahl mit Vorzeichen
  • sc_uint<> 64-Bit-Ganzzahl ohne Vorzeichen
  • sc_bigint<> vorzeichenbehaftete Ganzzahl beliebiger Bitzahl
  • sc_biguint<> vorzeichenlose ganze Zahl beliebiger Bitanzahl

Boolesche Typen:

  • sc_bit 2-stelliges Bit
  • sc_logic 4-stelliges Bit
  • sc_bv<> Vektor (eindimensionales Array) von sc_bit
  • sc_lv<> sc_logic-Vektor

Festpunkttypen:

  • sc_fixed<> Schablone vorzeichenbehafteter Festpunkt
  • sc_ufixed<> vorzeichenloser Fixpunkt mit Vorlage
  • sc_fix Vorzeichenloser Fixpunkt ohne Vorlage
  • sc_ufix untemplated vorzeichenloser Fixpunkt

Liste der Anwendungen, die SystemC unterstützen

Notizen

  1. https://github.com/accellera-official/systemc/blob/master/LICENSE
  2. Über SystemC  (eng.)  (Downlink) . - eine kurze Beschreibung der Sprache SystemC. Zugriffsdatum: 13. August 2009. Archiviert vom Original am 28. Oktober 2007.
  3. OSCI Drafts Under Public Review  (Englisch)  (Link nicht verfügbar) . - eine Liste von OSCI-Standardentwürfen. Abgerufen am 13. August 2009. Archiviert vom Original am 21. März 2012.
  4. IEEE-SA GetIEEE 1666 Nutzungsbedingungen (Downlink) . Abgerufen am 16. November 2008. Archiviert vom Original am 18. Mai 2008. 
  5. Aldec – Technologien – SystemC Archiviert am 22. März 2009.
  6. Cadence C-to-Silicon-Compiler . Abgerufen am 28. November 2008. Archiviert vom Original am 19. September 2011.
  7. SystemStudio . Abgerufen am 2. Juni 2011. Archiviert vom Original am 4. Juni 2011.
  8. Catapult C Synthesis – Correct-by-Construction, hochwertiges RTL, 10-100x schneller – Mentor Graphics . Abgerufen am 28. November 2008. Archiviert vom Original am 6. Dezember 2008.
  9. Cynthesizer schließt die Lücke zwischen ESL und Silizium (Link nicht verfügbar) . Abgerufen am 28. November 2008. Archiviert vom Original am 12. Mai 2008. 
  10. Kalypto | SLEC-System . Abgerufen am 28. November 2008. Archiviert vom Original am 21. Dezember 2008.
  11. JEDA-Produkte | Automatisierung der ESL-Modellvalidierung . Abgerufen am 28. November 2008. Archiviert vom Original am 4. Mai 2006.
  12. SystemCrafter-Produkte . Abgerufen am 28. November 2008. Archiviert vom Original am 1. Dezember 2008.

Literatur

  • Alechin V.A. SystemC. Modellierung elektronischer Systeme. - M .: Hotline - Telekom , 2018. - 320 p. - 500 Exemplare.  - ISBN 978-5-9912-0722-5 .

Siehe auch