close

SystemC

Mergi la navigare Mergi la căutare
SystemC
Tip de biblioteca (programare)
Dezvoltator Inițiativa Sistem deschis C
Scris in C++
Sistem de operare Platformă transversală
ultima versiune 2.3
Licență Licență Apache 2.0 [1]
Site-ul web systemc.org

SystemC  este un limbaj de proiectare și verificare a modelului la nivel de sistem, implementat ca o bibliotecă C++ open source . [2] Biblioteca include un motor de modelare a evenimentelor care vă permite să obțineți un model de dispozitiv executabil. Limbajul este folosit pentru a construi modele tranzacționale și comportamentale, precum și pentru sinteza la nivel înalt.

Limbajul SystemC folosește o serie de concepte similare cu cele ale limbajelor de descriere hardware VHDL și Verilog : interfețe, procese, semnale, evenimente, ierarhia modulelor. Standardul SystemC nu impune restricții privind utilizarea limbajului C++ atunci când descrie modelele de sistem.

A fost dezvoltat un proiect de standard pentru sinteza SystemC , al cărui scop este de a defini un subset al limbajelor C++ și SystemC potrivite pentru sinteza comportamentală și RTL. [3]

Standarde

  • IEEE Std. 1666-2005 IEEE Standard System C Language Reference Manual [4]

Exemplu

Exemplu de descriere a modelului de adunator :

#include "systemc.h"       // inclusiv fișierul antet al bibliotecii SystemC 

SC_MODULE ( adăugător ) // declarație modul (clasă) {          

    sc_in < int > a , b ; // porturi sc_out < int > suma ;          
     

    void do_add () // proces {            
    
        suma = a + b ;    
    }

    SC_CTOR ( adăugător ) // constructor {          
    
        SC_METHOD ( do_add ); // înregistrarea procesului do_add în motorul de modelare sensibil << a << b ; // lista de sensibilitate proces do_add }    
              
    
};

Caracteristicile limbii

Module (modul)

Modulele sunt blocurile de bază în SystemC. Un model din SystemC constă de obicei din mai multe module care comunică prin porturi.

Semnale

Semnalele din SystemC sunt echivalentul cu trimiterea printr-un fir.

Porturi

Prin porturi, modulul comunică cu lumea exterioară (de obicei cu alte module).

Procese

Procesele sunt principalele elemente de calcul. Procesele rulează în paralel .

Canale

Elementele comunică prin canale în SystemC. Canalele pot fi fire simple sau mecanisme complexe de conectare, cum ar fi cozi FIFO sau autobuze .

Canale de bază:

  • semnal
  • tampon
  • fifo
  • mutex
  • semafor

Interfețe

Porturile folosesc interfețe pentru a comunica prin canale.

Evenimente

Trebuie declarat în timpul inițializării. Permiteți sincronizarea proceselor.

Tipuri de date

SystemC conține mai multe tipuri de date care acceptă modelarea hardware.

Extinderea tipurilor standard:

  • sc_int<> întreg semnat pe 64 de biți
  • sc_uint<> întreg fără semn pe 64 de biți
  • sc_bigint<> întreg cu semn de bitness arbitrar
  • sc_biguint<> întreg nesemnat de bitness arbitrar

Tipuri booleene:

  • sc_bit bit cu 2 cifre
  • sc_logic bit din 4 cifre
  • vector sc_bv<> (matrice unidimensională) al sc_bit
  • sc_lv<> sc_logic vector

Tipuri de puncte fixe:

  • sc_fixed<> șablon semnat punct fix
  • sc_ufixed<> șablon punct fix nesemnat
  • sc_fix punct fix semnat fără șablon
  • sc_ufix punct fix nesemnat fără șablon

Lista aplicațiilor care acceptă SystemC

Note

  1. https://github.com/accellera-official/systemc/blob/master/LICENSE
  2. Despre SystemC  (ing.)  (downlink) . - o scurtă descriere a limbajului SystemC. Data accesului: 13 august 2009. Arhivat din original la 28 octombrie 2007.
  3. OSCI Drafts Under Public Review  (engleză)  (link nu este disponibil) . - o listă de proiecte de standarde OSCI. Preluat la 13 august 2009. Arhivat din original la 21 martie 2012.
  4. IEEE-SA GetIEEE 1666 Termeni de utilizare (downlink) . Consultat la 16 noiembrie 2008. Arhivat din original pe 18 mai 2008. 
  5. Aldec - Technologies - SystemC Arhivat 22 martie 2009.
  6. Cadence C-to-Silicon Compiler . Consultat la 28 noiembrie 2008. Arhivat din original pe 19 septembrie 2011.
  7. System Studio . Consultat la 2 iunie 2011. Arhivat din original pe 4 iunie 2011.
  8. Sinteză Catapult C - Corect după construcție, RTL de înaltă calitate, de 10-100 de ori mai rapidă - Mentor Graphics . Consultat la 28 noiembrie 2008. Arhivat din original pe 6 decembrie 2008.
  9. Cynthesizer Closes the ESL-to-Silicon Gap (link nu este disponibil) . Consultat la 28 noiembrie 2008. Arhivat din original la 12 mai 2008. 
  10. Calypto | Sistemul SLEC . Consultat la 28 noiembrie 2008. Arhivat din original pe 21 decembrie 2008.
  11. Produse JEDA | Automatizare de validare a modelului ESL . Consultat la 28 noiembrie 2008. Arhivat din original pe 4 mai 2006.
  12. SystemCrafter-Produse . Consultat la 28 noiembrie 2008. Arhivat din original la 1 decembrie 2008.

Literatură

  • Alekhin V.A. SystemC. Modelarea sistemelor electronice. - M . : Hot line - Telecom , 2018. - 320 p. - 500 de exemplare.  - ISBN 978-5-9912-0722-5 .

Vezi și