SystemC
Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från
versionen som granskades den 28 augusti 2018; kontroller kräver
6 redigeringar .
SystemC är ett modelldesign- och verifieringsspråk på systemnivå implementerat som ett C++- bibliotek med öppen källkod . [2] Biblioteket inkluderar en händelsemodelleringsmotor som låter dig få en körbar enhetsmodell. Språket används för att bygga transaktions- och beteendemodeller, samt för syntes på hög nivå.
SystemC-språket använder ett antal koncept som liknar de för VHDL och Verilog hårdvarubeskrivningsspråk : gränssnitt, processer, signaler, händelser, modulhierarki. SystemC-standarden lägger inga restriktioner på användningen av C++-språket när man beskriver systemmodeller.
Ett utkast till standard för SystemC- syntes har utvecklats , vars syfte är att definiera en delmängd av C++- och SystemC-språken som är lämpliga för beteende- och RTL-syntes. [3]
Standarder
- IEEE Std. 1666-2005 IEEE Standard System C Language Reference Manual [4]
Exempel
Exempelbeskrivning av addermodellen :
#include "systemc.h" // inklusive rubrikfilen för SystemC-biblioteket
SC_MODULE ( adder ) // modul (klass) deklaration {
sc_in < int > a , b ; // portar sc_out < int > summa ;
void do_add () // process {
summa = a + b ;
}
SC_CTOR ( adderare ) // konstruktor {
SC_METHOD ( do_add ); // registrering av do_add-processen i modelleringsmotorns känslighet << a << b ; // processkänslighetslista do_add }
};
Funktioner i språket
Moduler (modul)
Moduler är de grundläggande byggstenarna i SystemC. En modell i SystemC består vanligtvis av flera moduler som kommunicerar via portar.
Signaler
Signaler i SystemC motsvarar att skicka över en tråd.
Portar
Genom portar kommunicerar modulen med omvärlden (oftast med andra moduler).
Processer
Processer är de viktigaste beräkningselementen. Processer löper parallellt .
Kanaler
Element kommunicerar genom kanaler i SystemC. Kanaler kan vara enkla ledningar eller komplexa anslutningsmekanismer som FIFO- köer eller bussar .
Grundläggande kanaler:
- signal
- buffert
- fifo
- mutex
- semafor
Gränssnitt
Portar använder gränssnitt för att kommunicera över kanaler.
Händelser
Måste deklareras under initieringen. Tillåt processer att synkroniseras.
Datatyper
SystemC innehåller flera datatyper som stöder hårdvarumodellering.
Utökande standardtyper:
- sc_int<> 64-bitars signerat heltal
- sc_uint<> 64-bitars osignerat heltal
- sc_bigint<> signerat heltal av godtycklig bithet
- sc_biguint<> osignerat heltal av godtycklig bithet
booleska typer:
- sc_bit 2-siffrig bit
- sc_logic 4-siffrig bit
- sc_bv<> vektor (endimensionell array) av sc_bit
- sc_lv<> sc_logic vektor
Typer av fasta punkter:
- sc_fixed<> mall signerad fixpunkt
- sc_ufixed<> mall med osignerad fixpunkt
- sc_fix untemplated signerad fixpunkt
- sc_ufix untemplated osignerad fixpunkt
Lista över applikationer som stöder SystemC
- Aldec Active-HDL , Riviera [5] , samsimulering.
- Cadence Design Systems C-to-Silicon Compiler [6] , syntes.
- Synopsys System Studio [7] , modellering, analys, verifiering.
- Mentor Graphics Katapult C syntes [8] , syntes.
- Forte Design Systems Cynthesizer [9] , syntes.
- Calypto SLEC System [10] , kodanalys.
- Jeda Validation Tools Suite [11] , kodanalys.
- SystemCrafter SystemCrafter SC [12] , syntes.
Anteckningar
- ↑ https://github.com/accellera-official/systemc/blob/master/LICENSE
- ↑ Om SystemC (eng.) (nedlänk) . - en kort beskrivning av SystemC-språket. Tillträdesdatum: 13 augusti 2009. Arkiverad från originalet 28 oktober 2007.
- ↑ OSCI-utkast under offentlig granskning (engelska) (länk ej tillgänglig) . - En lista över utkast till OSCI-standarder. Hämtad 13 augusti 2009. Arkiverad från originalet 21 mars 2012.
- ↑ IEEE-SA GetIEEE 1666 Användarvillkor (nedlänk) . Hämtad 16 november 2008. Arkiverad från originalet 18 maj 2008. (obestämd)
- ↑ Aldec - Technologies - SystemC Arkiverad 22 mars 2009.
- ↑ Kadens C-till-Silicon-kompilator . Hämtad 28 november 2008. Arkiverad från originalet 19 september 2011. (obestämd)
- ↑ Systemstudio . Hämtad 2 juni 2011. Arkiverad från originalet 4 juni 2011. (obestämd)
- ↑ Katapult C-syntes - Rätt efter konstruktion, högkvalitativ RTL, 10-100x snabbare - Mentorgrafik . Hämtad 28 november 2008. Arkiverad från originalet 6 december 2008. (obestämd)
- ↑ Cynthesizer stänger ESL-till-Silicon Gap (länk ej tillgänglig) . Hämtad 28 november 2008. Arkiverad från originalet 12 maj 2008. (obestämd)
- ↑ Calypto | SLEC System . Hämtad 28 november 2008. Arkiverad från originalet 21 december 2008. (obestämd)
- ↑ JEDA-produkter | ESL-modellvalideringsautomatisering . Hämtad 28 november 2008. Arkiverad från originalet 4 maj 2006. (obestämd)
- ↑ SystemCrafter-Produkter . Hämtad 28 november 2008. Arkiverad från originalet 1 december 2008. (obestämd)
Litteratur
- Alekhin V.A. SystemC. Modellering av elektroniska system. - M . : Hotline - Telecom , 2018. - 320 sid. - 500 exemplar. - ISBN 978-5-9912-0722-5 .
Se även