Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
teknopedia

teknopedia

teknopedia

teknopedia

teknopedia

teknopedia
teknopedia
teknopedia
teknopedia
teknopedia
teknopedia
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. SystemC - Teknopedia
SystemC - Teknopedia

SystemC è un tipo di linguaggio di descrizione hardware, simile al VHDL o al Verilog, utilizzato nella descrizione dei sistemi, poiché mostra la sua potenza di funzionamento con modelli a livello transazionale e comportamentali, nei quali il grado di dettaglio dell'andamento nel tempo dei segnali di uscita viene tralasciato in favore di una più concisa rappresentazione della descrizione della funzione richiesta.

Storia

[modifica | modifica wikitesto]
  • 27 settembre 1999: annunciata Open SystemC Initiative
  • 1º marzo 2000: distribuito SystemC v0.91
  • 28 marzo 2000: distribuito SystemC v1.0
  • 1º febbraio 2001: distribuite specifiche del SystemC v2.0 ed il codice sorgente della v1.2 Beta
  • 3 giugno 2003: distribuito SystemC 2.0.1 LRM (language reference manual)
  • 6 giugno 2005: distribuito SystemC 2.1 LRM and TLM 1.0 (transaction-level modeling)
  • 12 dicembre 2005: IEEE approva lo standard IEEE 1666-2005 per il SystemC
  • 13 aprile 2007: distribuito 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.

Descrizione

[modifica | modifica wikitesto]

Il SystemC è un insieme di librerie e macro scritte 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 possono comunicare in un contesto simulato sistema real-time usando segnali di tutti i tipi di dato offerti dal C++, insieme ad altri offerti dalle librerie SystemC, oltre a quelli definiti dall'utilizzatore.

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 sono difficilmente paragonabili a quelle dei simulatori VHDL/Verilog commercializzati attualmente, specialmente per via delle differenze di ambito applicativo. Mentre Verilog e VHDL sono stati pensati, originariamente proposti e nel tempo sviluppati per la progettazione a livello di trasferimento tra registri (RTL), il SystemC, nei suoi primi anni di vita, ha veicolato una forte spinta verso la progettazione a livelli di astrazione superiore, con produzione di strumenti per la Sintesi di Alto livello e successivi sviluppi del paradigma transazionale, nel quale la comunicazione tramite segnali digitali viene sostituita con un più generico passaggio di messaggi.

Nei fatti, tuttavia, l'iniziale spinta innovativa non ha trovato riscontro nei risultati prodotti; il costo di mantenimento della coerenza della rappresentazione è rimasta in larga misura sulle spalle dell'utilizzatore, data la mancanza di strumenti di controllo semantico sufficientemente robusti, più di quanto non capiti con altri linguaggi di descrizione dell'hardware, e nel frattempo l'introduzione, nel 2005, del SystemVerilog, variante orientata agli oggetti del Verilog, ha di fatto pressoché annullato i vantaggi che la natura di libreria di classi C++ del SystemC aveva dato a questo inizialmente.

La parte che aveva destato più interesse nella fase di sviluppo vivace della modellazione transazionale, ovvero la formalizzazione dei concetti di connessione tramite port/export, canali, e socket, è stata riproposta in SystemVerilog, organizzata secondo i dettami della programmazione a pattern, all'interno della libreria di classi UVM, che attualmente rappresenta l'elemento di maggior successo nell'ambito della progettazione di ambienti e componenti di verifica per la progettazione di dispositivi digitali e mixed signal.

Caratteristiche

[modifica | modifica wikitesto]

Moduli

[modifica | modifica wikitesto]

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

[modifica | modifica wikitesto]

Le porte permettono la comunicazione fra l'interno del modulo e l'esterno, di solito verso altri moduli.

Processi

[modifica | modifica wikitesto]

I processi sono i componenti principali che realizzano l'elaborazione. Sono ad esecuzione concorrente.

Canali

[modifica | modifica wikitesto]

I canali sono gli elementi che permettono la comunicazione nel SystemC. Possono essere semplici connessione o sistemi di comunicazione complessi, come code FIFO o bus

Canali elementari:

  • signal
  • buffer
  • fifo
  • mutex
  • semaphore

Interfacce

[modifica | modifica wikitesto]

Le porte usano le interfacce per comunicare con i canali.

Eventi

[modifica | modifica wikitesto]

Permette la sincronizzazione fra i processi.

Tipi di dati

[modifica | modifica wikitesto]

Il SystemC introduce vari tipi di dati che supportano la modellazione dell'hardware.

Tipi standard estesi:

  • sc_int<> 64-bit intero con segno
  • sc_uint<> 64-bit intero senza segno
  • sc_bigint<> intero a precisione arbitraria con segno
  • sc_biguint<> intero a precisione arbitraria senza segno

Tipi logici:

  • sc_bit singolo bit a 2 valori
  • sc_logic singolo bit a 4 valori
  • sc_bv<> vettore di sc_bit
  • sc_lv<> vettore di sc_logic

Tipi in virgola fissa:

  • sc_fixed<> template in virgola fissa con segno
  • sc_ufixed<> template in virgola fissa senza segno
  • sc_fix tipo in virgola fissa con segno
  • sc_ufix tipo in virgola fissa senza segno

Esempio

[modifica | modifica wikitesto]

Esempio di codice per un sommatore:

#include "systemc.h"

