Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Facolt di Ingegneria
Facolt di Ingegneria
Il VHDL utilizzato nei tre livelli (comportamentale, RTL e gate) per: - Simulazione - Sintesi (passaggio automatico da un livello di astrazione ad unaltro inferiore)
Facolt di Ingegneria
Simulazione VHDL
Facolt di Ingegneria
Sintesi VHDL
Facolt di Ingegneria
Facolt di Ingegneria
Facolt di Ingegneria
Facolt di Ingegneria
Rappresentazione comportamentale
Nella rappresentazione comportamentale (Behavioural) un componente viene descritto mediante il suo comportamento ingresso-uscita. Si descrive come dovr rispondere la rete, ma non la sua struttura.
Rappresentazione strutturale
Nella rappresentazione strutturale (Structural) un componente descritto connettendo tra loro pi blocchi. Lapproccio basato su un linguaggio testuale (VHDL) ma risulta concettualmente analogo al design-entry mediante schema logico.
Facolt di Ingegneria
Eseguendo il design entry mediante schema logico ed effettuando la simulazione si perviene alle forme donda sottostanti.
Facolt di Ingegneria
Dal confronto tra le simulazioni ottenute, rispettivamente, dal design entry mediante schema logico e mediante VHDL, si osserva che i due approcci sono equivalenti.
Facolt di Ingegneria
Rete ideale
Volendo descrivere come si propaga il segnale dal punto x verso a e b con un linguaggio di programmazione ad alto livello (ad esempio il C) si potrebbe scrivere: a:=x; b:=x; /* assegna x ad a */ /* assegna x a b */
Facolt di Ingegneria
Rete reale con capacit parassite che impongono la variazione dei segnali a e b in ritardo rispetto alla variazione di x
Facolt di Ingegneria
Quando un programmatore sviluppa del codice con un linguaggio ad alto livello (C, Java, Pascal) scompone il problema in una serie di istruzioni che saranno eseguite in modo sequenziale (PARADIGMA DI PROGRAMMAZIONE SEQUENZIALE) Al contrario, un progettista hardware decompone il progetto in blocchi interconnessi che reagiscono ad eventi e generano eventi. Gli eventi sono le transizioni dei segnali: ogni transizione di un ingresso, di unuscita o del clock un evento. Ogni evento impone che tutti i blocchi dipendenti da tale evento vengano valutati. Lordine in cui vengono valutati i blocchi deve essere ininfluente sul risultato finale (cio, qualunque sia lordine di valutazione delle espressioni associate ai singoli blocchi, lo stato complessivo raggiunto dalla rete quando tutti gli eventi sono stati gestiti deve essere sempre il medesimo). Il tipo di programmazione che consente di modellare questo tipo di funzionamento il PARADIGMA DI PROGRAMMAZIONE PARALLELA: infatti, visto che il risultato dellelaborazione deve essere indipendente dalla sequenza in cui le istruzioni sono state eseguite, tutte le istruzioni possono anche essere eseguite in parallelo, senza che unistruzione debba attendere il completamento di unaltra. Ad esempio, si pensi alla rete combinatoria in figura. Il programma che descrive la rete deve generare un risultato (uscita di ciascun gate) che dipende solo dal valore degli ingressi e non dallordine con il quale vengono valutati gli AND e lOR. Le istruzioni che descrivono i blocchi possono essere codificate secondo il paradigma della programmazione parallela
Facolt di Ingegneria
Rappresentano connessioni hardware ( input, output, etc). Ad ogni segnale associata una evoluzione temporale. Le assegnazioni sono effettuate mediante loperatore <=. Non hanno alcun significato hardware. Sono utilizzate per memorizzare valori temporanei. Le variabili possono essere dichiarate, o avere valori assegnati, solo allinterno di blocchi sequenziali del codice VHDL. Il simbolo di assegnamento := Rappresentano valori costanti di un dato tipo. Non si pu cambiare il loro valore. Attraverso lo statement GENERIC il VHDL dispone di un meccanismo per passare parametri non hardware (es. ritardi) di un componente.
Oggetti che possono essere dichiarati ed utilizzati sia in blocchi concorrenti che in blocchi sequenziali.
Facolt di Ingegneria
Tipi di dato
Nel linguaggio VHDL (Standard Package) sono predefiniti i seguenti tipi di dato: BIT (0,1) BIT_VECTOR BOOLEAN (TRUE,FALSE) INTEGER REAL TIME Oltre a questi tipi, possibile utilizzarne altri di specifiche librerie (es. LIBRARY IEEE). E possibile definire dei vettori di bit utilizzando il tipo di dato BIT_VECTOR... Formalismo scalare PORT ( a3,a2,a1,a0 : IN BIT; y1,y0 : OUT BIT);
Formalismo vettoriale (bus) PORT ( a : IN BIT_VECTOR(3 DOWNTO 0); y : OUT BIT_VECTOR(1 DOWNTO 0));
- Gli elementi dei vettori possono referenziarsi attraverso gli indici (ad es. y(2) <= a(1)) - E inoltre possibile assegnare una sequenza di cifre (ad es., y <= 01;) - Per costanti binarie di un singolo bit si utilizza il simbolo mentre per configurazioni binarie da 2 o pi bit si utilizza il simbolo . (ad es. a <= 1; b_vettore <= 100111;) - E anche possibile dare assegnazioni ad un numero limitato di bit del vettore (bit-slicing). (ad es. b_vettore(4 downto 2) <= 101)
Facolt di Ingegneria
Library IEEE
Mediante lutilizzo di librerie (keyword LIBRARY) possibile aggiungere al VHDL standard nuovi tipi di dato, nuove funzioni, etc. Il meccanismo analogo a quello utilizzato dai linguaggi di programmazione ad alto livello. LIBRARY IEEE Tale libreria contiene i seguenti packages: std_logic_1164 (definisce la std_logic e relative funzioni) std_logic_arith (funzioni aritmetiche) std_logic_signed (funzioni aritmetiche su numeri con segno std_logic_unsigned (funzioni aritmetiche su numeri senza segno)
Facolt di Ingegneria
Facolt di Ingegneria
Mediante il costrutto GENERIC si definiscono tipicamente delle costanti. Queste possono essere utilizzate, ad esempio, per definire dei tempi di ritardo: GENERIC(delay: time := 1 ns); Mediante il costrutto PORT si specificano: quali sono i segnali della rete esaminata (signal_names) (direction) quali segnali sono di input (IN), di output (OUT), bidirezionali (INOUT) (type) di che tipo sono i segnali
Allinterno della sezione ARCHITECTURE viene specificata la logica della rete. Allinterno della sezione ARCHITECTURE (in <architecture declarations>) possibile definire degli oggetti, che sono tipicamente dei segnali e possono essere utilizzati (scope) solo allinterno della architecture description. E possibile utilizzare i data types definiti allinterno del VHDL o disponibili mediante lutilizzo di librerie aggiuntive. Ad esempio: SIGNAL T1,T0 : BIT; La parte in cui specificata la logica della rete il <processing statements>, compresa tra BEGIN ed END.
Giovanni Vito Persiano Corso di Circuiti e Sistemi VLSI
Facolt di Ingegneria
Concurrent Processing
Le espressioni comprese tra BEGIN ed END vengono elaborate contemporaneamente. Non ha alcun significato lordine con il quale appaiono nel codice VHDL.
Sequential Processing
Mediante listruzione PROCESS possono definirsi una sequenza di istruzioni elaborate con il paradigma di programmazione sequenziale. In un blocco PROCESS le istruzioni sono elaborate in modo sequenziale, nellordine in cui vengono scritte. Ogni processo eseguito in modo concorrente rispetto ad altri processi o istruzioni concorrenti definite nellarchitecture.
sensitivity_list Lista degli segnali (eventi) ai quali le istruzioni del processo sono sensibili. Rappresentano quindi gli eventi che possono modificare le espressioni definite allinterno di un processo. Se nessuno di questi eventi si verifica, il processo rimane inattivo.
Giovanni Vito Persiano Corso di Circuiti e Sistemi VLSI
Facolt di Ingegneria
Tali operatori agiscono su tipi predefiniti: BIT, BOOLEAN, BIT_VECTOR. Se sono usati vettori, il numero di bit dei due operandi deve essere lo stesso.
Operatori come +, -, <, >, <= ,>= sono definiti solo per il tipo INTEGER.
Facolt di Ingegneria
Concurrent statements
I concurrent statements possono essere utilizzati solo al di fuori di un processo e da un punto di vista concettuale sono eseguiti in modo concorrente. Per questo motivo lordine con il quale vengono scritti non importante. Concurrent signal assignements Selective signal assignements (WITH-SELECT-WHEN) Conditional signal assignements (WHEN-ELSE)
Esempio: AND2
Facolt di Ingegneria
Facolt di Ingegneria
Esempio 1: AND2
Nel caso siano verificate pi condizioni, al segnale di uscita assegnato il primo valore che soddisfa la catena dei WHEN.
Facolt di Ingegneria