SystemC

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 28. srpna 2018; kontroly vyžadují 6 úprav .
SystemC
Typ knihovna (programování)
Vývojář Otevřete iniciativu System C
Zapsáno v C++
Operační systém Křížová platforma
Nejnovější verze 2.3
Licence Licence Apache 2.0 [1]
webová stránka systemc.org

SystemC  je jazyk pro návrh a ověřování modelů na systémové úrovni implementovaný jako open source knihovna C++ . [2] Knihovna obsahuje modul modelování událostí, který vám umožňuje získat spustitelný model zařízení. Jazyk se používá k vytváření transakčních a behaviorálních modelů a také k syntéze na vysoké úrovni.

Jazyk SystemC používá řadu konceptů podobných těm z jazyků VHDL a Verilog pro popis hardwaru : rozhraní, procesy, signály, události, hierarchie modulů. Standard SystemC neklade žádná omezení na použití jazyka C++ při popisu modelů systému.

Byl vyvinut návrh standardu pro syntézu SystemC , jehož účelem je definovat podmnožinu jazyků C++ a SystemC vhodných pro behaviorální a RTL syntézu. [3]

Normy

Příklad

Příklad popisu modelu sčítačky :

#include "systemc.h" // včetně hlavičkového souboru knihovny SystemC SC_MODULE ( adder ) // deklarace modulu (class) { sc_in < int > a , b ; // porty sc_out < int > sum ; void do_add () // proces { součet = a + b ; } SC_CTOR ( adder ) // konstruktor { SC_METHOD ( do_add ); // registrace procesu do_add v modelovacím enginu sensitive << a << b ; // seznam citlivosti procesu do_add } };

Vlastnosti jazyka

Moduly (modul)

Moduly jsou základními stavebními kameny v SystemC. Model v SystemC se obvykle skládá z několika modulů, které komunikují přes porty.

Signály

Signály v SystemC jsou ekvivalentem odesílání po drátě.

Porty

Prostřednictvím portů modul komunikuje s okolním světem (obvykle s ostatními moduly).

Procesy

Procesy jsou hlavními výpočetními prvky. Procesy běží paralelně .

Kanály

Prvky komunikují prostřednictvím kanálů v SystemC. Kanály mohou být jednoduché dráty nebo složité spojovací mechanismy, jako jsou fronty FIFO nebo sběrnice .

Základní kanály:

  • signál
  • vyrovnávací paměť
  • fifo
  • mutex
  • semafor

Rozhraní

Porty používají rozhraní ke komunikaci přes kanály.

Události

Musí být deklarováno během inicializace. Povolit synchronizaci procesů.

Datové typy

SystemC obsahuje několik datových typů, které podporují hardwarové modelování.

Rozšíření standardních typů:

  • sc_int<> 64bitové celé číslo se znaménkem
  • sc_uint<> 64bitové celé číslo bez znaménka
  • sc_bigint<> celé číslo se znaménkem libovolné bitové hodnoty
  • sc_biguint<> celé číslo bez znaménka libovolné bitové hodnoty

Booleovské typy:

  • sc_bit 2místný bit
  • sc_logic 4místný bit
  • sc_bv<> vektor (jednorozměrné pole) sc_bit
  • sc_lv<> vektor sc_logic

Typy pevných bodů:

  • sc_fixed<> šablona podepsaný pevný bod
  • sc_ufixed<> šablonovaný nepodepsaný pevný bod
  • sc_fix netemplátovaný podepsaný pevný bod
  • sc_ufix untemplated unsigned pevný bod

Seznam aplikací, které podporují SystemC

Poznámky

  1. https://github.com/accellera-official/systemc/blob/master/LICENSE
  2. O SystemC  (eng.)  (downlink) . - stručný popis jazyka SystemC. Datum přístupu: 13. srpna 2009. Archivováno z originálu 28. října 2007.
  3. OSCI Drafts Under Public Review  (anglicky)  (odkaz není dostupný) . - seznam návrhů norem OSCI. Získáno 13. srpna 2009. Archivováno z originálu dne 21. března 2012.
  4. Podmínky použití IEEE-SA GetIEEE 1666 (odkaz dolů) . Získáno 16. listopadu 2008. Archivováno z originálu 18. května 2008. 
  5. Aldec - Technologies - SystemC Archivováno 22. března 2009.
  6. Překladač Cadence C-to-Silicon . Získáno 28. listopadu 2008. Archivováno z originálu 19. září 2011.
  7. System Studio . Získáno 2. června 2011. Archivováno z originálu 4. června 2011.
  8. Catapult C Synthesis – Correct-by-Construction, vysoce kvalitní RTL, 10-100x rychlejší – Mentor Graphics . Získáno 28. listopadu 2008. Archivováno z originálu 6. prosince 2008.
  9. Cynthesizer Uzavírá mezeru mezi ESL a křemíkem (odkaz není dostupný) . Získáno 28. listopadu 2008. Archivováno z originálu 12. května 2008. 
  10. Calypto | Systém SLEC . Získáno 28. listopadu 2008. Archivováno z originálu 21. prosince 2008.
  11. Produkty JEDA | Automatizace ověřování modelu ESL . Získáno 28. listopadu 2008. Archivováno z originálu 4. května 2006.
  12. SystemCrafter-Products . Získáno 28. listopadu 2008. Archivováno z originálu 1. prosince 2008.

Literatura

  • Alekhin V.A. SystemC. Modelování elektronických systémů. - M . : Horká linka - Telecom , 2018. - 320 s. - 500 výtisků.  - ISBN 978-5-9912-0722-5 .

Viz také