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 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
- IEEE Std. 1666-2005 IEEE Standard System C Language Reference Manual [4]
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
- Aldec Active-HDL , Riviera [5] , kosimulace.
- Cadence Design Systems C-to-Silicon Compiler [6] , syntéza.
- Synopsys System Studio [7] , modelování, analýza, verifikace.
- Mentor Graphics Catapult C Synthesis [8] , syntéza.
- Cynthesizer Forte Design Systems [9] , syntéza.
- Calypto SLEC System [10] , analýza kódu.
- Jeda Validation Tools Suite [11] , analýza kódu.
- SystemCrafter SystemCrafter SC [12] , syntéza.
Poznámky
- ↑ https://github.com/accellera-official/systemc/blob/master/LICENSE
- ↑ O SystemC (eng.) (downlink) . - stručný popis jazyka SystemC. Datum přístupu: 13. srpna 2009. Archivováno z originálu 28. října 2007.
- ↑ 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.
- ↑ 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. (neurčitý)
- ↑ Aldec - Technologies - SystemC Archivováno 22. března 2009.
- ↑ Překladač Cadence C-to-Silicon . Získáno 28. listopadu 2008. Archivováno z originálu 19. září 2011. (neurčitý)
- ↑ System Studio . Získáno 2. června 2011. Archivováno z originálu 4. června 2011. (neurčitý)
- ↑ 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. (neurčitý)
- ↑ 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. (neurčitý)
- ↑ Calypto | Systém SLEC . Získáno 28. listopadu 2008. Archivováno z originálu 21. prosince 2008. (neurčitý)
- ↑ Produkty JEDA | Automatizace ověřování modelu ESL . Získáno 28. listopadu 2008. Archivováno z originálu 4. května 2006. (neurčitý)
- ↑ SystemCrafter-Products . Získáno 28. listopadu 2008. Archivováno z originálu 1. prosince 2008. (neurčitý)
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é