Upload
ugo-marchese
View
214
Download
0
Tags:
Embed Size (px)
Citation preview
Università degli studi di Università degli studi di ParmaParmaDipartimento di Ingegneria Dipartimento di Ingegneria
dell’Informazionedell’Informazione
PolitecnicoPolitecnicodi Milanodi Milano
Reti Logiche AReti Logiche A
Lezione xx.xLezione xx.x
Dispositivi ProgrammabiliDispositivi Programmabili
Docente:Docente:
prof. William FORNACIARIprof. William FORNACIARI [email protected]@elet.polimi.it
www.elet.polimi.it/people/fornaciawww.elet.polimi.it/people/fornacia
Dispositivi Logici ProgrammabiliDispositivi Logici Programmabili © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 22 - -
SommarioSommario
IntroduzioneProgrammable Logic ArrayProgrammable Array LogicMemorie ROMAltri dispositivi programmabiliEsempiEsercizi
Dispositivi Logici ProgrammabiliDispositivi Logici Programmabili © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 33 - -
IntroduzioneIntroduzione
Una funzione logica combinatoria puo’ sempre essere rappresentata come una somma di prodotti.E’ possibile realizzare una funzione combinatoria con porte logiche AND e OR.Esistono diverse classi di dispositivi programmabili (Programmable Logic Device, PLD) che consentono di realizzare funzioni logiche di questo tipo.Le PLD offrono diversi vantaggi rispetto alla logica a componenti discreti:
Integrazione elevataCosti ridottiRiprogrammabilita’
Dispositivi Logici ProgrammabiliDispositivi Logici Programmabili © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 44 - -
IntroduzioneIntroduzione
Diagramma a blocchi di una semplice PLD:
I1
Input buffersand
inverters
OR Plane
AND Plane
Output buffers
x1
x2
xnI2n
P1 Pk
O1
Om
f1
fm
Dispositivi piu’ complessi dispongono di loop di retroazione e di uscite sincrone.
Dispositivi Logici ProgrammabiliDispositivi Logici Programmabili © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 55 - -
IntroduzioneIntroduzione
Le funzioni che si vogliono realizzare sono:
fi = fi(x1, x2, …, xn)
Nel diagramma a blocchi sono evidenziati:Le variabili di ingresso: x1, x2, …, xn
Gli ingressi a valle dei buffer: I1, …, I2n. Questi ingressi sono la forma naturale e quella complementata delle variabili di ingressoI prodotti P1, …, Pk
Le somme di prodotti O1, …, Om
Le funzioni di uscita f1, …, fm. Le funzioni di uscita sono le somme di prodotti a valle dei buffer di uscita
Dispositivi Logici ProgrammabiliDispositivi Logici Programmabili © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 66 - -
Programmable Logic ArrayProgrammable Logic Array
Le PLA o Programmable Logic Array sono dispositivi in cui sono programmabili:
Le connessioni all’array di AND (AND Plane)Le connessioni all’array di OR (OR Plane)
Per realizzare le funzioni in modo corretto e’ necessario che:
Le connessioni programmabili in ingresso all’array di AND devono essere realizzate in modo che le connessioni aperte siano pilotate dal valore logico 1.Le connessioni programmabili in ingresso all’array di OR devono essere realizzate in modo che le connessioni aperte siano pilotate dal valore logico 0.
Dispositivi Logici ProgrammabiliDispositivi Logici Programmabili © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 77 - -
Programmable Logic ArrayProgrammable Logic Array
Le connessioni programmabili sono realizzate con diverse tecnologie:
Fusibili: Ogni possibile connessione e’ un fusibile che viene bruciato per le connessioni non necessarie. I dispositivi di questo tipo sono detti OTP (One-Time Programmable).Transistor: Ogni possibile connessione e’ realizzata mediante un transistor pilotato da un elemento di memoria. I dispositivi di questo tipo sono riprogrammabili semplicemente modificando i valori nella memoria.
I dispositivi riprogrammabili sono spesso associati a memorie EPROM.La configurazione delle connessioni puo’ essere scaricata sul dispositivo da un microprocessore.
Dispositivi Logici ProgrammabiliDispositivi Logici Programmabili © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 88 - -
Esempio 1Esempio 1
32131212
32131211
xxxxxxxf
xxxxxxxf
su una PLA con:
3 ingressi
4 termini prodotto
2 termini somma
2 buffer di uscita
Realizzazionde delle funzioni:
Dispositivi Logici ProgrammabiliDispositivi Logici Programmabili © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 99 - -
Esempio 1Esempio 1
Si individuano i prodotti:
E le somme
Da cui le due funzioni:
3214
313
312
211
xxxP
xxP
xxP
xxP
4212
4311
PPPO
PPPO
22
11
Of
Of
Dispositivi Logici ProgrammabiliDispositivi Logici Programmabili © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 1010 - -
Esempio 1Esempio 1
La realizzazione che ne segue e’:
x1
x2
x3
I1
I2
I3
I4
I5
I6
P1 P2 P3 P4
f1
f2
O1
O2
Input buffersInverters
AND Plane
OR Plane
Output buffers
Dispositivi Logici ProgrammabiliDispositivi Logici Programmabili © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 1111 - -
Esempio 1Esempio 1
La realizzazione che ne segue e’:
x1
x2
x3
I1
I2
I3
I4
I5
I6
P1 P2 P3 P4
f1
f2
O1
O2
Input buffersInverters
AND Plane
OR Plane
Output buffers
Dispositivi Logici ProgrammabiliDispositivi Logici Programmabili © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 1212 - -
Programmable Array LogicProgrammable Array Logic
I dispositivi in cui solo le connessioni alle porte AND sono programmabili prende il nome di PAL (Programmable Array Logic).Tali dispositivi hanno trovato una larga diffusione nelle applicazioni pratiche.La capacita’ di una PAL dipende da due fattori:
Il numero di porte AND disponibili e quindi il numero di prodotti che e’ possibile generare.Il numero di ingressi delle porte OR, che determina il numero massimo di addendi in una funzione.
Anche il numero di ingressi ed il numero di uscite determinano la capacita’ di un dispositivo.
Dispositivi Logici ProgrammabiliDispositivi Logici Programmabili © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 1313 - -
Esempio 2Esempio 2
Realizzazione delle funzioni:
321212
3213211
xxxxxf
xxxxxxf
su una PAL con:
3 ingressi
4 termini prodotto
2 termini somma a 2 ingressi
2 buffer di uscita
Dispositivi Logici ProgrammabiliDispositivi Logici Programmabili © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 1414 - -
Esempio 2Esempio 2
Si individuano i prodotti:
3214
213
3212
3211
xxxP
xxP
xxxP
xxxP
432
211
PPO
PPO
22
11
Of
Of
E le somme:
Da cui le funzioni:
Dispositivi Logici ProgrammabiliDispositivi Logici Programmabili © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 1515 - -
Esempio 2Esempio 2
La realizzazione che ne segue e’:
x1
x2
x3
I1
I2
I3
I4
I5
I6
P1 P2 P3 P4
f2
f1
O2
O1
Input buffersInverters
AND Plane
OR Plane
Output buffers
Dispositivi Logici ProgrammabiliDispositivi Logici Programmabili © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 1616 - -
Programmable Array LogicProgrammable Array Logic
Sono in commercio dispositivi di tipo PAL sui quali vengono aggiunte alcune funzionalita’, tra cui:
Le uscite sono disponibili sia dirette che invertite.Le uscite sono sincrone.Le diverse uscite sono programmabili.
Una tipica architettura e’ la seguente:
Output Enable
Output
Internal Feed-back
Clock OutputSelect
fD Q
Q
Dispositivi Logici ProgrammabiliDispositivi Logici Programmabili © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 1717 - -
Memorie ROMMemorie ROM
Uno strumento molto efficiente per realizzare funzioni combinatorie sono le memorie a sola lettura o ROM (Read Only Memory).In generale si ha la necessita’ di realizzare un insieme di funzioni del tipo:
fi = fi(x1, x2, …, xn)
Con una diversa notazione:
(x1, x2, …, xn) (f1, f2, …, fk)
ovvero una trasformazione F che va da una n-upla di ingressi xj ad una k-upla di uscite fi.
F
Dispositivi Logici ProgrammabiliDispositivi Logici Programmabili © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 1818 - -
Memorie ROMMemorie ROM
Per realizzare le funzioni fj si considerano:La n-upla di ingressi xi come indirizzo di una parola di memoriaLa k-upla di uscite fj come una parola di memoria.
In questo modo una funzione di n ingressi e k uscite viene quindi realizzata su una ROM con:
2n parolek bit per parola
Generalmente le ROM sono disponibili con lunghezze di parola di 4, 8, 16 o 32 bit. Quando k non e’ uno di questi valori, ai bit superflui vengono assegnati valori non significativi.
Dispositivi Logici ProgrammabiliDispositivi Logici Programmabili © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 1919 - -
Memorie ROMMemorie ROM
La struttura di una ROM a 3 ingressi e 4 uscite e’ la seguente:
ROM
Output BuffersAddressDecoder
x1
x2
x3
000001010
111
f1 f2 f3 f4
Dispositivi Logici ProgrammabiliDispositivi Logici Programmabili © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 2020 - -
Memorie ROMMemorie ROM
Il blocco indicato come Address Decoder genera tutti i mintermini relativi agli ingressi xi.
Un insieme di funzioni fi dato puo’ essere realizzato su ROM seguendo due metodi equivalenti:
Dale funzioni si ricava la tabella della verita’ coorrisponente, quindi si realizzano e connessioni riga per riga, ovvero considerano una linea di parola alla volta.Date le funzioni, le si riduce alla prima forma canonica, quindi si realizzano le connessioni colonna per colonna, ovvero una linea di bit alla volta.
Dispositivi Logici ProgrammabiliDispositivi Logici Programmabili © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 2121 - -
Esempio 3Esempio 3
Realizzazione delle funzioni:
1325
3214
3132213
323212
313211
xxxf
xxxf
xxxxxxf
xxxxxf
xxxxxf
Il primo metodo si articola nei due passi:Costruzione della tabella della verita’ per le cinque funzioniCreazione delle connessioni necessarie sulla ROM, una linea di parola alla volta
Dispositivi Logici ProgrammabiliDispositivi Logici Programmabili © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 2222 - -
Esempio 3Esempio 3
La tabella della verita’ e la conseguente realizzazione sono:
x1x2x3 f1 f2 f3 f4 f5
000 0 0 0 1 0001 1 1 1 1 0010 0 0 1 0 1011 1 0 1 1 0100 1 0 1 1 1101 1 1 1 1 1110 1 0 1 1 1111 1 1 0 1 1
ROM
Output Buffers
000001010
f1 f2 f3 f4
011100101110111
f5
Dispositivi Logici ProgrammabiliDispositivi Logici Programmabili © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 2323 - -
Esempio 4Esempio 4
Realizzazione delle funzioni:
Il secondo metodo si articola nei due passi:Riduzione nella prima forma canonicaCreazione delle connessioni necessarie sulla ROM, una linea di bit alla volta
1325
3214
3132213
323212
313211
xxxf
xxxf
xxxxxxf
xxxxxf
xxxxxf
Dispositivi Logici ProgrammabiliDispositivi Logici Programmabili © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 2424 - -
Esempio 4Esempio 4
Le funzioni ridotte alla prima forma canonica sono:
321321321321321
3213213213213213215
321321321321321321321
321321321321321321
3213213213213213214
3213213213213213213
3213213212
321321321321321321
321321321321
3213213213211
xxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxf
xxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxf
xxxxxxxxxxxxxxxxxxf
xxxxxxxxxf
xxxxxxxxxxxxxxxxxx
xxxxxxxxxxxx
xxxxxxxxxxxxf
Dispositivi Logici ProgrammabiliDispositivi Logici Programmabili © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 2525 - -
Esempio 4Esempio 4
Si realizzano i collegamenti una linea di bit alla volta:
ROM
Output Buffers
000001010
f1 f2 f3 f4
011100101110111
f5
321 xxx
321 xxx
321 xxx
321 xxx
Dispositivi Logici ProgrammabiliDispositivi Logici Programmabili © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 2626 - -
Memorie ROMMemorie ROM
A causa delle dimensioni discrete delle parole di memoria delle memorie ROM disponibili il metodo descritto porta spesso ad un sottoutilizzo della memoria fisica.E’ possibile ottimizzare la realizzazione al costo di aggiungere dei circuiti di decodifica esterni alla ROM.La tecnica di ottimizzazione si basa sulla compressione o codifica dell’informazione da memorizzare.La codifica e’ possibile per le linee di bit mutuamente esclusive.Due linee di bit i e j sono mutuamente esclusive se:
Ogni volta che e’ presente un collegamento sulla linea i, e’ assente sulla linea j e viceversa.
Dispositivi Logici ProgrammabiliDispositivi Logici Programmabili © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 2727 - -
Memorie ROMMemorie ROM
La definizione si estende ad un insieme di linee.Le linee di bit (f1, f2, …,fn) sono mutuamente esclusive se tale proprieta’ vale per ogni coppia di linee.Per un tale insieme di n linee e’ sufficiente indicare:
se una delle linee e’ attivain caso affermativo, quale delle linee e’ attiva.
Per fornire tale informazione sono sufficienti:k = log2(n+1)
bit.Se risulta k < n, la codifica conviene.
Dispositivi Logici ProgrammabiliDispositivi Logici Programmabili © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 2828 - -
Esempio 5Esempio 5
Data la ROM programmata come in figura, utilizzare il metodo di codifica in modo da utilizzare una ROM con parole di 8 bit.
Si costruisce il grafo di mutua esclusione
1 2 3 4 5 6 7 8 9 10 11
12
3
6
4
5
7
10
11
9
8
Dispositivi Logici ProgrammabiliDispositivi Logici Programmabili © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 2929 - -
Esempio 5Esempio 5
Si individua ora sul grafo l’insieme N1 piu’ grande possibile di nodi non collegati da rami.Si eliminano i nodi di tale insieme ed i lati ad essi connessi
12
3
6
4
5
7
10
11
9
8
12
3
6
4
5
7
10
11
9
8
N1 = {1, 2, 3, 5, 6, 7}
Dispositivi Logici ProgrammabiliDispositivi Logici Programmabili © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 3030 - -
Esempio 5Esempio 5
Si ripete lo stesso procedimento sul nuovo grafo ottenuto:
12
3
6
4
5
7
10
11
9
8
N2 = {4, 9, 10}
Il grafo ottenuto a questo punto non e’ piu’ riducibile per cui:
N3 = {8, 11}
Si procede quindi a verificare se la codifica degli insiemi N1, N2 ed N3 e’ conveniente, nel qual caso la si stabilisce.
12
3
6
4
5
7
10
11
9
8
Dispositivi Logici ProgrammabiliDispositivi Logici Programmabili © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 3131 - -
Esempio 5Esempio 5
Valgono le relazioni
N1 = {1, 2, 3, 5, 6, 7} n1=6, k1=log2(6+1)=3 k1<n1
N2 = {4, 9, 10} n2=3, k2=log2(3+1)=2 k2<n2
N3 = {8, 11} n3=2, k3=log2(2+1)=2 k3=n3
Conviene codificare solo N1 ed N3.
Una possibile scelta delle codifiche e’:
Nessuna linea 0 0 0
Linea 1 attiva 0 0 1
Linea 2 attiva 0 1 0
Linea 3 attiva 0 1 1
Linea 5 attiva 1 0 1
Linea 6 attiva 1 1 0
Linea 7 attiva 1 1 0
Insieme N1 y1 y2 y3
Nessuna linea 0 0
Linea 4 attiva 0 1
Linea 9 attiva 1 0
Linea 10 attiva 1 1
Insieme N2 y4 y5
Dispositivi Logici ProgrammabiliDispositivi Logici Programmabili © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 3232 - -
Esempio 5Esempio 5
Ricordando le codifiche si ha la nuova realizzazione:
Nessuna linea 0 0 0
Linea 1 attiva 0 0 1
Linea 2 attiva 0 1 0
Linea 3 attiva 0 1 1
Linea 5 attiva 1 0 1
Linea 6 attiva 1 1 0
Linea 7 attiva 1 1 0
Insieme N1 y1 y2 y3
Nessuna linea 0 0
Linea 4 attiva 0 1
Linea 9 attiva 1 0
Linea 10 attiva 1 1
Insieme N2 y4 y5
N1 N2
y4 y5y1 y2 y3
1 2 3 5 6 7 4 9 10 8 11
Dispositivi Logici ProgrammabiliDispositivi Logici Programmabili © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 3333 - -
Altri dispositivi programmabiliAltri dispositivi programmabili
I dispositivi programmabili possono essere classificati secondo due criteri differenti:
TecnologiaArchitettura
Per tecnologia si intende il processo elettronico sul quale si basa la realizzazione dei dispositivi stessi. Dalla tecnologia dipendono diverse caratteristiche:
IntegrazioneVelocita’Riprogrammabilita’
L’architettura definisce le caratteristiche delle celle base.L’architettura influenza:
Flessibilita’
Dispositivi Logici ProgrammabiliDispositivi Logici Programmabili © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 3434 - -
Altri dispositivi programmabiliAltri dispositivi programmabili
Classificazione secondo la tecnologia:
PLDPLD
FuseFuse AntifuseAntifuse SRAMSRAM EPROMEPROM EE22PROMPROM
AMD
Cypress
Actel Actel
Xilinx
Atmel
Xilinx
Lucent Altera
Altera
OTP Reconfigurable Reprogrammable
Philips
Dispositivi Logici ProgrammabiliDispositivi Logici Programmabili © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 3535 - -
Altri dispositivi programmabiliAltri dispositivi programmabili
Classificazione secondo l’architettura:
PLDPLD
GALGAL PALPAL CPLDCPLD FPGAFPGA FPGA+CoreFPGA+Core
AMD
Cypress
Actel
Atmel
Xilinx
Lucent
PLAPLA
AMD
Motorola
AMD
Cypress Lucent
Actel
Cypress
100 - 1K100 - 1K10 - 10010 - 100 5K- 100K5K- 100K 5K- 200K5K- 200K 50K- 400K50K- 400K
Philips Philips
Dispositivi Logici ProgrammabiliDispositivi Logici Programmabili © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 3636 - -
Esercizio 1Esercizio 1
Date le funzioni f1, …,f5 specificate dalla tabella di verita’:
x1x2x3 f1 f2 f3 f4 f5
000 0 0 0 1 0001 1 1 1 1 0010 0 0 1 0 1011 1 0 1 1 0100 1 0 1 1 1101 1 1 1 1 1110 1 0 1 1 1111 1 1 0 1 1
Si ricavino le equazioniSi realizzi una implementazione su una PLA con:
3 ingressi8 termini prodotto5 termini somma5 uscite
Dispositivi Logici ProgrammabiliDispositivi Logici Programmabili © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 3737 - -
Esercizio 2Esercizio 2
Date le funzioni f1, f3, f3 specificate dalla tabella di verita’:
x1x2x3 f1 f2 f3
000 0 1 1001 0 1 0010 0 0 0011 1 0 0100 1 1 1101 0 0 1110 0 0 0111 1 0 1
Si ricavino le equazioniSi realizzi una implementazione su una PAL con:
3 ingressi5 termini prodotto3 termini somma a 2 ingressi3 uscite
Dispositivi Logici ProgrammabiliDispositivi Logici Programmabili © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 3838 - -
Esercizio 3Esercizio 3
Date le funzioni f1, ..., f6 specificate dalla tabella di verita’:
Si realizzi una implementazione su ROM con parole di 6 bitSi ottimizzi la realizzazione precedente in modo da poter utilizzare una ROM con parole di 4 bit
x1x2x3 f1 f2 f3 f4 f5 f6
000 0 1 0 0 0 0001 1 0 0 1 0 0010 0 0 1 0 0 0011 1 0 0 0 1 0100 0 0 0 0 0 1101 0 1 0 0 0 0110 0 0 1 0 0 0111 0 0 0 1 0 0