SystemC

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 28. august 2018; checks kræver 6 redigeringer .
SystemC
Type bibliotek (programmering)
Udvikler Open System C Initiative
Skrevet i C++
Operativ system Cross platform
nyeste version 2.3
Licens Apache-licens 2.0 [1]
Internet side systemc.org

SystemC  er et modeldesign- og verifikationssprog på systemniveau implementeret som et open source C++- bibliotek. [2] Biblioteket inkluderer en hændelsesmodelleringsmotor, der giver dig mulighed for at få en eksekverbar enhedsmodel. Sproget bruges til at bygge transaktions- og adfærdsmodeller samt til syntese på højt niveau.

SystemC-sproget bruger en række koncepter, der ligner dem i VHDL- og Verilog -hardwarebeskrivelsessprogene : grænseflader, processer, signaler, hændelser, modulhierarki. SystemC-standarden pålægger ikke begrænsninger for brugen af ​​C++-sproget ved beskrivelse af systemmodeller.

Der er udviklet et udkast til standard for SystemC -syntese , hvis formål er at definere en delmængde af C++- og SystemC-sprogene, der er egnede til adfærds- og RTL-syntese. [3]

Standarder

Eksempel

Eksempelbeskrivelse af addermodellen :

#include "systemc.h" // inklusive header-filen i SystemC-biblioteket SC_MODULE ( adder ) // modul (klasse) erklæring { sc_in < int > a , b ; // porte sc_out < int > sum ; void do_add () // process { sum = a + b ; } SC_CTOR ( adder ) // constructor { SC_METHOD ( do_add ); // registrering af do_add-processen i modelleringsmotorens følsomme << a << b ; // procesfølsomhedsliste do_add } };

Funktioner af sproget

Moduler (modul)

Moduler er de grundlæggende byggeklodser i SystemC. En model i SystemC består normalt af flere moduler, der kommunikerer gennem porte.

Signaler

Signaler i SystemC svarer til at sende over en ledning.

Porte

Via porte kommunikerer modulet med omverdenen (normalt med andre moduler).

Processer

Processer er de vigtigste computerelementer. Processer kører parallelt .

Kanaler

Elementer kommunikerer gennem kanaler i SystemC. Kanaler kan være simple ledninger eller komplekse forbindelsesmekanismer som FIFO- køer eller busser .

Grundlæggende kanaler:

  • signal
  • buffer
  • fifo
  • mutex
  • semafor

Grænseflader

Porte bruger grænseflader til at kommunikere over kanaler.

Begivenheder

Skal deklareres under initialisering. Tillad processer at blive synkroniseret.

Datatyper

SystemC indeholder flere datatyper, der understøtter hardwaremodellering.

Udvidende standardtyper:

  • sc_int<> 64-bit signeret heltal
  • sc_uint<> 64-bit usigneret heltal
  • sc_bigint<>-signeret heltal af vilkårlig bithed
  • sc_biguint<> usigneret heltal af vilkårlig bithed

booleske typer:

  • sc_bit 2-cifret bit
  • sc_logic 4-cifret bit
  • sc_bv<> vektor (en-dimensional matrix) af sc_bit
  • sc_lv<> sc_logic vektor

Fixed point typer:

  • sc_fixed<> skabelon signeret fikspunkt
  • sc_ufixed<> skabelon usigneret fikspunkt
  • sc_fix untemplated signeret fikspunkt
  • sc_ufix ustempleret usigneret fikspunkt

Liste over programmer, der understøtter SystemC

Noter

  1. https://github.com/accellera-official/systemc/blob/master/LICENSE
  2. Om SystemC  (eng.)  (downlink) . - en kort beskrivelse af SystemC-sproget. Dato for adgang: 13. august 2009. Arkiveret fra originalen den 28. oktober 2007.
  3. OSCI Drafts Under Public Review  (engelsk)  (link ikke tilgængeligt) . - en liste over udkast til OSCI-standarder. Hentet 13. august 2009. Arkiveret fra originalen 21. marts 2012.
  4. IEEE-SA GetIEEE 1666 Vilkår for brug (downlink) . Hentet 16. november 2008. Arkiveret fra originalen 18. maj 2008. 
  5. Aldec - Technologies - SystemC Arkiveret 22. marts 2009.
  6. Kadence C-til-Silicon Compiler . Hentet 28. november 2008. Arkiveret fra originalen 19. september 2011.
  7. System Studio . Hentet 2. juni 2011. Arkiveret fra originalen 4. juni 2011.
  8. Katapult C-syntese - Korrekt efter konstruktion, RTL af høj kvalitet, 10-100x hurtigere - Mentor-grafik . Hentet 28. november 2008. Arkiveret fra originalen 6. december 2008.
  9. Cynthesizer lukker ESL-til-silicium-gabet (link ikke tilgængeligt) . Hentet 28. november 2008. Arkiveret fra originalen 12. maj 2008. 
  10. Calypto | SLEC system . Hentet 28. november 2008. Arkiveret fra originalen 21. december 2008.
  11. JEDA-produkter | ESL-modelvalideringsautomatisering . Hentet 28. november 2008. Arkiveret fra originalen 4. maj 2006.
  12. SystemCrafter-Produkter . Hentet 28. november 2008. Arkiveret fra originalen 1. december 2008.

Litteratur

  • Alekhin V.A. SystemC. Modellering af elektroniske systemer. - M . : Hotline - Telecom , 2018. - 320 s. - 500 eksemplarer.  - ISBN 978-5-9912-0722-5 .

Se også