SystemC
Spesso si pensa al SystemC come ad un linguaggio di descrizione hardware, simile al VHDL o al Verilog, ma più precisamente è un linguaggio di descrizione dei sistemi, poiché mostra la sua potenza di funzionamento nei modelli a transizione di livelli e comportamentali.
Il SystemC è un set di librerie in C++ con cui è possibile simulare processi concorrenti, ovvero che avvengono nello stesso momento, ognuno descritto attraverso la sintassi C++. Nell'ambiente di lavoro del SystemC, gli oggetti descritti in questo modo possono comunicare in un ambiente simulato real-time attraverso tutti i tipi di segnale che offre il C++, ed altri offerti dalle librerie SystemC, oltre a quelli definiti dal programmatore.
Esempio
Esempio di codice per un sommatore:
#include "systemc.h"
SC_MODULE(adder) // module (class) declaration
{
sc_in<int> a, b; // ports
sc_out<int> sum;
void do_add() // process
{
sum = a + b;
}
SC_CTOR(adder) // constructor
{
SC_METHOD(do_add); // register do_add to kernel
sensitive << a << b; // sensitivity list of do_add
}
};
Riferimenti
- SystemC.org sito ufficiale
- T. Grötker, S. Liao, G. Martin, S. Swan, System Design with SystemC. Springer, 2002. ISBN 1402070721
- A SystemC based Linux Live CD with C++/SystemC tutorial
- T. Grötker, S. Liao, G. Martin, S. Swan, System Design with SystemC. Springer, 2002. ISBN 1402070721
- J. Bhasker, A SystemC Primer, Second Edition, Star Galaxy Publishing, 2004. ISBN 0965039129
- D. C. Black, J. Donovan, SystemC: From the Ground Up, Springer 2005. ISBN 0387292403
- Frank Ghenassia (Editor), Transaction-Level Modeling with Systemc: Tlm Concepts and Applications for Embedded Systems, Springer 2006. ISBN 0387262326