Fondamenti di VHDL - unirc.it · Processi (1/3) IL VHDL gestisce l’utilizzo di processi I...

Post on 26-Jan-2019

241 views 0 download

Transcript of Fondamenti di VHDL - unirc.it · Processi (1/3) IL VHDL gestisce l’utilizzo di processi I...

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)