SC_MODULE(adder) // dichiarazione di modulo (classe)
{
  sc_in<int> a, b;        // porte
  sc_out<int> sum;

  void do_add()           // processo
  {
    sum = a + b;
  }

  SC_CTOR(adder)          // costruttore
  {
    SC_METHOD(do_add);    // register do_add to kernel
    sensitive << a << b;  // sensitivity list of do_add
  }
};

Bibliografia

[modifica | modifica wikitesto]
  • T. Grötker, S. Liao, G. Martin, S. Swan, System Design with SystemC. Springer, 2002. ISBN 1-4020-7072-1
  • A SystemC based Linux Live CD with C++/SystemC tutorial, su sclive.blogsite.org. URL consultato il 16 luglio 2007 (archiviato dall'url originale il 20 agosto 2008).
  • J. Bhasker, A SystemC Primer, Second Edition, Star Galaxy Publishing, 2004. ISBN 0-9650391-2-9
  • D. C. Black, J. Donovan, SystemC: From the Ground Up, Springer 2005. ISBN 0-387-29240-3
  • Frank Ghenassia (Editor), Transaction-Level Modeling with Systemc: Tlm Concepts and Applications for Embedded Systems, Springer 2006. ISBN 0-387-26232-6

Collegamenti esterni

[modifica | modifica wikitesto]
  • (EN) Open SystemC 2.x, su systemc.org. URL consultato il 16 luglio 2007 (archiviato dall'url originale il 6 ottobre 2008).
  • (EN) Open SystemC 1.0, su sourceforge.net.
  • (EN) SystemC-WMS Homepage, su github.com.
  • (EN) IEEE 1666 Standard System C Language Reference Manual, su standards.ieee.org. URL consultato il 16 luglio 2007 (archiviato dall'url originale il 2 novembre 2010).
V · D · M
Norme dell'Institute of Electrical and Electronics Engineers
Attuali488 · 730 · 754 (Revision) · 854 · 828 · 829 · 896 · 1003 · 1014 · 1016 · 1076 · 1149.1 · 1154 · 1164 · 1275 · 1278 · 1284 · 1355 · 1394 · 1451 · 1497 · 1516 · 1541 · 1547 · 1584 · 1588 · 1596 · 1603 · 1609 · 1613 · 1666 · 1667 · 1675 · 1685 · 1722 · 1733 · 1800 · 1801 · 1815 · 1850 · 1900 · 1901 · 1902 · 1904 · 1905 · 2030 · 2050 · 11073 · 12207 · 14764 · 16085 · 16326 · 29148 · 42010
802 series
802.1D · p · Q · Qav · Qat · Qay · w · X · ab · ad · AE · ag · ah · ak · aq · AS · ax · az · BA
802.3-1983 · a · b · d · e · i · j · u · x · y · z · ab · ac · ad · ae · af · ah · ak · an · aq · at · av · az · ba · bt · by · bz · cg
802.11legacy · a · b · c · d · e · F · g · h · i · j · k · n (Wi-Fi 4) · p · r · s · T · u · v · w · y · z · aa · ac (Wi-Fi 5) · ad · ae · af · ah · ai · aj · ak · aq · ax (Wi-Fi 6/6E) · ay · az · ba · bb · bc · bd · be (Wi-Fi 7) · bf · bh · bk · bn (Wi-Fi 8)
.2 · .4 · .5 · .6 · .7 · .8 · .9 · .10 · .12 · .14 · .15 (.1 · .4 · .4a · .6) · .16 (Original · d · e) · .17 · .18 · .20 · .21 · *.22
ProposteP1363 · P1619 · P1699 · P1823 · P1906.1
Sostituite754-1985 · 830 · 1219 · 1233 · 1362 · 1364 · 1471
V · D · M
Logica programmabile
ConcettiASIC · SoC · FPGA (CLB) · CPLD · EPLD · PLA · PAL · GAL · PSoC · Reconfigurable Computing (Xputer) · Soft microprocessor · Circuit underutilization · High-level synthesis · Acceleratore
Tecniche di programmazioneGate array · Antifusibile · EPROM · E²PROM · Flash · SRAM
LinguaggiVerilog (A, AMS) · VHDL (AMS, VITAL) · SystemVerilog (DPI) · SystemC · AHDL · Handel-C · PSL · UPF · PALASM · ABEL · CUPL · OpenVera · C to HDL · Flow to HDL · MyHDL · ELLA · Chisel
CostruttoriAccellera · Achronix · AMD (Xilinx) · Aldec · Arm · Cadence · Infineon · Intel · Lattice · Microchip Technology · NXP · Siemens (Mentor Graphics) · Synopsys · Texas Instruments
Prodotti
HardwareiCE · Stratix · Virtex
SoftwareIntel Quartus Prime · Xilinx ISE · Xilinx Vivado · ModelSim · VTR
IP
ProprietarioARC · ARM Cortex-M · LEON · LatticeMico8 · MicroBlaze · PicoBlaze · Nios · Nios II
Open-SourceJOP · LatticeMico32 · OpenCores · OpenRISC · Power ISA (Libre-SOC, Microwatt) · RISC-V · Zet
  Portale Elettronica
  Portale Informatica
Estratto da "https://it.wikipedia.org/w/index.php?title=SystemC&oldid=145779470"

  • Indonesia
  • English
  • Français
  • 日本語
  • Deutsch
  • Italiano
  • Español
  • Русский
  • فارسی
  • Polski
  • 中文
  • Nederlands
  • Português
  • العربية
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022