Reti Logiche A Lezione xx.x Dispositivi Programmabili Dispositivi Logici Programmabili Reti Logiche A Lezione xx.x Dispositivi Programmabili Docente: prof. William FORNACIARI fornacia@elet.polimi.it www.elet.polimi.it/people/fornacia © 2001/02 - William Fornaciari
Sommario Introduzione Programmable Logic Array Programmable Array Logic Memorie ROM Altri dispositivi programmabili Esempi Esercizi Dispositivi Logici Programmabili © 2001/02 - William Fornaciari
Introduzione 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 elevata Costi ridotti Riprogrammabilita’ Dispositivi Logici Programmabili © 2001/02 - William Fornaciari
Introduzione Diagramma a blocchi di una semplice PLD: Input buffers and inverters OR Plane AND Plane Output buffers x1 x2 xn I2n P1 Pk O1 Om f1 fm I1 Dispositivi piu’ complessi dispongono di loop di retroazione e di uscite sincrone. Dispositivi Logici Programmabili © 2001/02 - William Fornaciari
Introduzione 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 ingresso I 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 Programmabili © 2001/02 - William Fornaciari
Programmable 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 Programmabili © 2001/02 - William Fornaciari
Programmable 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 Programmabili © 2001/02 - William Fornaciari
Esempio 1 Realizzazionde delle funzioni: su una PLA con: 3 ingressi Reti Logiche A Dispositivi Logici Programmabili Esempio 1 Realizzazionde delle funzioni: su una PLA con: 3 ingressi 4 termini prodotto 2 termini somma 2 buffer di uscita Dispositivi Logici Programmabili © 2001/02 - William Fornaciari © 2001/02 - William Fornaciari
Esempio 1 Si individuano i prodotti: E le somme Da cui le due funzioni: Dispositivi Logici Programmabili © 2001/02 - William Fornaciari
Esempio 1 La realizzazione che ne segue e’: x1 x2 x3 I1 I2 I3 I4 I5 I6 f1 f2 O1 O2 AND Plane Input buffers Inverters Output buffers OR Plane Dispositivi Logici Programmabili © 2001/02 - William Fornaciari
Esempio 1 La realizzazione che ne segue e’: I1 x1 AND Plane I2 I3 x2 Input buffers Inverters P1 P2 P3 P4 Output buffers O1 OR Plane f1 O2 f2 Dispositivi Logici Programmabili © 2001/02 - William Fornaciari
Programmable 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 Programmabili © 2001/02 - William Fornaciari
Esempio 2 Realizzazione delle funzioni: su una PAL con: 3 ingressi 4 termini prodotto 2 termini somma a 2 ingressi 2 buffer di uscita Dispositivi Logici Programmabili © 2001/02 - William Fornaciari
Esempio 2 Si individuano i prodotti: E le somme: Da cui le funzioni: Dispositivi Logici Programmabili © 2001/02 - William Fornaciari
Esempio 2 La realizzazione che ne segue e’: I1 x1 AND Plane I2 I3 x2 Input buffers Inverters Output buffers P1 P2 P3 P4 O2 f2 O1 f1 OR Plane Dispositivi Logici Programmabili © 2001/02 - William Fornaciari
Programmable 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 f D Q Clock Q Output Select Internal Feed-back Dispositivi Logici Programmabili © 2001/02 - William Fornaciari
Memorie 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 Programmabili © 2001/02 - William Fornaciari
Memorie ROM Per realizzare le funzioni fj si considerano: La n-upla di ingressi xi come indirizzo di una parola di memoria La 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 parole k 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 Programmabili © 2001/02 - William Fornaciari
Memorie ROM La struttura di una ROM a 3 ingressi e 4 uscite e’ la seguente: ROM 000 001 010 x1 x2 x3 111 Address Decoder Output Buffers f1 f2 f3 f4 Dispositivi Logici Programmabili © 2001/02 - William Fornaciari
Memorie 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 Programmabili © 2001/02 - William Fornaciari
Esempio 3 Il primo metodo si articola nei due passi: Realizzazione delle funzioni: Il primo metodo si articola nei due passi: Costruzione della tabella della verita’ per le cinque funzioni Creazione delle connessioni necessarie sulla ROM, una linea di parola alla volta Dispositivi Logici Programmabili © 2001/02 - William Fornaciari
Esempio 3 La tabella della verita’ e la conseguente realizzazione sono: x1x2x3 f1 f2 f3 f4 f5 000 0 0 0 1 0 001 1 1 1 1 0 010 0 0 1 0 1 011 1 0 1 1 0 100 1 0 1 1 1 101 1 1 1 1 1 110 1 0 1 1 1 111 1 1 0 1 1 ROM Output Buffers 000 001 010 f1 f2 f3 f4 011 100 101 110 111 f5 Dispositivi Logici Programmabili © 2001/02 - William Fornaciari
Esempio 4 Il secondo metodo si articola nei due passi: Realizzazione delle funzioni: Il secondo metodo si articola nei due passi: Riduzione nella prima forma canonica Creazione delle connessioni necessarie sulla ROM, una linea di bit alla volta Dispositivi Logici Programmabili © 2001/02 - William Fornaciari
Esempio 4 Le funzioni ridotte alla prima forma canonica sono: Dispositivi Logici Programmabili © 2001/02 - William Fornaciari
Esempio 4 Si realizzano i collegamenti una linea di bit alla volta: ROM Output Buffers 000 001 010 f1 f2 f3 f4 011 100 101 110 111 f5 Dispositivi Logici Programmabili © 2001/02 - William Fornaciari
Memorie 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 Programmabili © 2001/02 - William Fornaciari
Memorie 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’ attiva in 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 Programmabili © 2001/02 - William Fornaciari
Esempio 5 Data la ROM programmata come in figura, utilizzare il metodo di codifica in modo da utilizzare una ROM con parole di 8 bit. 1 2 3 6 4 5 7 10 11 9 8 1 2 3 4 5 6 7 8 9 10 11 Si costruisce il grafo di mutua esclusione Dispositivi Logici Programmabili © 2001/02 - William Fornaciari
Esempio 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 1 2 3 6 4 5 7 10 11 9 8 1 2 3 6 4 5 7 10 11 9 8 N1 = {1, 2, 3, 5, 6, 7} Dispositivi Logici Programmabili © 2001/02 - William Fornaciari
Esempio 5 Si ripete lo stesso procedimento sul nuovo grafo ottenuto: 1 2 3 6 4 5 7 10 11 9 8 1 2 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. Dispositivi Logici Programmabili © 2001/02 - William Fornaciari
Esempio 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 Programmabili © 2001/02 - William Fornaciari
Esempio 5 Ricordando le codifiche si ha la nuova realizzazione: N1 N2 y4 y5 y1 y2 y3 1 2 3 5 6 7 4 9 10 8 11 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 Programmabili © 2001/02 - William Fornaciari
Altri dispositivi programmabili I dispositivi programmabili possono essere classificati secondo due criteri differenti: Tecnologia Architettura Per tecnologia si intende il processo elettronico sul quale si basa la realizzazione dei dispositivi stessi. Dalla tecnologia dipendono diverse caratteristiche: Integrazione Velocita’ Riprogrammabilita’ L’architettura definisce le caratteristiche delle celle base. L’architettura influenza: Flessibilita’ Dispositivi Logici Programmabili © 2001/02 - William Fornaciari
Altri dispositivi programmabili Classificazione secondo la tecnologia: PLD Fuse Antifuse SRAM EPROM E2PROM AMD Cypress Actel Xilinx Atmel Lucent Altera OTP Reconfigurable Reprogrammable Philips Dispositivi Logici Programmabili © 2001/02 - William Fornaciari
Altri dispositivi programmabili Classificazione secondo l’architettura: PLD GAL PAL CPLD FPGA FPGA+Core AMD Cypress Actel Atmel Xilinx Lucent PLA Motorola 100 - 1K 10 - 100 5K- 100K 5K- 200K 50K- 400K Philips Dispositivi Logici Programmabili © 2001/02 - William Fornaciari
Esercizio 1 Si ricavino le equazioni Date le funzioni f1, …,f5 specificate dalla tabella di verita’: x1x2x3 f1 f2 f3 f4 f5 000 0 0 0 1 0 001 1 1 1 1 0 010 0 0 1 0 1 011 1 0 1 1 0 100 1 0 1 1 1 101 1 1 1 1 1 110 1 0 1 1 1 111 1 1 0 1 1 Si ricavino le equazioni Si realizzi una implementazione su una PLA con: 3 ingressi 8 termini prodotto 5 termini somma 5 uscite Dispositivi Logici Programmabili © 2001/02 - William Fornaciari
Esercizio 2 Si ricavino le equazioni Date le funzioni f1, f3, f3 specificate dalla tabella di verita’: x1x2x3 f1 f2 f3 000 0 1 1 001 0 1 0 010 0 0 0 011 1 0 0 100 1 1 1 101 0 0 1 110 0 0 0 111 1 0 1 Si ricavino le equazioni Si realizzi una implementazione su una PAL con: 3 ingressi 5 termini prodotto 3 termini somma a 2 ingressi 3 uscite Dispositivi Logici Programmabili © 2001/02 - William Fornaciari
Esercizio 3 Si realizzi una implementazione su ROM con parole di 6 bit Date le funzioni f1, ..., f6 specificate dalla tabella di verita’: x1x2x3 f1 f2 f3 f4 f5 f6 000 0 1 0 0 0 0 001 1 0 0 1 0 0 010 0 0 1 0 0 0 011 1 0 0 0 1 0 100 0 0 0 0 0 1 101 0 1 0 0 0 0 110 0 0 1 0 0 0 111 0 0 0 1 0 0 Si realizzi una implementazione su ROM con parole di 6 bit Si ottimizzi la realizzazione precedente in modo da poter utilizzare una ROM con parole di 4 bit Dispositivi Logici Programmabili © 2001/02 - William Fornaciari