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
Sorts bibliotek (programmering)
Utvecklaren Open System C Initiative
Skrivet i C++
Operativ system Cross plattform
senaste versionen 2.3
Licens Apache License 2.0 [1]
Hemsida systemc.org

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

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

Anteckningar

  1. https://github.com/accellera-official/systemc/blob/master/LICENSE
  2. Om SystemC  (eng.)  (nedlänk) . - en kort beskrivning av SystemC-språket. Tillträdesdatum: 13 augusti 2009. Arkiverad från originalet 28 oktober 2007.
  3. 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.
  4. IEEE-SA GetIEEE 1666 Användarvillkor (nedlänk) . Hämtad 16 november 2008. Arkiverad från originalet 18 maj 2008. 
  5. Aldec - Technologies - SystemC Arkiverad 22 mars 2009.
  6. Kadens C-till-Silicon-kompilator . Hämtad 28 november 2008. Arkiverad från originalet 19 september 2011.
  7. Systemstudio . Hämtad 2 juni 2011. Arkiverad från originalet 4 juni 2011.
  8. 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.
  9. Cynthesizer stänger ESL-till-Silicon Gap (länk ej tillgänglig) . Hämtad 28 november 2008. Arkiverad från originalet 12 maj 2008. 
  10. Calypto | SLEC System . Hämtad 28 november 2008. Arkiverad från originalet 21 december 2008.
  11. JEDA-produkter | ESL-modellvalideringsautomatisering . Hämtad 28 november 2008. Arkiverad från originalet 4 maj 2006.
  12. SystemCrafter-Produkter . Hämtad 28 november 2008. Arkiverad från originalet 1 december 2008.

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