Espressioni generali e MULTIPLEXER
Notazioni simboliche per le espressioni canoniche 1 2 3 4 5 6 7 r a b R S 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 Abbiamo già visto che una funzione può essere espressa come somma di mintermini o come prodotto di maxtermini Questo esempio ne mostra la notazione applicata al caso del full adder S (r,a,b) = S3 m (1,2,4,7) S (r,a,b) = P3 M (0,3,5,6) R (r,a,b) = S3 m (3,5,6,7) R (r,a,b) = P3 M (0,1,2,4) m(i) : mintermine di n bit che assume il valore 1 solo per la n-pla di valori delle variabili corrispondente all’indice i. M(i) : maxtermine di n bit che assume il valore 0 solo per la n-pla di valori delle variabili corrispondente all’indice i.
Espressioni generali . F(x1,x2,...xi,..xn) = m(i) F(i) (SP) La notazione del lucido precedente può essere generalizzata come segue: si consderano tutti i mintermini (caso SP) o i maxtermini(caso PS) e semplicemente si “mascherano” cioè si fanno sparire quelli che non interessano Espressione generale - Espressione in grado di descrivere qualsiasi funzione di n variabili: F(x1,x2,...xi,..xn) = m(i) F(i) (SP) . i=0 2n-1 i=0 2n-1 F(x1,x2,...xi,..xn) = ( M(i) + F(i)) (PS) m(i) : mintermine di n bit F(i): valore dalla funzione per la n-pla di valori delle variabili per cui m(i)=1 Caso SP M(i) : maxtermine di n bit F(i): valutazione dalla funzione per la n-pla di valori delle variabili per cui M(i)=0 Caso PS
La rete basata sull’espressione generale (caso SP) F(x1,x2,...xi,..xn) = m(i) F(i) . i=0 2n-1 Espressione in grado di descrivere qualsiasi funzione di n variabili F(i): costante detta anche “bit di programmazione” x1 x2 xn F F(0) F(1) F(2n-1) Rete combinatoria programmabile in grado di realizzare qualsiasi funzione di n variabile Questa rete è un multiplexer a 2n vie e può anche essere realizzata con un decoder di n variabili, 2n and2 e un OR a 2n ingressi
A e B si chiamano anche variabili di controllo o I Multiplexer MUX a 4 vie, detto anche MUX di due variabili (espressione SP) U = A1’. A0’. I0 + A1’. A0 . I1 + A1 . A0’. I2 + A1 . A0 . I3 SN74153 Ricordando che il decoder è la rete che genera i mintermini, la realizzazione del MUX con decoder, and e or a partire dall’espressione di U è immediata (è sufficiente applicare la proprietà associativa ai 4 prodotti logici) U I0 I1 I2 I3 A B A e B si chiamano anche variabili di controllo o bit di indirizzo del MUX
Circuiti integrati che realizzano MUX di 1, 2, 3, e 4 variabili (detti anche MUX a 2, 4, 8 e 16 vie) SN74150 I0 I1 I2 I3 I4 I5 I6 I7 Z I8 I9 I10 I11 I12 I13 I14 I15 DCBA SN74157 I0 I1 Z A SN74153 I0 I1 I2 Z I3 B A SN74151 I0 I1 I2 I3 Z I4 I5 I6 I7 CBA A,B,C,D ingressi ( xi ) Ii bit di programmazione ( pi )
Sintesi con Multiplexer Il Multiplexer con n bit di indirizzo è la realizzazione della espressione generale SP di n variabili. Il procedimento di sintesi mediante multiplexer si articola nei seguenti passi: 1) Si sceglie, o si realizza, un MUX con un numero di vie pari alle righe della tabella della verità da realizzare. 2) Si collegano gli ingressi di selezione ai segnali che corrispondono alle variabili della funzione. 3) Si impone su ciascuna via o il valore “0” o il valore “1” seguendo le indicazioni fornite dalla tabella della verità. N. B. - Nello schema elettrico l’imposizione di un valore logico (0 o 1) implica il collegamento con il corrispondente valore fisico (es. 0V o 5 V)
Sintesi di un full-adder con MUX Ci vuole un MUX per ogni variabile di uscita! I0 I1 I2 I3 I4 I5 I6 I7 C B A Z S R SN74151 1 0 a b r S R 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 a b r Vcc 1 GND 0
Una RC per a =0 e una RC per a =1 Impiego dei MUX per semplificare la sintesi di funzioni di molte variabili Dividiamo in due una t.d.v. di n variabili in modo che ognuna delle due “sottotabelle” ottenute abbia una variabile di ingresso costante (es.: xn-1) Si ottengono così 2 tdv di n-1 variabili ciascuna associata a un valore costante di xn-1 La rete che realizza la tdv di n var. assegnata può essere realizzata inviando a un MUX a due vie controllato da xn-1 le uscite delle 2 reti di n-1 variabili che realizzano le due sottotabelle a b r S 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 0 1 1 1 1 RC 1 b r a=0 MUX 0 U 1 A S RC 1 b r a=1 a Una RC per a =0 e una RC per a =1
Iterazione del procedimento illustrato nel lucido precedente Il procedimento illustrato nel lucido precedente è semplicemente l’applicazione del teorema di espansione Il procedimento può essere iterato suddividendo ulteriormente le tdv di n-1 variabili in due tdv di n-2 variabili La realizzazione della tdv assegnata, dopo due iterazioni, si riduce a: la realizzazione di 4 funzioni di n-2 variabili un albero di multiplexer a due vie l’albero di MUX realizza a sua volta la funzione di mux a 4 vie, come illustrato dal prossimo lucido Il teorema di espansione può essere applicato in tutto n volte (TANTE QUANTE SONO LE VAR. DI INGRESSO) Alla fine si arriva alla realizzazione delll’espressione generale SP tramite albero di MUX a n livelli
Albero di MUX Espressione SP di un MUX a 4 vie U = A1’. A0’. I0 + A1’. A0 . I1 + A1 . A0’. I2 + A1 . A0 . I3 Manipolazione algebrica: U = A1’. (A0’. I0 + A0 . I1) + A1 . (A0’. I2 + A0 . I3) I0 I1 I2 I3 MUX 0 U 1 A A0 MUX 0 U 1 A A1 U Disponendo opportunamente in serie/parallelo dei MUX si ottiene un MUX con un numero maggiore di vie.
Ripetizione dei teoremi di espansione (o di Shannon) T19) F(x1,x2,..xn-1,xn) = xn’.F(x1,x2,..xn-1,0) + xn .F(x1,x2,..xn-1,1) T20) F(x1,x2,..xn-1,xn) = (xn+ F(x1,x2,..xn-1,0)).(xn’+ F(x1,x2,..xn-1,1)) F(x1,x2,..xn-1,0), F(x1,x2,..xn-1,1) sono rispettivamente la parte della tabella della verità di F in cui xn=0 e quella in cui xn=1. Se F è descritta da una espressione E(x1,x2,..xn-1,xn), sono le espressioni che si ottengono da E sostituendo a xn i valori 0 e 1. Esempio: b F(0,b) a b F(a,b) 0 0 0 0 0 1 1 0 1 1 1 0 1 b F(1,b) 1 1 1 0 1 1 1 Esempio: E= x1+x2 x3’ = x1’.(0+x2 x3’)+x1.(1+x2 x3’) = (x1+(0+x2 x3’)).(x1’+(1+x2 x3’)) Sia F una funzione di n variabili: essa può essere descritta dall’espressione a Dx in cui F(..,0) e F(…1) rappresentano due espressioni che descrivono rispettivamente la parte della tabella della verità in cui xn=0 e xn=1. Esempio a SX: possiamo verificare che l’espressione ottenuta applicando Shannon desccrive la funzione assegnata: E(shannon)= a’b + a descrive la funzione assegnata ? E(caconica)= a’b + ab’ + ab = a’ b + a (b+b’) = a’b + a Esempio a DX: Qui invece partiamo da un’espressione e applichiamo Shannon sia nella versione T19 sia nella versione T20 verifichiamo l’equivalenza per valuatazione (facciamo prima il caso x1=0 e x1=1)
Mapping di reti logiche su gate array programmabili Il simulatore logico che utilizziamo nel corso di reti logiche deve sapere quale dispositivo elettronico verrà impiegato per realizzare le reti che vogliamo simulare I dispositivi utilizzabili sono gate array programmabili in campo (FPGA o Field Programmable Gate Arrays) costruiti da Altera Questi dispositivi sono costituiti da matrici di celle logiche, la cui struttura di riferimento sarà illustrata nel prossimo lucido Solitamente le celle sono tutte uguali Le loro principali caratteristiche sono la configurabilità e la interconnettibilità: esiste un programma detto “fitter” che automaticamente converte la rete data in una rete equivalente composta di celle configurate e interconnesse Alcuni FPGA mantengono la configurazione anche in assenza di alimentazione Altri FPGA mantengono la configurazione su una memoria volatile che perde il contenuto in assenza di alimentazione
FPGA: struttura di una cella tipo Interconnettendo tra loro più celle di un FPGA è possibile realizzare reti combinatorie e sequenziali di notevole complessità Ogni cella ha le seguenti caratteristiche: 5 o 6 ingressi “combinatori” un mux a due vie: una via è un ingresso, la variabile di controllo è un altro ingresso e l’altra via è una qualunque funzione degli altri 3 o 4 ingressi (scelta dal fitter) un FFD con ingressi di clock, enable, e clear+preset sincroni 2 uscite: l’uscita del mux e l’uscita del FFD l’ingresso del FFD è l’uscita del MUX In questo modo ogni cella può essere impiegata per realizzare la funzione G, la funzione F o il registro con lo stato presente
Rappresentazione concettuale di una cella logica di FPGA cd 00 01 11 10 ab X 1 MUX 0 U 1 A YF RC di 4 variabili configurabile a,b,c,d f e z D Q y Preset e clear del FFD non sono indicati Il clock è un segnale globale, esteso cioè a tutto il dispositivo
Esercizi di mapping su FPGA Si mappi su due celle una funzione di 5 variabili Si mappi su tre celle il generatore di forme d’onda assegnato nella prima prova intermedia Si scelgano a piacere tre reti e le si mappi su FPGA Questi esercizi si possono risolvere applicando alle funzioni da mappare il teorema di espansione come indicato nel lucido n.9 (semplificazione di reti complesse)
Sintesi a MUX di funzioni complesse (1) Caso di studio: sintesi di una funzione incompleta di 4 variabili usando MUX con 3 ingressi di selezione. . = F(Q0 ,Q1 ,Q2 ,0) Q3’ . + F(Q0 ,Q1 ,Q2 ,1) Q3 Z = F(Q0 ,Q1 ,Q2 , Q3) a) 100 1 - 000 001 010 011 Q3 Q2Q1 Q0 101 110 111
Sintesi a MUX di funzioni complesse (2) B A Z SN74151 1 0 SN74157 I0 I1 A Z F (Q0 ,Q1 ,Q2 , Q3) Q3 F(Q0 ,Q1 ,Q2 ,0) F(Q0 ,Q1 ,Q2 ,1) Q2Q1Q0 I0 I1 I2 I3 I4 I5 I6 I7 C B A Z SN74151
Sintesi di funzioni con molte variabili (3) Applicando 3 volte il teorema di espansione per “estrarre” una dopo l’altra le variabili Q0, Q1 e Q2 : Z = F(Q0 ,Q1 ,Q2 ,Q3) = F(0,0,0, Q3) Q2’Q1’Q0’ + F(0,0,1, Q3) Q2’Q1’Q0 + F(0,1,0, Q3) Q2’Q1 Q0’ + F(0,1,1, Q3) Q2’Q1 Q0 + F(1,0,0, Q3) Q2 Q1’Q0’ + F(1,0,1, Q3) Q2 Q1’Q0 + F(1,1,0, Q3) Q2 Q1 Q0’ + F(1,1,1, Q3) Q2 Q1 Q0 F(0,0,0,Q3) F(0,0,1,Q3) F(0,1,0,Q3) F(0,1,1,Q3) F(1,0,0,Q3) F(1,0,1,Q3) F(1,1,0,Q3) F(1,1,1,Q3) Q3 Q2Q1Q0 I0 I1 I2 I3 I4 I5 I6 I7 C B A Z F SN74151
Sintesi a MUX di funzioni complesse (4) 100 1 - 000 001 010 011 Q3 Q2Q1 Q0 101 110 111 F(0,0,0,Q3) = 1 F(0,0,1,Q3) = 0 F(0,1,0,Q3) = 1 F(0,1,1,Q3) = 0 F(1,0,0,Q3) = 0 F(1,0,1,Q3) = 0 F(1,1,0,Q3) = 1 F(1,1,1,Q3) = Q3 Q3’ genera le 4 funzioni di una variabile ! I0 I1 I2 I3 I4 I5 I6 I7 C B A Z Q2Q1Q0 F SN74151 1 0 Q3 La soluzione b) presenta minor numero di componenti e minor ritardo rispetto alla a) .
Esercizio 4.9 Si consideri la precedente funzione Z e si esegua la sintesi con MUX a 3 ingressi di selezione estraendo dapprima solo Q0 e poi Q1, Q2 ,Q3 .