Post on 26-Jan-2019
transcript
Fondamenti di VHDL
Sommario
VHDL: premessa e introduzione
Modellizzazione
Sintassi
Classi di Oggetti
Tipi di Dati e Operatori
Package e Librerie
Processi
Esempi di codice VHDL
VHDL Testbenches
Premessa
Perché c’è bisogno di un HDL?
VHDL
Il processo di modellizzazione
Struttura di un modello
Struttura di un modello
Design Entity
Entity Declaration
Architecture Body (1/2)
Architecture Body (2/2)
Esempio (1/4) - Specifica concettuale e analisi
Esempio (2/4) – Entity Declaration
Esempio (3/4) – Architecture Body
Esempio (4/4) – Modello VHDL NOR_GATE
Architettura Behavioral
Architettura Dataflow (1/2)
Architettura Dataflow (2/2)
Architettura Strutturale (1/4)
Architettura Strutturale (2/4)
Architettura Strutturale (3/4)
Architettura Strutturale (4/4)
Configurazioni
da ciascuna unità
Progettazione
Simulazione
Sintesi vs. Simulazione
SINTASSI
Scrittura del codice sorgente (1/2)
Scrittura del codice sorgente (2/2)
Codice Sorgente nor_gate.vhd
Verifica
Esempio di simulazione NOR_GATE
Principi di base del VHDL (1/2)
Principi di base del VHDL (2/2)
Esempio – MUX2
Esempio – MUX2
Classi di Oggetti
Oggetti
Costanti
Variabili
Segnali
Segnali e Variabili
Assegnamento di Segnali (1/2)
Assegnamento di Segnali (2/2)
Concetto di ritardo (1/4)
Concetto di ritardo (2/4)
Concetto di ritardo (3/4)
Concetto di ritardo (4/4)
Assegnamento condizionale
Assegnamento selettivo
Indirizzamento negli array
Attributi
Tipi di Dati e Operatori
Tipi di Dati
Tipi di Dati
Tipi di Dati
Character
Bit
Integer
Real
Time
Altri tipi scalari
Std_logic (1/2)
Std_logic (2/2)
Vettori
string
bit_vector (1/2)
bit_vector (2/2)
std_logic_vector
Tipi e Sottotipi
Operatori
Operatori aritmetici e di scorrimento
Operatori relazionali
Operatori logici
Package e Librerie
Package
Librerie
Libreria IEEE (1/2)
Libreria IEEE (2/2)
Esempio di conversione
Esempio di conversione
Libreria STD
Apertura di un file
Il package TEXTIO: Input functions
Il package TEXTIO: Output functions
Esempio: Lettura da file
Esempio: Lettura e scrittura da file
Processi
Processi (1/3)
IL VHDL gestisce l’utilizzo di processi
I processi inglobano parti di un progetto
I processi hanno una lista di sensibilità che specifica i segnali che possono causare cambi negli outputs del processo stesso
La lista di sensibilità può essere usata per preservare lo stato di un sistema
Esempio, un flip-flop edge-triggered è sensibile solo ad un particolare fronte del clock: l’uscita cambia se e solo se è arriva un particolare fronte del clock, altrimenti l’uscita rimane invariata
I processi possono essere usati per implementare logica combinatoria, ma molto spesso inglobano logica sequenziale
Processi (2/3)
Processi (3/3)
Processi – esecuzione
Wait
Wait
Istruzioni Sequenziali
Costrutto condizionale if
elseif
Costrutto condizionale case
Costrutto condizionale case
Costrutto condizionale case
Esempio di processo
Cicli for
Cicli while
Concorrenza tra Processi
Processi Multipli Concorrenti
Aree concorrenti e sequenziali
Istruzioni Concorrenti
Sottoprogrammi (1/3)
Sottoprogrammi (2/3)
Sottoprogrammi (3/3)
Esempi di codice VHDL
Processo combinatorio
Processo combinatorio – Esempio 1
Processo combinatorio – Esempio 2
Processo combinatorio – Esempio 3
D Latch
D Flip-Flop
D Flip-Flop
D Flip-Flop
D Flip-Flop
8-bit Register
32-bit Counter (1/2)
32-bit Counter (2/2)
Esempio di descrizione RTL (1/4)
Esempio di descrizione RTL (2/4)
Esempio di descrizione RTL (3/4)
Esempio di descrizione RTL (4/4)
Macchine a stati finiti – Tipo Moore (1/5)
Si rappresenta lo stato presente e l’uscita corrispondente
Le frecce indicano l’evoluzione del circuito a seguito di un impulso di clock
Macchine a stati finiti – Tipo Moore (2/5)
Macchine a stati finiti – Tipo Moore (3/5)
Macchine a stati finiti – Tipo Moore (4/5)
Macchine a stati finiti – Tipo Moore (5/5)
Macchina di Moore – Esempio 1
Macchina di Moore – Esempio 1
Macchina di Moore – Esempio 1
Macchina di Moore – Esempio 1
Macchina di Moore – Esempio 2
Macchina di Moore – Esempio 2
Macchina di Moore – Esempio 2
Macchina di Moore – Esempio 3
Macchina di Moore – Esempio 3
Macchina di Moore – Esempio 3
Macchine a stati finiti – Tipo Mealy
Si rappresenta solo lo stato presente
Le frecce indicano l’evoluzione del circuito e l’uscita corrispondente a seguito di un impulso di clock
Macchina di Mealy – Esempio
Macchina di Mealy – Esempio
Macchina di Mealy – Esempio
VHDL TESTBENCHES
Testbench (1/2)
Testbench (2/2)
Testbench: Struttura di base (1/3)
Testbench: Struttura di base (2/3)
Testbench: Struttura di base (3/3)
Testbench: Lettura da file (1/4)
Testbench: Lettura da file (2/4)
Testbench: Lettura da file (3/4)
Testbench: Lettura da file (4/4)
Testbench: Lettura/Scrittura da file (1/2)
Testbench: Lettura/Scrittura da file (2/2)
Foreign Language Interface (1/3)
Foreign Language Interface (2/3)
Foreign Language Interface (3/3)
Testbench: Verifica automatica (1/3)
Testbench: Verifica automatica (2/3)
Testbench: Verifica automatica (3/3)
Testbench: Verifica intrinseca (1/5)
Testbench: Verifica intrinseca (2/5)
Testbench: Verifica intrinseca (3/5)
Testbench: Verifica intrinseca (4/5)
Testbench: Verifica intrinseca (5/5)