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 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
- IEEE Std. 1666-2005 IEEE Standard System C Sprog Referencemanual [4]
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
- Aldec Active-HDL , Riviera [5] , co-simulering.
- Cadence Design Systems C-to-Silicon Compiler [6] , syntese.
- Synopsys System Studio [7] , modellering, analyse, verifikation.
- Mentor Grafik Katapult C syntese [8] , syntese.
- Forte Design Systems Cynthesizer [9] , syntese.
- Calypto SLEC System [10] , kodeanalyse.
- Jeda Validation Tools Suite [11] , kodeanalyse.
- SystemCrafter SystemCrafter SC [12] , syntese.
Noter
- ↑ https://github.com/accellera-official/systemc/blob/master/LICENSE
- ↑ Om SystemC (eng.) (downlink) . - en kort beskrivelse af SystemC-sproget. Dato for adgang: 13. august 2009. Arkiveret fra originalen den 28. oktober 2007.
- ↑ 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.
- ↑ IEEE-SA GetIEEE 1666 Vilkår for brug (downlink) . Hentet 16. november 2008. Arkiveret fra originalen 18. maj 2008. (ubestemt)
- ↑ Aldec - Technologies - SystemC Arkiveret 22. marts 2009.
- ↑ Kadence C-til-Silicon Compiler . Hentet 28. november 2008. Arkiveret fra originalen 19. september 2011. (ubestemt)
- ↑ System Studio . Hentet 2. juni 2011. Arkiveret fra originalen 4. juni 2011. (ubestemt)
- ↑ 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. (ubestemt)
- ↑ Cynthesizer lukker ESL-til-silicium-gabet (link ikke tilgængeligt) . Hentet 28. november 2008. Arkiveret fra originalen 12. maj 2008. (ubestemt)
- ↑ Calypto | SLEC system . Hentet 28. november 2008. Arkiveret fra originalen 21. december 2008. (ubestemt)
- ↑ JEDA-produkter | ESL-modelvalideringsautomatisering . Hentet 28. november 2008. Arkiveret fra originalen 4. maj 2006. (ubestemt)
- ↑ SystemCrafter-Produkter . Hentet 28. november 2008. Arkiveret fra originalen 1. december 2008. (ubestemt)
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å