essenzialmente, due sorte di variabili: segnali e registri
-
di uno o più bit, di tipo ns o tc ecc.
-
i registri sono inizializzati a zero, i segnali non hanno memoria
-
ingressi e uscite di un datapath sono sempre segnali
-
l'uscita di un registro acquisisce il valore in ingresso solo sul fronte
attivo del clock, dunque la semantica dell'assegnamento a registro
(a intervalli di tempo discreti) è diversa da quella dell'assegnamento
a segnale (istantanea)
l'ordine degli assegnamenti è irrilevante
-
l'hardware è inerentemente parallelo
le espressioni a destra degli assegnamenti sono costruite da operatori
che hanno una diretta interpretazione quali componenti hardware,
v. Schaumont tabella 5.1 e sez. 5.1.3
incapsulamento in datapath e gerarchia strutturale, con riuso e clonazione
di moduli, v. Schaumont sez. 5.2
livello di astrazione: eventi discreti; semantica: coda degli eventi futuri
unità di specifica:
-
entità : specifica di interfaccia
(porte: nomi, tipi e direzioni dei segnali di I/O)
-
può avere parametri: dichiarazioni generic
-
architettura : specifica dell'interno
dell'entità
più architetture associabili a una data entità, secondo stili di specifica
differenti:
-
funzionale : in termini di
processi sequenziali, attivati da variazioni
di certi segnali (sensitivity list)
-
comportamentale : in termini di
assegnamenti concorrenti (relazioni fra segnali)
-
strutturale : in termini di
componenti e connessioni delle porte di loro
istanze
incapsulamento e gerarchia:
-
componenti: incapsulamento simile a quello di entità, gerarchia strutturale
-
processi: incapsulano funzionalità, ma non ne è consentita la nidificazione
v. Zwolinski cap. 3
per una prima introduzione alla sintassi di costrutti VHDL e semplici esempi
livello di astrazione: eventi discreti (come VHDL)
Verilog, alcune caratteristiche:
-
simile a VHDL per la descrizione di schemi di entità connesse
-
più caratteristiche per la descrizione di basso livello (transistori)
-
meno flessibile per la specifica top-down di sistemi
-
SystemVerilog progettato a tal fine,
ma meno supportato da strumenti di sintesi automatica
-
v. Zwolinski, App. B
per un'introduzione alla sintassi di Verilog e semplici esempi
SystemC, alcune caratteristiche:
-
libreria di classi C++ con funzioni richieste per la descrizione di hardware
-
processi concorrenti controllati da sensitivity list (v. VHDL)
-
architettura stratificata del linguaggio, con canali di comunicazione,
di modelli di computazione e canali per specifiche metodologie
-
v. Marwedel sez. 2.7
per una introduzione più articolata a SystemC