Title: D.E.I.S.
1 VHDL come strumento CAD allinterno di flussi di
progetto per dispositivi Digitali
- Fabio Campi
- Corsi di Architettura dei Sistemi Integrati/
Progetto di Sistemi Elettronici
2VHDL
Very High speed circuits Hardware Description
Language
- Nato nel 1987, formalmente ridefinito nel 1993
- Linguaggio standard internazionale per la
descrizione di circuiti integrati digitali - Strumento convenzionale per il progetto e per la
documentazione di blocchi digitali - Permette la rappresentazione di istanze hardware
da system level fino a gate level
3VHDL vs C
- Linguaggio C
- Linguaggio di programmazione software genera una
esecuzione SEQUENZIALE di una serie di
istruzioni.
VHDL Tool CAD di progettazione hardware genera
una instanziazione (mapping) di risorse di
calcolo CONCORRENTI.
4Stili di Descrizione Hardware
- BEHAVIORAL
- Register Transfer Level
- Gate Level
Technology Dependance
5VHDL Applicazioni
- SIMULAZIONE LOGICA
- SYSTEM PROTOTYPING
- SINTESI LOGICA
6Flusso di progetto circuiti digitali (anni 80/90)
0) Definizione Algoritmica (linguaggio C) y-x
- Schematic Entry
2) Custom Layout (place route)
3) Parasitic extraction Backannotation
7Il Design Productivity Gap
Lo sviluppo della tecnologia offre una quantita
di risorse di Calcolo che supera la capacita
del progettista di utilizzarle Nasce il
System-on-chip
8Tecnologia Standard Cells
La Sintesi Logica esegue un mapping della
funzionalita descritta da Un modello VHDL
Behavioral o Register Transfer Level in un
modello Gate level basato su una libreria di
celle elementari predefinite
9Flusso di Sviluppo di circuiti digitali FRONT
END
0) Definizione Algoritmica (linguaggio C) qa
b c
- Descrizione VHDL del circuito q lt a and b or c
2) Simulazione Funzionale
3) Sintesi Logica
4) Simulazione Post-Sintesi
10Flusso di Sviluppo di circuiti digitali BACK END
5) Floorplanning
6) Place Route
7) Parasitic extraction backannotation
11Dispositivi FPGA
FPGA Field Programmable Gate Array (Programmable
Logic Device)
La Sintesi Logica esegue un mapping della
funzionalita descritta da Un modello VHDL
Behavioral o Register Transfer Level in un
modello Gate level basato sui blocchi di calcolo
elementari offerti dalla FPGA
12Sviluppo di circuiti digitalisu FPGA FRONT END
0) Definizione Algoritmica (linguaggio C) qa
b c
- Descrizione VHDL del circuito q lt a and b or c
2) Simulazione Funzionale
3) Sintesi Logica
13Sviluppo di circuiti digitali su FPGA BACK END
6) Place Route
6) Post-route simulation
7) FPGA device Programming
14REGOLE di Scrittura di VHDL rivolto a sintesi
logica
1) Codice RTL rigorosa separazione tra logica
Combinatoria (sintetizzabile) e logica sequenziale
Processo Sequenziale Process(clk,reset) Begin
if reset1 then qlt0 else if clkevent and
clk1 then qltd End process
15REGOLE di Scrittura di VHDL rivolto a sintesi
logica
2) Processi combinatori Tutti I segnali
utilizzati come ingressi devono apparire nella
sensitivity list
VHDL Errato Process(a) Begin C lt f(a,b) End
process
VHDL corretto Process(a) Begin C lt
f(a,b) End process
16REGOLE di Scrittura di VHDL rivolto a sintesi
logica
3) Scelte condizionate(Multiplexers) In ogni
caso in cui (esplicitamente o implicitamente)
lassegnamento di un segnale e condizionato ad
un selettore, e necessario coprire con valori
legali del segnali duscita tutti i casi della
condizione possibili
VHDL Errato if sel00 then yin1 elsif
sel01 then yin2 end if
VHDL corretto if sel00 then yin1 elsif
sel01 then yin2 else ylt COSTANTE
end if
17REGOLE di Scrittura di VHDL rivolto a sintesi
logica
4) Tipi di segnale e Bus Width PESATE Un intero
e inteso come numero aritmetico a 32 bit, il che
puo portare a ridondanza nella mappatura
hardwareE conveniente usare data types di
natura FISICA (std_logic_vector,
signed/unsigned) per avere controllo dellhw
instanziato
VHDL non ottimizzato signal a,b,c integer C
ltab
VHDL ottimizzato signal a,b,c integer RANGE 0
to 255 meglio std_logic_vector(7 downto 0) C
ltab
8-bit adder (14 l.c.)
32-bit adder (108 l.c.)
18REGOLE di Scrittura di VHDL rivolto a sintesi
logica
5) Uso moderato di generic FORUn loop software
comporta la esecuzione ripetuta della stessa
Routine. La elaborazione hardware e Concorrente,
quindi un ciclo causa la istanziazione ripetuta
di logica, Portando ad un forte utilizzo di
risorse
Signal b integer Signal a array(o to 9) of
integer For I in 0 to 9 generate
Q(I)lta(I)b End generate
10 adder a 32 bit (1080 l.c.)
19REGOLE di Scrittura di VHDL rivolto a sintesi
logica
6) Non e possibile utilizzare costrutti per lo
scheduling della simulazione. Il controllo
temporale della simulazione e determinata
dalla analisi dei ritardi (Timing analysis)
estratti dalla sintesi, dal layout o dal routing
su FPGA)
20REGOLE di Scrittura di VHDL rivolto a sintesi
logica
7) Non e possibile avere diversi processi che
insistano sullo stesso segnale o autoassegnamenti
di segnale cio porterebbe a corto circuito
elettrico.
altx alty
Cont lt cont 1
21REGOLE di Scrittura di VHDL rivolto a sintesi
logica
8) Macchine a stati finiti Si definisce FSM un
processo non combinatorio in cui luscita dipende
dalla evoluzione temporale dei segnali di
ingresso.
Y(i) ltf(x(i),state(i)) State(i) lt
f(x(i),state(i-1))
Y(i)f(x(i),x(i-1),)
22REGOLE di Scrittura di VHDL rivolto a sintesi
logica
Process(clk) Begin if clkevent and clk1
then csltns End process Process(inputs,cs) Begin
case state is when case0gt out1lt
if in1 then
nslt
else nslt
end if
. when others gt
23(No Transcript)