lgebra di commutazione Reti combinatorie Corso CSO prof. C. Silvano lgebra di oole L algebra di oole (dal suo inventore, il matematico inglese George oole, 1815-1864) 86 serve e a descrivere e e le operazioni o logiche. Componenti dell algebra di oole: L insieme di elementi (operandi booleani) sui quali vengono eseguite le operazioni; Operatori booleani che agiscono sugli elementi dell insieme ; Elementi neutri di necessari a definire le operazioni; 22/11/2009 Corso CSO prof. C. Silvano Politecnico di Milano 2 Corso CSO prof. C. Silvano Politecnico di Milano 1
lgebra di commutazione L insieme contiene solo due elementi a cui vengono assegnati per convenzione i valori 0 (falso) e 1 (vero): = {0, 1}. Gli elementi neutri corrispondono ai due soli valori dell insieme. Operatori logici elementari: and: vale 1 solo se applicata a due valori entrambi uguali a 1, altrimenti vale 0; or: vale 0 solo se applicata a due valori entrambi uguali a 0, altrimenti vale 1; not: vale 1 se applicata al valore 0, e vale 0 se applicata al valore 1. 22/11/2009 Corso CSO prof. C. Silvano Politecnico di Milano 3 Operatori logici e tabelle di verità Il valore di un operazione logica elementare (e più in generale di una funzione logica) può essere espresso da una Tabella di Verità (Truth Table, TT) che elenca tutte le combinazioni dei valori di ingresso e il corrispondente valore del risultato dell operazione logica. n = 2 ingressi colonna uscita 2 n = 2 2 = 4 righe f = and 0 0 0 0 1 0 1 0 0 1 1 1 22/11/2009 Corso CSO prof. C. Silvano Politecnico di Milano 4 Corso CSO prof. C. Silvano Politecnico di Milano 2
Tabella di Verità (Truth Table, TT) La tabella di verità di una fuzione a n ingressi ha 2 n righe, che corrispondono a tutte le possibili configurazioni di ingresso La tabella di verità ha due gruppi di colonne: colonne degli ingressi, le cui righe contengono tutte le combinazioni di valori delle variabili della funzione colonna dell uscita, che riporta i corrispondenti valori assunti dalla funzione 22/11/2009 5 Corso CSO prof. C. Silvano Politecnico di Milano Porte logiche elementari Rappresentano circuiti che forniscono in uscita il risultato di operazioni logiche elementari sui valori delle n variabili in ingresso. La funzione calcolata da un circuito con n ingressi è descritta da una corrispondente tabella per ciascuna delle 2 n combinazioni degli ingressi. U 22/11/2009 Corso CSO prof. C. Silvano Politecnico di Milano 6 Corso CSO prof. C. Silvano Politecnico di Milano 3
NOT (!): complemento o negazione Tabella di verità Simbolo funzionale U 0 1 1 0 U Notazione: Not! 22/11/2009 Corso CSO prof. C. Silvano Politecnico di Milano 7 ND (*): prodotto logico Tabella di verità Simbolo funzionale U 0 0 0 0 1 0 1 0 0 1 1 1 U Notazione: and && x 22/11/2009 Corso CSO prof. C. Silvano Politecnico di Milano 8 Corso CSO prof. C. Silvano Politecnico di Milano 4
OR (+): somma logica Tabella di verità Simbolo funzionale U 0 0 0 0 1 1 1 0 1 1 1 1 U Notazione: or + 22/11/2009 Corso CSO prof. C. Silvano Politecnico di Milano 9 Porte logiche Componendo le porte logiche elementari not, and e or è possibile ottenere le porte logiche: nand nor xor xnor 22/11/2009 10 Corso CSO prof. C. Silvano Politecnico di Milano Corso CSO prof. C. Silvano Politecnico di Milano 5
NND Tabella di verità Simbolo funzionale U 0 0 1 0 1 1 1 0 1 1 1 0 U Equivalenza: nand = not ( and ) Notazione: nand ( && ) ( ) ( x ) 22/11/2009 Corso CSO prof. C. Silvano Politecnico di Milano 11 Tabella di verità U 0 0 1 0 1 0 1 0 0 1 1 0 NOR Simbolo funzionale U Equivalenza: nor = not ( or ) Notazione: nor ( ) ( + ) 22/11/2009 Corso CSO prof. C. Silvano Politecnico di Milano 12 Corso CSO prof. C. Silvano Politecnico di Milano 6
XOR: OR esclusivo Tabella di verità U 0 0 0 0 1 1 1 0 1 1 1 0 Simbolo funzionale Equivalenza: xor = ( and ) or ( and ) Notazione: xor ( ^ ) ( ) U 22/11/2009 Corso CSO prof. C. Silvano Politecnico di Milano 13 Tabella di verità U 0 0 1 0 1 0 1 0 0 1 1 1 XNOR Simbolo funzionale U Equivalenza: xnor= not ( xor ) Notazione: xnor ( ^ ) ( ) 22/11/2009 Corso CSO prof. C. Silvano Politecnico di Milano 14 Corso CSO prof. C. Silvano Politecnico di Milano 7
Generalizzazione di ND e OR Le porte logiche elementari ND e OR a 2 ingressi si possono generalizzare a 3, 4,, 8 ingressi (raramente più di 8). Nota bene: non tutti i tipi di porte a più di 2 ingressi si possono realizzare come cascata di porte a 2 ingressi (funziona sempre con ND, OR, X-OR, X-NOR) 22/11/2009 15 Corso CSO prof. C. Silvano Politecnico di Milano Esempio: ND a 3 ingressi Tabella di verità C X 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 C Simbolo funzionale L uscita Luscita vale 1 se e solo se tutti e 3 gli ingressi valgono 1. X 22/11/2009 Corso CSO prof. C. Silvano Politecnico di Milano 16 Corso CSO prof. C. Silvano Politecnico di Milano 8
Esempio: ND a 3 ingressi La porta ND a 3 ingressi si può realizzare come cascata di porte ND a 2 ingressi C = () C C X X C 22/11/2009 Corso CSO prof. C. Silvano Politecnico di Milano 17 Esempio: ND a 4 ingressi X = C D C D X Circuito a cascata X = ( () C ) D Circuito ad albero X = () (CD) C D C X D 22/11/2009 Corso CSO prof. C. Silvano Politecnico di Milano 18 Corso CSO prof. C. Silvano Politecnico di Milano 9
Porta OR a 3 ingressi Simbolo funzionale C L uscita vale 0 se e solo se tutti e 3 gli ingressi valgono 0 X = + + C = ( + ) + C X Tabella di verità C X 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 1 22/11/2009 Corso CSO prof. C. Silvano Politecnico di Milano 19 Funzioni combinatorie Una funzione combinatoria ( o funzione booleana o funzione logica) corrisponde ad un espressione booleana, contenente una o più variabili booleane composte attraverso gli operatori booleani ND, OR, ecc Le variabili e le funzioni sono binarie. Esempio di funzione combinatoria a tre ingressi e un uscita: f (,, C) = + C Per specificare il comportamento di una funzione combinatoria è possibile specificare, per ogni possibile configurazione degli ingressi, il valore dell uscita (Tabella di verità). 22/11/2009 Corso CSO prof. C. Silvano Politecnico di Milano 20 Corso CSO prof. C. Silvano Politecnico di Milano 10
Esempio di f( 2 ) = 1 f 0 0 1 0 1 1 1 0 1 1 1 0 f (, ) = nand 22/11/2009 21 Esempio f( 3 ) = 1 C f 0 0 0 1 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 0 f (,, C) = not ( or or C) 22/11/2009 22 Corso CSO prof. C. Silvano Politecnico di Milano 11
Funzioni combinatorie Più in generale, le funzioni logiche hanno n ingressi e m uscite: f ( n ) = m assumendo che l insieme d ingresso I sia composto dai numeri binari a n bit e l insieme d uscita O dai numeri binari a m bit La tabella di verità ha 2 n righe e (n+m) colonne. 22/11/2009 23 Esempio di f( 2 ) = 2 f1 f2 0 0 0 1 0 1 0 0 1 0 0 0 1 1 1 1 f1 (, ) = and f2 (, ) = xnor 22/11/2009 24 Corso CSO prof. C. Silvano Politecnico di Milano 12
lgebra di commutazione lgebra che descrive le funzioni logiche (e i corrispondenti circuiti) che si ottengono combinando le porte logiche elementari. 22/11/2009 25 Proprietà dell algebra di oole Gli operatori elementari dell algebra di oole sono caratterizzati ti da una serie di identità e teoremi che sono riassunti nella seguente tabella. 22/11/2009 26 Corso CSO prof. C. Silvano Politecnico di Milano 13
Proprietà dell algebra di oole Proprietà ND (x) OR (+) Identità 1x = 0+ = Elemento nullo 0 x = 0 1 + = 1 Idempotenza x = + = Inverso x = 0 + = 1 Commutativa x = x + = + ssociativa ( x ) x C = x ( x C) ( + ) + C = + ( + C) Distributiva x ( + C) = ( x ) + ( x C) + ( xc) = ( + ) x ( + C) ssorbimento x ( + ) = + = De Morgan ( x ) = + ( + ) = x 22/11/2009 27 Osservazioni Le proprietà commutativa, distributiva, identità e inverso sono postulati (cioè assunti veri per definizione). Le altre proprietà sono teoremi (dimostrabili per induzione matematica completa attribuendo alle variabili coinvolte sia il valore 0 che il valore 1). 22/11/2009 28 Corso CSO prof. C. Silvano Politecnico di Milano 14
Principio di dualità Nell algebra di oole vale il principio di dualità. Il duale di una funzione booleana si ottiene sostituendo and a or, or a and, gli 0 agli 1, e gli 1 agli 0. 22/11/2009 29 Proprietà dell inverso + = 1 + ( ) = 1 ttenzione: + = xnor 22/11/2009 30 Corso CSO prof. C. Silvano Politecnico di Milano 15
Teorema di De Morgan ( x ) = + La negazione dell and d di due variabili (cioè il nand di due variabili) equivale all or delle variabili negate. Negando entrambi i membri delle due precedenti espressioni si ricava: x = ( + ) L and di due variabili equivale al nor delle variabili negate. 22/11/2009 31 Teorema di De Morgan ( + ) = x La negazione dell or di due variabili (cioè il nor di due variabili) equivale all and delle variabili negate. Negando entrambi i membri delle due precedenti espressioni si ricava: + = ( x ) L or di due variabili equivale al nand delle variabili negate. 22/11/2009 32 Corso CSO prof. C. Silvano Politecnico di Milano 16
Equivalenza Due espressioni booleane sono equivalenti se hanno la stessa tabella di verità. Esempi: L operatore xor equivale a: xor = ( and ) or ( and ) L operatore xnor equivale a: xnor=( and ) or(and) 22/11/2009 33 Tautologia Un espressione booleana è una tautologia se è sempre vera. Esempio: ( or ) 22/11/2009 34 Corso CSO prof. C. Silvano Politecnico di Milano 17
Contraddizione Un espressione booleana è una contraddizione se è sempre falsa: Esempio: ( and ) 22/11/2009 35 Operatori universali I tre operatori logici elementari (and, or, not) costituiscono un insieme funzionalmente completo (cioè consentono di rappresentare una qualunque funzione di commutazione). Problema: Esistono insiemi di operatori più ridotti, che siano ancora un insieme funzionalmente completo? 22/11/2009 36 Corso CSO prof. C. Silvano Politecnico di Milano 18
Operatori universali Consideriamo l insieme composto dai due operatori (not, and): per vedere se è funzionalmente completo dobbiamo verificare se, mediante applicazioni anche ripetute di not e and, è possibile realizzare l operatore or Dal teorema di De Morgan: ( x ) = + E possibile realizzare l operatore or componendo gli operatori not e and l insieme se e( (not, and) è funzionalmente completo. peto 22/11/2009 37 Operatori universali Consideriamo l insieme composto dai due operatori (not, or): per vedere se è funzionalmente completo dobbiamo verificare se, mediante applicazioni anche ripetute di not e or, è possibile realizzare l operatore and Dal teorema di De Morgan: ( + ) = E possibile realizzare l operatore and componendo gli operatori not e or l insieme se e( (not, or) è funzionalmente completo. peto 22/11/2009 38 Corso CSO prof. C. Silvano Politecnico di Milano 19
Operatori universali l contrario se consideriamo l insieme composto dai due operatori (and, or) si dimostra che non è funzionalmente completo, perché la loro composizione non permette di ricavare in alcun modo l operatore not. 22/11/2009 39 Operatori universali Qual è il numero minimo di porte logiche con cui è possibile implementare tutte le altre? Per il teorema di De Morgan, riusciamo a passare da tre a due (con not e and si ottiene or e con not e or si ottiene and). E possibile usarne una sola? 22/11/2009 40 Corso CSO prof. C. Silvano Politecnico di Milano 20
Operatori universali Problema: L insieme composto dal solo operatore (nor) è un insieme funzionalmente completo? 22/11/2009 41 Operatori universali Per vedere se l operatore nor costituisce un insieme funzionalmente completo dobbiamo verificare se mediante il nor è possibile realizzare gli operatori not, and, e or: 0 nor = not (oppure nor = not ) ( nor ) nor 0 = or ( nor 0) nor ( nor 0) = and L operatore nor è funzionalmente completo (operatore universale). 22/11/2009 42 Corso CSO prof. C. Silvano Politecnico di Milano 21
Operatori universali Problema: L insieme composto dal solo operatore (nand) è un insieme funzionalmente completo? 22/11/2009 43 Soluzione Per vedere se l operatore nand costituisce un insieme funzionalmente completo dobbiamo verificare se mediante il nand è possibile realizzare gli operatori not, and, e or 1 nand = not (oppure nand = not ) ( nand ) nand 1 = and ( nand 1) nand ( nand 1) = or Nota: Tali relazioni si possono ottenere da quelle viste per l operatore nor applicando il principio di dualità. L operatore nand è funzionalmente completo (operatore universale). 22/11/2009 44 Corso CSO prof. C. Silvano Politecnico di Milano 22
Circuiti combinatori 22/11/2009 45 Dalla funzione logica al circuito In generale, ad ogni funzione logica (data come espressione booleana) è possibile associare il circuito logico equivalente (chiamato circuito combinatorio) composto dall interconnessione di porte logiche elementari. Un circuito combinatorio è un circuito digitale: dotato di n 1 ingressi principali formato da porte logiche elementari privo di retroazioni 22/11/2009 CSO prof. C. Silvano 46 Corso CSO prof. C. Silvano Politecnico di Milano 23
Dalla funzione logica al circuito Costruzione del circuito combinatorio a partire dalla funzione logica variabili e variabili negate ogni termine dell espressione è sostituito dal corrispondente circuito composto da porte fondamentali le uscite corrispondenti ad ogni termine si compongono come indicato dagli operatori... 22/11/2009 47 F(,, C) = + C ingressi principali Esempio 1 segnale interno uscita C C F segnale interno 22/11/2009 48 Corso CSO prof. C. Silvano Politecnico di Milano 24
Esempio 2 f (,, C) = + C f C C 22/11/2009 49 nalisi di circuiti combinatori: dal circuito alla funzione logica In generale, dato un circuito (o rete combinatoria), è possibile determinare la funzione logica calcolata. 22/11/2009 50 Corso CSO prof. C. Silvano Politecnico di Milano 25
nalisi di circuiti combinatori: dal circuito alla funzione logica Dato il circuito combinatorio (schema logico): (1) Si applicano dei nomi ai segnali interni: p, q e r p C q F r 22/11/2009 51 nalisi di circuiti combinatori: dal circuito alla funzione logica (2) Si ricavano le espressioni booleane corrispondenti ai segnali interni: p = q = C p r = C C q F r 22/11/2009 52 Corso CSO prof. C. Silvano Politecnico di Milano 26
nalisi di circuiti combinatori: dal circuito alla funzione logica (3) Si ricava l uscita come espressione booleana in funzione dei segnali interni: F = p + q + r p C q F r 22/11/2009 53 nalisi di circuiti combinatori: dal circuito alla funzione logica (4) Per sostituzione, si ricava l uscita come espressione booleana in funzione degli ingressi principali: F = p + q + r F(,, C) = + C + C 22/11/2009 54 Corso CSO prof. C. Silvano Politecnico di Milano 27
nalisi di circuiti combinatori: dal circuito alla funzione logica p C q F r F(,, C) = + C + C L espressione booleana così trovata è equivalente allo schema logico di partenza 22/11/2009 55 Circuiti combinatori Circuiti logici digitali in cui le decisioni logiche dipendono solo da una combinazione degli ingressi: Il risultato non dipende dallo stato del circuito Il valore delle uscite è aggiornato immediatamente dopo il cambiamento degli ingressi. 22/11/2009 56 Corso CSO prof. C. Silvano Politecnico di Milano 28
Circuiti combinatori I circuiti combinatori sono senza memoria: ogni volta che vengono forniti gli stessi valori in ingresso, si ottengono le stesse uscite (indipendentemente dalla storia passata) I circuiti combinatori possono essere descritti in modo equivalente come: Espressioni booleane Tabella di verità a più ingressi Circuiti logici 22/11/2009 57 Esempio C f f (,, C) = + C 0 0 0 0 0 0 1 0 0 1 0 1 0 1 1 1 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 f C 22/11/2009 58 Corso CSO prof. C. Silvano Politecnico di Milano 29
Simulazione circuitale (dal circuito alla tabella della verità) La tabella di verità di una circuito combinatorio può anche essere ricavata per simulazione del funzionamento del circuito combinatorio stesso Per simulare il funzionamento circuitale di una rete combinatoria, si applicano dei valori agli ingressi, e li si propaga lungo il circuito fino all uscita 22/11/2009 59 Es. di simulazione circuitale (corrisponde alla riga 0 della tabella) C 0 0 0 0 1 1 F Risultato della simulazione: F(0, 0, 0) = 1 22/11/2009 60 Corso CSO prof. C. Silvano Politecnico di Milano 30
Es. di simulazione circuitale (corrisponde alla riga 1 della tabella) C 0 0 1 0 0 0 F Risultato della simulazione: F(0, 0, 1) = 0 22/11/2009 61 Es. di simulazione circuitale C (corrisponde alla riga 2 della tabella) 0 0 1 1 0 1 F Risultato della simulazione: F(0, 1, 0) = 1 22/11/2009 62 Corso CSO prof. C. Silvano Politecnico di Milano 31
Es. di simulazione circuitale C (corrisponde alla riga 3 della tabella) 0 0 1 0 1 0 F Risultato della simulazione: F(0, 1, 1) = 0 22/11/2009 63 Es. di simulazione circuitale C (corrisponde alla riga 4 della tabella) 1 0 0 1 0 1 F Risultato della simulazione: F(1, 0, 0) = 1 22/11/2009 64 Corso CSO prof. C. Silvano Politecnico di Milano 32
Es. di simulazione circuitale C (corrisponde alla riga 5 della tabella) 1 0 0 0 1 0 F Risultato della simulazione: F(1, 0, 1) = 0 22/11/2009 65 Es. di simulazione circuitale C (corrisponde alla riga 6 della tabella) 1 1 1 1 0 1 F Risultato della simulazione: F(1, 1, 0) = 1 22/11/2009 66 Corso CSO prof. C. Silvano Politecnico di Milano 33
Es. di simulazione circuitale C (corrisponde alla riga 7 della tabella) 1 1 1 1 1 0 F Risultato della simulazione: F(1, 1, 1) = 1 22/11/2009 67 Risultato della simulazione C F 0 0 0 1 0 0 1 0 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 1 1 1 1 1 22/11/2009 68 Corso CSO prof. C. Silvano Politecnico di Milano 34
Esempio C F 0 0 0 1 0 0 1 0 0 1 0 1 F(,, C) = + C 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 1 1 1 1 1 C F 22/11/2009 69 Circuiti combinatori equivalenti Una funzione combinatoria può ammettere più circuiti combinatori differenti che la rappresentano Circuiti combinatori che realizzano la medesima funzione combinatoria si dicono equivalenti Essi hanno tutti la stessa funzionalità (comportamento ingresso/uscita), ma possono avere struttura (costo e area) differente 22/11/2009 70 Corso CSO prof. C. Silvano Politecnico di Milano 35
Esempio di 2 circuiti equivalenti R1 F1 = + C C C +C (+C) F F Trasformazione (Prop. distributiva): F1 = + C = = ( + C) = =F2 C +C R2 F2 = ( + C) 22/11/2009 71 Sintesi di funzioni combinatorie 22/11/2009 72 Corso CSO prof. C. Silvano Politecnico di Milano 36
Sintesi di funzioni combinatorie La sintesi di una funzione combinatoria espressa come tabella di verità, consiste nel ricavare l espressione booleana corrispondente e il relativo schema logico (il circuito digitale). In generale, per una data tabella delle verità possono esistere più funzioni combinatorie (la soluzione al problema di sintesi non è dunque unica) Qual è la migliore? Esistono diversi metodi di sintesi di funzioni combinatorie, che differiscono per: Complessità del metodo Ottimalità della rete combinatoria risultante, per area e velocità 22/11/2009 73 Sintesi di funzioni combinatorie: forme canoniche Data una funzione booleana, la soluzione iniziale al problema di determinare una sua espressione a partire dalla tabella di verità consiste nel ricorso alle forme canoniche. La forma canonica di una funzione costituisce una forma universale mediante la quale è possibile rappresentare qualunque funzione booleana. La forma canonica si basa su componenti (mintermini/maxtermini) caratterizzanti la struttura della funzione. 22/11/2009 74 Corso CSO prof. C. Silvano Politecnico di Milano 37
Sintesi di funzioni combinatorie: forme canoniche Data una funzione booleana, le forme canoniche sono due: Pi Prima forma canonica - Somma di Prodotti (SOP) Seconda forma canonica - Prodotto di Somme (POS) Data una funzione booleana esistono una ed una sola forma canonica SOP ed una e una sola forma POS che la rappresenta. 22/11/2009 75 Prima forma canonica (o somma di prodotti) Data una tabella delle verità, a n 1 ingressi, la funzione F che la realizza può essere specificata come: somma logica (OR) di tutti (e soli) i termini prodotto (ND) delle variabili di ingresso corrispondenti agli 1 della funzione. Ogni termine prodotto (o mintermine) è costituito dal prodotto logico di tutte le n variabili di ingresso (letterali) prese in forma naturale se valgono 1, in forma complementata se valgono 0. 22/11/2009 76 Corso CSO prof. C. Silvano Politecnico di Milano 38
1 a forma canonica: esempio Data la funzione espressa dalla seguente tabella: a b f(a,b) 0 0 0 0 1 1 1 0 0 1 1 1 È intuitivo osservare che la funzione possa essere ottenuta dal OR delle seguenti funzioni: a b f(a,b) a b m 1 (a,b) a b m 3 (a,b) 0 0 0 0 0 0 0 0 0 0 1 1 = 0 1 1 + 0 1 0 1 0 0 1 0 0 1 0 0 1 1 1 1 1 0 1 1 1 22/11/2009 77 1 a forma canonica: esempio Per cui, intuitivamente, si ottiene: a b f(a,b) a b m 1 (a,b) a b m 3 (a,b) 0 0 0 0 0 0 0 0 0 0 1 1 = 0 1 1 + 0 1 0 1 0 0 1 0 0 1 0 0 1 1 1 1 1 0 1 1 1 m 1 (a,b)= a b m 3 (a,b)= ab Quando a=0 e b=1 il prodotto a b assume valore 1 mentre vale 0 in tutti gli altri casi. Quando a=1 e b=1 il prodotto ab assume valore 1 mentre vale 0 in tutti gli altri casi. 22/11/2009 78 Corso CSO prof. C. Silvano Politecnico di Milano 39
1 a forma canonica: esempio a b f(a,b) 0 0 0 0 1 1 1 0 0 1 1 1 a b m 1 (a,b) 0 0 0 0 1 1 1 0 0 1 1 0 = + a b m 3 (a,b) 0 0 0 0 1 0 1 0 0 1 1 1 f(a,b) = a b + ab Mettendo in OR i mintermini della funzione si ottiene l espressione booleana della funzione stessa espressa come somma di prodotti. 22/11/2009 79 Mintermine Un mintermine m i è una funzione booleana a n ingressi che vale 1 in corrispondenza della sola configurazione di ingresso che vale i. Esempio: m 1 (a,b)= a b Un mintermine m i corrisponde al prodotto di n letterali, ciascuno dei quali compare nella forma x se nella corrispondente configurazione di ingresso ha valore 1, nella forma x se ha valore 0. Data una funzione ad n ingressi, possiamo avere fino a 2 n mintermini. Ogni mintermine è rappresentabile con un ND a n ingressi. 22/11/2009 80 Corso CSO prof. C. Silvano Politecnico di Milano 40
Prima forma canonica (o somma di prodotti) Data una funzione logica, la sua espressione booleana del tipo prima forma canonica o somma di prodotti (SOP) èdata dalla somma dei suoi mintermini (termini prodotto). Data una funzione logica ad n ingressi espressa come somma di k termini prodotto (k mintermini) dove k 2 n, è facile passare al circuito: Il circuito logico equivalente è composto dall interconnessione di k porte logiche and ad n ingressi le cui uscite sono collegate ad 1 porta logica or a k ingressi. i Circuito con struttura regolare su 2 livelli di porte logiche. 22/11/2009 81 1 a forma canonica: esempio f (a, b) = a b + a b a b f 22/11/2009 82 Corso CSO prof. C. Silvano Politecnico di Milano 41
Seconda forma canonica (o prodotto di somme) Data una tabella delle verità, a n 1 ingressi, la funzione F che la realizza può essere specificata come: prodotto logico (ND) di tutti (e soli) i termini somma (OR) delle variabili di ingresso corrispondenti agli 0 della funzione. Ogni termine somma (o maxtermine) è costituito dalla somma logica di tutte le n variabili di ingresso (letterale) prese in forma naturale se valgono 0, in forma complementata se valgono 1. 22/11/2009 83 2 a forma canonica: esempio Si consideri nuovamente lo stesso esempio: a b f(a,b) 0 0 0 0 1 1 1 0 0 1 1 1 È intuitivo osservare che la funzione possa essere ottenuta dall ND delle seguenti funzioni: a b f(a,b) 0 0 0 0 1 1 1 0 0 1 1 1 a b M 0 (a,b) 0 0 0 0 1 1 1 0 1 1 1 1 = * a b M 2 (a,b) 0 0 1 0 1 1 1 0 0 1 1 1 22/11/2009 84 Corso CSO prof. C. Silvano Politecnico di Milano 42
2 a forma canonica: esempio Per cui, intuitivamente, si ottiene: a b f(a,b) a b M 0 (a,b) a b M 2 (a,b) 0 0 0 0 0 0 0 0 1 0 1 1 = 0 1 1 * 0 1 1 1 0 0 1 0 1 1 0 0 1 1 1 1 1 1 1 1 1 M 0 (a,b)=(a b ) M 2 (a,b)=(a b ) Infatti, ad esempio, quando a=0 e b=0 il termine (a b ) assume valore 0 mentre vale 1 in tutti gli altri casi. M 0 (a,b)= a + b M 2 (a,b)= a + b 22/11/2009 85 2 a forma canonica: esempio pplicando le leggi di De Morgan, si ottiene le seguente trasformazione: f 1 (a,b)=(a b ) f 1 (a,b)=(a+b) f 2 (a,b)=(ab ) f 2 (a,b)=(a +b) f(a,b) = (a+b)* (a + b) Mettendo in ND i maxtermini della funzione si ottiene l espressione booleana della funzione stessa espressa come prodotto di somme. 22/11/2009 86 Corso CSO prof. C. Silvano Politecnico di Milano 43
Maxtermine Un maxtermine M i è una funzione booleana a n ingressi che vale 0 in corrispondenza della sola configurazione di ingresso che vale i. Esempio: M 2 (a,b)= a + b Un maxtermine M i corrisponde alla somma di n letterali, ciascuno dei quali compare complementato - cioè nella forma x se nella configurazione delle variabili corrispondente appare un 1 e nella forma x se compare uno 0. Data una funzione ad n ingressi, possiamo avere fino a 2 n maxtermini. i Ogni maxtermine è rappresentabile con un OR a n ingressi. 22/11/2009 87 Seconda forma canonica (o prodotto di somme) Data una funzione logica, la sua espressione booleana del tipo seconda forma canonica o prodotto di somme (POS) èdata dal prodotto dei suoi maxtermini (termini somma). Data una funzione logica ad n ingressi espressa come prodotto di m termini somma (m maxtermini) dove m 2 n, è facile passare al circuito: Il circuito logico equivalente è composto dall interconnessione di m porte logiche or ad n ingressi le cui uscite sono collegate ad 1 porta logica and a m ingressi. i Circuito con struttura regolare su 2 livelli di porte logiche. 22/11/2009 88 Corso CSO prof. C. Silvano Politecnico di Milano 44
2 a forma canonica: esempio f (a, b) = (a+ b) (a + b) a b f 22/11/2009 89 Esempio: Funzione di maggioranza Si consideri una funzione combinatoria dotata di 3 ingressi, e C, ediun uscita uscita F, funzionante come segue: Se la maggioranza degli ingressi vale 0, l uscita vale 0 Se la maggioranza degli ingressi vale 1, l uscita vale 1 22/11/2009 90 Corso CSO prof. C. Silvano Politecnico di Milano 45
Esempio: Funzione di maggioranza L uscita vale 1 se e solo se 2 o tutti e 3 gli ingressi valgono 1 (cioè se e solo se il valore 1 è in maggioranza) m3 C F 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 mintermini m5 m6 m7 1 0 1 1 1 1 0 1 1 1 1 1 22/11/2009 91 Esempio: Funzione di maggioranza Dalla tabella della verità si ricava, tramite la sintesi in 1 a forma canonica (somma di prodotti) l espressione booleana che rappresenta la funzione: F(,, C) = C + C + C + C 22/11/2009 92 Corso CSO prof. C. Silvano Politecnico di Milano 46
Esempio: Funzione di maggioranza Dall espressione booleana si ricava il circuito combinatorio di tipo somma di prodotti (circuito a 2 livelli): 22/11/2009 93 Esempio: Funzione di maggioranza C C 0 1 1 C 1 0 1 C F C 1 1 0 C 1 1 1 C 22/11/2009 94 Corso CSO prof. C. Silvano Politecnico di Milano 47
Semplificazione di una funzione Usando le proprietà dell algebra di oole, è possibile semplificare una funzione espressa in forma canonica in una funzione equivalente. Un altro metodo (che vedremo in seguito) per semplificare una funzione è basato sull utilizzo delle Mappe di Karnaugh. 22/11/2009 95 Esempio: Semplificazione della funzione di maggioranza F = C + C + C + C Per la proprietà dell idempotenza: F = C + C + C + C + C + C Per la proprietà distributiva: F = C ( + ) + C ( + ) + (C + C) Per la proprietà dell inverso: F = C 1 + C 1 + 1 Per la proprietà dell identità: F = C + C + 22/11/2009 96 Corso CSO prof. C. Silvano Politecnico di Milano 48
Esempio: Funzione di maggioranza Disegnare il circuito corrispondente alla funzione semplificata così ottenuta: F = + C + C C f 22/11/2009 97 Esempio: Funzione xnor Si consideri la funzione combinatoria a due ingressi espressa dalla seguente tabella di verità (funzione xnor): F 0 0 1 0 1 0 1 0 0 1 1 1 22/11/2009 98 Corso CSO prof. C. Silvano Politecnico di Milano 49
Esempio: Funzione xnor Dalla tabella della verità si ricava, tramite la sintesi in 1 a forma canonica (somma di prodotti) l espressione booleana che rappresenta la funzione: F(, ) = + mintermini F 0 0 1 0 1 0 1 0 0 m0 1 1 1 m3 22/11/2009 99 Esempio: Funzione xnor Dall espressione booleana si ricava il circuito combinatorio di tipo somma di prodotti (circuito a 2 livelli): F(, ) = + F 22/11/2009 100 Corso CSO prof. C. Silvano Politecnico di Milano 50
Esempio: Funzione xnor Dalla tabella della verità si ricava, tramite la sintesi in 2 a forma canonica (prodotto di somme) l espressione booleana che rappresenta la funzione: F(, ) = ( + ) ( + ) Maxtermini U 0 0 1 0 1 0 1 0 0 1 1 1 M 1 M 2 22/11/2009 101 Esempio: Funzione xnor Dall espressione booleana si ricava il circuito combinatorio di tipo prodotto di somme (circuito a 2 livelli): F(, ) = ( + ) ( + ) F 22/11/2009 102 Corso CSO prof. C. Silvano Politecnico di Milano 51
Passaggio da qualunque forma alla 1 a forma canonica Da una qualunque espressione booleana di una funzione si può ricavare la prima forma canonica nel seguente modo: Esempio: F (,, C, D) = C + C + C = = ( + ) C (D + D ) + ( + ) C (D + D ) + C (D + D ) = = C D + C D + CD + CD + CD + CD + CD + CD 22/11/2009 103 Esercizi con soluzioni 22/11/2009 104 Corso CSO prof. C. Silvano Politecnico di Milano 52
Esercizio 1 Calcolare la tabella di verità della seguente funzione: f (,, C) = + C 22/11/2009 105 Soluzione C C f 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 1 0 1 1 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 1 1 0 1 1 1 1 1 1 1 0 1 22/11/2009 106 Corso CSO prof. C. Silvano Politecnico di Milano 53
Esercizio 2 Data la seguente tabella di verità, calcolare la corrispondente funzione f(,, C). Usando le proprietà dell algebra di oole, semplificare la funzione. Disegnare il circuito corrispondente alla funzione semplificata così ottenuta C f 0 0 0 0 0 0 1 0 0 1 0 1 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 1 22/11/2009 107 Soluzione C f Se consideriamo gli 1 della 0 0 0 0 0 1 0 1 0 0 0 1 funzione, possiamo scrivere la funzione come somma di prodotti (1 a forma canonica) nel seguente modo: 0 1 1 0 1 0 0 0 1 0 1 0 f= C +C +C 1 1 0 1 1 1 1 1 22/11/2009 108 Corso CSO prof. C. Silvano Politecnico di Milano 54
Soluzione Data la funzione così ottenuta: f = C + C + C usando le proprietà dell algebra di oole, è possibile semplificare la funzione nel seguente modo: Per la proprietà dell idempotenza: f = C + C + C + C Per la proprietà distributiva: f = C ( +)+(C+C + + C ) Per la proprietà dell inverso: f = C 1+ 1 Per la proprietà dell identità: f = C + 22/11/2009 109 Soluzione f = + C f C 22/11/2009 110 Corso CSO prof. C. Silvano Politecnico di Milano 55
Esercizio 3 Data la funzione dell esercizio precedente: f = + C esprimere la funzione f attraverso la sola porta logica nor e disegnare il circuito. 22/11/2009 111 Soluzione f = + C Per la proprietà associativa: f = ( + C ) Per De Morgan: f = ( + ( + C ) ) cioè: f = ( nor ( nor C)) C )) Essendo X = X nor X f= ( ( nor ) nor ( nor (C nor C))) 22/11/2009 112 Corso CSO prof. C. Silvano Politecnico di Milano 56
Soluzione C f 22/11/2009 113 Esercizio 4 Data la funzione dell esercizio precedente: f = + C esprimere la funzione f attraverso la sola porta logica nand e disegnare il circuito. 22/11/2009 114 Corso CSO prof. C. Silvano Politecnico di Milano 57
Soluzione f = + C Per De Morgan: f = (( ) ( C ) ) cioè: f = (( nand ) nand ( nand C )) Essendo X = X nand X f= ( ( nand ) nand ( nand (C nand C))) 22/11/2009 115 Soluzione C f 22/11/2009 116 Corso CSO prof. C. Silvano Politecnico di Milano 58
Esercizio 5 Data la seguente funzione: f (,, C, D) = + CD Disegnare il circuito corrispondente. Esprimere la funzione f attraverso la sola porta logica nand e disegnare il circuito. 22/11/2009 117 Soluzione f C D 22/11/2009 118 Corso CSO prof. C. Silvano Politecnico di Milano 59
f = + CD Soluzione Per De Morgan: f = (() (CD) ) ) cioè: f= (( nand ) nand (C nand D)) f C D 22/11/2009 119 Esercizio 6 Data la seguente funzione: f (,, C, D) = ( + ) (C + D) Disegnare il circuito corrispondente. Esprimere la funzione f attraverso la sola porta logica nor e disegnare il circuito. 22/11/2009 120 Corso CSO prof. C. Silvano Politecnico di Milano 60
Soluzione f C D 22/11/2009 121 f = ( + ) (C + D) Soluzione Per De Morgan: f = (( + ) +(C+D) ) + ) cioè: f= (( nor ) nor (C nor D)) f C D 22/11/2009 122 Corso CSO prof. C. Silvano Politecnico di Milano 61
Esercizio 7 Usando le proprietà dell algebra di oole, semplificare in una funzione equivalente la seguente funzione, indicando i singoli passi svolti e il nome oppure l espressione della proprietà utilizzata (ad esempio, Proprietà ssociativa oppure ( ) C = ( C) ): f = C + C + C + C Disegnare il circuito corrispondente alla funzione semplificata così ottenuta 22/11/2009 123 Soluzione f = C + C + C + C Per la proprietà distributiva: f = C ( + ) + C ( + ) Per la proprietà dell inverso: f = C 1 + C 1 Per la proprietà dell identità: f = C + C 22/11/2009 124 Corso CSO prof. C. Silvano Politecnico di Milano 62
Soluzione C f 22/11/2009 125 Esercizio 8 Usando le proprietà dell algebra di oole, semplificare in una funzione equivalente la seguente funzione, indicando i singoli passi svolti e il nome oppure l espressione della proprietà utilizzata (ad esempio, Proprietà ssociativa oppure ( ) C = ( C) ): f = C + C + C + C Disegnare il circuito corrispondente alla funzione semplificata così ottenuta 22/11/2009 126 Corso CSO prof. C. Silvano Politecnico di Milano 63
Soluzione f = C + C + C + C Per la proprietà dell idempotenza: f = C + C + C + C + C + C Per la proprietà distributiva: f = C ( + ) + (C + C) + C ( + ) Per la proprietà p dell inverso: f = C 1 + 1 + C 1 Per la proprietà dell identità: f = C + + C 22/11/2009 127 Soluzione C f 22/11/2009 128 Corso CSO prof. C. Silvano Politecnico di Milano 64
Esercizio 9 Usando le proprietà dell algebra di oole, semplificare in una funzione equivalente la seguente funzione, indicando i singoli passi svolti e il nome oppure l espressione della proprietà utilizzata (ad esempio, Proprietà ssociativa oppure ( ) C = ( C) ): f = C + C + C Disegnare il circuito corrispondente alla funzione semplificata così ottenuta 22/11/2009 129 Soluzione f = C + C + C Per la proprietà p dell idempotenza: f = C + C + C + C Per la proprietà distributiva: f = C ( + ) + (C + C) Per la proprietà dell inverso: f = C1+ 1 Per la proprietà dell identità: f = C + 22/11/2009 130 Corso CSO prof. C. Silvano Politecnico di Milano 65
Soluzione C f 22/11/2009 131 Esercizio 10 Usando le proprietà dell algebra di oole, semplificare in una funzione equivalente la seguente funzione, indicando i singoli passi svolti e il nome oppure l espressione della proprietà utilizzata (ad esempio, Proprietà ssociativa oppure ( ) C = ( C) ): f = C + C + C + C + C Disegnare il circuito corrispondente alla funzione semplificata così ottenuta 22/11/2009 132 Corso CSO prof. C. Silvano Politecnico di Milano 66
Soluzione f = C + C + C + C + C Per la proprietà dell idempotenza: f = C + C + C + C + C + C Per la proprietà distributiva: f = (C + C) + (C + C) + C ( + ) Per la proprietà dell inverso e dell identità: f = + + C Per la proprietà distributiva: f = ( + ) + C Per la proprietà dell inverso e dell identità: f = + C 22/11/2009 133 Soluzione f = + C f C 22/11/2009 134 Corso CSO prof. C. Silvano Politecnico di Milano 67
Esercizio 11 Usando le proprietà dell algebra di oole, trasformare in una funzione equivalente (che utilizzi solo porte logiche or e not) la seguente funzione: f = ( C D) Disegnare il circuito corrispondente alla funzione semplificata così ottenuta 22/11/2009 135 Soluzione f = ( C D ) Per la proprietà associativa: f = (( ) (C D) ) Per il teorema di De Morgan: f = ( ) + (C D) Per il teorema di De Morgan: f = ( + ) + ( C + D ) Per la proprietà associativa : f = + + C + D 22/11/2009 136 Corso CSO prof. C. Silvano Politecnico di Milano 68
Esercizio 12 Usando le proprietà dell algebra di oole, trasformare in una funzione equivalente (che utilizzi solo porte logiche or e not) la seguente funzione: f = ( D) + ( + C ) Disegnare il circuito corrispondente alla funzione semplificata così ottenuta 22/11/2009 137 Esercizio 13 Usando le proprietà dell algebra di oole, dimostrare le seguenti uguaglianze: + = + ( + ) (+C)=+C+ + C + C 22/11/2009 138 Corso CSO prof. C. Silvano Politecnico di Milano 69
Esercizio 14 Data la funzione: f = ( ) + ( C) Esprimere la funzione f con la sola porta logica nor e disegnarne il circuito. Esprimere la funzione f con la sola porta logica nand e disegnarne il circuito. 22/11/2009 139 Esercizio 15 F(a,b,c)=!a!b c +!a b c +!a b!c Espressione trasformata t proprietà utilizzata t!a!bc+!abc+!ab!c!a!bc+!abc+!abc+!ab!c!ac(!b+b) +!ab(c+!c) idempotenza x+x=x associativa xy+xz=x(y+z) inverso x+!x=1!ac1 +!ab1 identità x1=x!ac +!ab associativa!a(c + b) - 140 - Corso CSO prof. C. Silvano Politecnico di Milano 70
Calcolare costo e ritardo di propagazione di reti equivalenti (porte a 2 ingressi) della funzione: F(a,b,c)=!a!bc +!abc +!ab!c =!a(c+b) a b c a b c a b c Porte a 2 ingressi ND: Costo = 4, Rit. = 10 OR: Costo = 4, Rit. = 12 NOT: Costo = 1, Rit. = 2-141 - Sintesi tramite le mappe di Karnaugh - 142 - Corso CSO prof. C. Silvano Politecnico di Milano 71
Costo di una rete logica (1) Sintesi in 1 a forma canonica: la funzione logica ottenuta è costituita da n di mintermini pari agli 1 della funzione per ogni mintermine, n di letterali pari al numero delle variabili di ingresso (dualmente per la 2 a forma canonica) Il costo della rete è funzione sia del n di mintermini i i che del numero di letterali - 143 - Costo di una rete logica (2) L uso delle proprietà e dei teoremi dell algebra di commutazione consente di semplificare l espressione logica ridurre sia il n di mintermini che il numero di letterali La semplificazione tramite le proprietà e i teoremi dell algebra non è esprimibile tramite un algoritmo di riduzione non garantisce che si arrivi alla forma minima dell espressione, cioè a quella costituita dal minor numero di mintermini, ciascuno con il minor numero di letterali (sempre espressa come forma di prodotti) - 144 - Corso CSO prof. C. Silvano Politecnico di Milano 72
Considerazioni sulla riduzione (1) Dati due mintermini che differiscono per un solo letterale (che compare quindi in forma naturale e in forma complementata) es:!x!y z +!x y z pplicando le proprietà distributiva, inverso e elemento nullo si ottiene un solo termine prodotto costituito da tutti e soli i letterali identici nei due mintermini!x!y z +!x y z =!x z (!y + y) =!x z 1 =!x z I due mintermini si dicono logicamente adiacenti - 145 - Considerazioni sulla riduzione (2) Dati 2 (= 2 1 ) mintermini logicamente adiacenti è possibile sostituirli con un unico termine prodotto in cui è stato eliminato 1 letterale, qualunque sia il n di letterali (>=1) che li compongono originariamente!x!y z +!x y z =!x z (!y + y) =!x z 1 =!x z Dati 4 (= 2 2 ) mintermini logicamente adiacenti è possibile sostituirli con un unico termine prodotto in cui sono stati eliminati 2 letterali, qualunque sia il n di letterali (>=2) che li compongono originariamente!x!y z +!x y z +!x!y!z +!x y! z =!x z(!y +y) +!x!z (!y + y) =!x z 1 +!x!z 1 =!x (z +!z) =!x - 146 - Corso CSO prof. C. Silvano Politecnico di Milano 73
Mappe di Karnaugh (1) Sono un metodo tabellare di rappresentazione della tabella della verità Sfruttano, nella rappresentazione della tabella, l adiacenza logica tra mintermini Consentono di derivare un algoritmo per la semplificazione automatica delle espressioni come somme di prodotti (o prodotti di somme) lgoritmo: ricerca degli implicanti identificazione degli implicanti primi copertura della funzione - 147 - Mappe di Karnaugh (2) Ricerca degli implicanti sono sottogruppi di 2 n celle adiacenti (corrispondenti agli 1 della funzione) per le quali n variabili assumono sempre sia la forma naturale che quella complementata. Nel termine prodotto corrispondente è quindi possibile semplificare n letterali di ingresso Individuazione degli implicanti primi sono implicanti di dimensione massima (generano quindi il minimo numero di letterali nel termine prodotto corrispondente) in pratica un implicante è primo se non è contenuto interamente in nessun implicante di dimensioni maggiori della funzione Copertura della funzione: ricerca del minor numero di implicanti primi che coprono tutti gli 1 della funzione (si genera quindi il minor numero di termini prodotto). Gli implicanti primi possono anche essere parzialmente sovrapposti - 148 - Corso CSO prof. C. Silvano Politecnico di Milano 74
Sia data la funzione seguente MPP DI KRNUGH - Es. 1 f( (x, y) = f(0, 2, 3)=!x!y + x!y + x y m x y f 0 0 0 1 1 0 1 0 2 1 0 1 3 1 1 1 Tabella delle verità y x 0 1 0 1 0 1 1 1 1 f (x, y) = x +!y 2 3 Implicanti primi Mappa di Karnaugh SOP - 149 - MPP DI KRNUGH - Es. 2 f (x, y, z) = f(0, 4, 6, 7)=!x!y!z + x!y!z + x y!z + x y z m x y z f 0 0 0 0 1 1 0 0 1 0 2 0 1 0 0 3 0 1 1 0 4 1 0 0 1 5 1 0 1 0 6 1 1 0 1 7 1 1 1 1 Tabella delle verità - 150 - Corso CSO prof. C. Silvano Politecnico di Milano 75
La disposizione delle configurazioni per colonna rispetta il criterio di adiacenza. Le configurazioni sono a distanza Hamming unitaria MPP DI KRNUGH - Es. 2 Mappa di Karnaugh SOP y z x 00 01 11 10 0 1 0 1 3 2 1 1 1 1 4 5 7 6 Implicanti primi f (x, y, z) = xy +!y!z - 151 - Esempi di implicanti p 4 u v x y 00 01 11 10 00 1 1 01 1 1 1 11 1 10 1 p 5 p 1 p 1 =!x!u è implicante primo p 2 =!x y v è implicante primo p 3 = y u v è implicante primo p 4 =!x!u!v è implicante (ma non primo, perché in p 1 ) p 5 = x!y u!v è implicante primo (ed è anche mintermine) p 2 p 3-152 - Corso CSO prof. C. Silvano Politecnico di Milano 76
Esempio di raccoglimenti a,b c,d 00 01 11 00 1 1 0 10 0 01 1 1 1 1 11 0 0 1 1 10 1 0 0 1 raccoglimento Raccoglimento di dimensione massima 1 1 0 0 1 1 1 1 0 0 1 1 1 0 0 1 ERRORE: valido raccoglimento solo di 2,4,... - 153 - Esempio di raccoglimenti a,b c,d 00 01 11 10 00 1 1 0 0 01 1 1 1 1 11 0 0 1 1 10 1 0 0 1 Raccoglimento di dimensione massima Raccoglimento di dimensione massima essenziale 1 1 0 0 1 1 1 1 0 0 1 1 1 0 0 1 1 appartenente ad un solo implicante primo - 154 - Corso CSO prof. C. Silvano Politecnico di Milano 77
Identificazione del termine prodotto (implicante) d ogni raccoglimento è associato un termine prodotto. Il termine prodotto (implicante) è ottenuto: identificando le variabili che non cambiano mai di valore e riportando ogni variabile in modo naturale (esempio: a) se il valore che essa assume è 1 o in modo complementato (esempio: a ) se il valore da essa assunto è 0-155 - Esempio: identificazione del termine prodotto (implicante) a,b a,b c,d 00 01 11 10 00 01 00 1 1 0 0 01 1 1 1 1 11 0 0 1 1 10 1 0 0 1 d cambia valore c,d 11 10 00 1 1 0 0 01 1 1 1 1 11 0 0 1 1 10 1 0 0 1 b cambia valore b e d cambiano valore: non compaiono nel termine prodotto. a e c compaiono come 0 quindi a e c. Il termine prodotto è a c. - 156 - Corso CSO prof. C. Silvano Politecnico di Milano 78
Sintesi di reti combinatorie a due livelli: Metodi esatti - Karnaugh Metodo: Individuare gli implicanti primi e gli implicanti primi essenziali; Implicante primo Termine prodotto associato ad un raggruppamento (cubo) di dimensione massima. In pratica, un implicante è primo se non è contenuto interamente in nessun implicante di dimensioni maggiori della funzione Implicante primo essenziale Implicante primo che copre uno o più 1 non coperti da nessun altro implicante primo. In pratica, un implicante primo è essenziale se esiste almeno un mintermine della funzione coperto solo da quell implicante tra tutti gli implicanti primi della funzione. - 157 - Sintesi di reti combinatorie a due livelli: Metodi esatti - Karnaugh 1. Copertura minima: Scelta del minor numero di implicanti primi e primi essenziali implicanti implicanti primi implicanti primi essenziali - 158 - Corso CSO prof. C. Silvano Politecnico di Milano 79
Sintesi di reti combinatorie a due livelli: Metodi esatti - Karnaugh Scopo: identificare una forma SoP che includa il numero minimo di implicanti e a parità di numero di implicanti gli implicanti col minimo numero di letterali (definita come forma minima) garantendo la copertura di tutti gli 1 della funzione. Teorema: Esiste sicuramente una forma minima costituita da soli implicanti primi sulla mappa di Karnaugh si identificano tutti gli implicanti primi. Nota: la somma di tutti gli implicanti primi è spesso ridondante. Gli implicanti primi essenziali devono essere inclusi nella forma minima. Una forma minima costituita da soli implicanti primi essenziali è unica Condizione sufficiente. - 159 - Sintesi di reti combinatorie a due livelli: Metodi esatti - Karnaugh Copertura Copertura: sotto insieme i degli implicanti identificati tale per cui nessun 1 della funzione rimane scoperto. Poiché ogni implicante scelto aumenta il costo della realizzazione della funzione, il numero di implicanti da scegliere deve essere il minimo possibile. L obiettivo è la riduzione del costo; questo si traduce nella identificazione della copertura di minima cardinalità: Implicanti primi essenziali e sotto insieme degli implicanti primi identificati che realizza una copertura della funzione di cardinalità minima. - 160 - Corso CSO prof. C. Silvano Politecnico di Milano 80
Sintesi di reti combinatorie a due livelli: Metodi esatti - Karnaugh Copertura minima Scelta degli implicanti per realizzare la copertura minima: 1. Si scelgono tutti gli implicanti primi essenziali. Gli implicanti primi essenziali devono essere parte della copertura poiché sono essenziali e, quindi, non è possibile fare a meno di loro. 2. Si eliminano tutti gli implicanti primi che sono coperti da quelli essenziali (eliminazione implicanti completamente ridondanti) gli implicanti eliminati, i detti completamente t ridondanti, d coprono degli 1 che sono già ricoperti da quelli essenziali e, quindi, non servono ai fini della copertura. 3. Si seleziona il numero minimo degli implicanti primi che sono rimasti. gli implicanti primi residui sono detti parzialmente ridondanti - 161 - Esempio 1 f( a, b, c, d) = ( 0,1,2,4,5,9,10,11,13, 15 ) Implicanti primi essenziali a'c'; ad Implicanti primi a'b'd'; b'cd'; a b'c; c'd a,b c,d 00 01 11 10 00 1 1 0 0 01 1 1 1 1 11 0 0 1 1 10 1 0 0 1 a b c d f 0 0 0 0 1 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 0 1 0 0 1 0 1 0 1 1 0 1 1 0 0 0 1 1 1 0 1 0 0 0 0 1 0 0 1 1 1 0 1 0 1 1 0 1 1 1 1 1 0 0 0 1 1 0 1 1 1 1 1 0 0 1 1 1 1 1 Completamente ridondante - 162 - Corso CSO prof. C. Silvano Politecnico di Milano 81
Esempio 1 Implicanti primi essenziali a'c'; ad Tabella ottenuta dopo la selezione degli implicanti primi essenziali a,b c,d 00 01 11 10 00 0 0 01 11 0 0 10 1 0 0 1 1 da coprire f(a,b,c,d)= a'c'+ad+ b'c d Forma minima (unica) Implicanti primi a'b'd'; b'cd'; ab'c; c'd Parzialmente ridondanti: a'b'd'; ab'c; c'd - 163 - Corso CSO prof. C. Silvano Politecnico di Milano 82