SystemC: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m Bot: Aggiungo: ru:SystemC |
tradotte altre parti, sincronizzata con voce in lingua inglese |
||
Riga 1:
{{T|lingua=inglese|argomento=informatica|data=luglio 2007}}
Il SystemC è un
<!--
The behaviours (processes) defined may be instantiated any number of times, and provisions are made for processes defined by hierarchies of other processes, as one would expect.
-->
Il linguaggio offre una semantica simile a quella di [[VHDL]] e [[Verilog]], ma al costo di un aggravamento sintattico rispetto a questi. D'altro canto, permette un maggiore libertà espressiva, come [[programmazione orientata agli oggetti]] e classi [[template]]. Più in generale, SystemC è sia un linguaggio di descrizione sia un sistema di simulazione che permette di generare un eseguibile che si comporta come il modello descritto al momento dell'esecuzione. Le prestazioni del sistema di simulazione non sono paragonabili a quelli dei simulatori VHDL/Verilog commercializzati attualmente, pensati per la progettazione a livello [[Register transfer level|RTL]].
== Storia ==
* [[27 settembre]] [[1999]]: annunciata ''Open SystemC Initiative''
* [[1 marzo]] [[2000]]:
* [[28 marzo]] [[2000]]:
* [[1 febbraio]] [[2001]]: rilasciate specifiche del SystemC v2.0 ed il [[codice sorgente]] della v1.2 Beta
* [[3 giugno]] [[2003]]: rilasciato SystemC 2.0.1 LRM (''language reference manual'')
* [[6 giugno]] [[2005]]: rilasciato SystemC 2.1 LRM and TLM 1.0 (''transaction-level modeling'')
* [[12 dicembre]] [[2005]]: [[Institute of Electrical and Electronics Engineers|IEEE]] approva lo [[standard]] IEEE 1666-2005 per il SystemC
* [[13 aprile]] [[2007]]: rilasciato SystemC v2.2
ARM Ltd., CoWare, Synopsys e CynApps unirono le forze per sviluppare SystemC (successivamente CynApps divenne Forte Design Systems), pubblicando la prima bozza nel 1999. Il concorrente principale all'epoca era SpecC, un altro pacchetto ''open-source'' basato sul C++, sviluppato da membri dell'Università di Irvine, California, e da alcune compagnie giapponesi.
A giugno del 2000 venne formato un gruppo di standardizzazione denominato "Open SystemC Initiative" con il compito di organizzare le attività e permettere ai concorrenti di Synopsys, Cadence e Mentor Graphics, di avere voce nello sviluppo.
A luglio 2004 Synopsys terminò il proprio coinvolgimento in SystemC.
== Caratteristiche ==
=== Moduli ===
I moduli costituiscono i blocchi base di un progetto SystemC. Un modello di solito consiste in diversi moduli che comunicano attraverso le porte. I moduli possono essere pensati come i blocchi costruttivi del linguaggio.
=== Porte ===
Le porte permettono la comunicazione fra l'interno del modulo e l'esterno, di solito verso altri moduli.
=== Processi ===
I
=== Canali ===
I canali sono gli elementi che permettono la comunicazione nel SystemC. Possono essere
Canali elementari:
Riga 49 ⟶ 52:
=== Tipi di dati ===
Il SystemC introduce
Tipi standard estesi:
* sc_int<> 64-bit
* sc_uint<> 64-bit
* sc_bigint<>
* sc_biguint<>
Tipi logici:
* sc_bit
* sc_logic
* sc_bv<>
* sc_lv<>
Tipi in virgola fissa:
* sc_fixed<>
* sc_ufixed<>
* sc_fix
* sc_ufix
== Esempio ==
Riga 74 ⟶ 77:
#include "systemc.h"
SC_MODULE(adder) //
{
sc_in<int> a, b; //
sc_out<int> sum;
void do_add() //
{
sum = a + b;
}
SC_CTOR(adder) //
{
SC_METHOD(do_add); // register do_add to kernel
|