rchitetture dei calcolatori e delle reti lgebra di oole e circuiti dalle funzioni logiche ai circuiti digitali. orghese, F. Pedersini Dip. Informatica Università degli Studi di Milano L 3 1 lgebra di oole George oole, 1854: n Investigation of the Laws of Thought on which to found the Mathematical Theories of Logic and Probabilities lgebra di oole lgebra basata su: v Variabili binarie: FLSE (=0); TRUE (=1) v Operatori logici sulle variabili: NOT, ND, OR pplicazioni: Ø Rappresentazione delle informazioni (in un elaboratore) Ø nalisi / Sintesi dei circuiti digitali NLISI: Dal sistema alla descrizione formale del suo funzionamento. SINTESI: dalla descrizione (funzione logica) al progetto del sistema che la implementa. L 3 2
Funzione logica / circuito logico Funzione logica: f : N funzione booleana di n variabili booleane Ø Può essere rappresentata mediante combinazione di variabili e operatori elementari (NOT,ND,OR) Ø Definita per tutte le 2 N combinazioni delle variabili (ingressi) Può essere rappresentata in tre diversi modi: 1. Espressione: Y = f ( x 1, x 2,..., x n ) 2. ircuito logico Ø 1 uscita Y, funzione booleana di Ø N ingressi (x 1,..., x n ) variabili booleane 3. Tabella di verità (Truth Table, TT) Ø Definizione della funzione come elenco dei valori della funzione per tutte le possibili combinazioni di valori delle variabili (2 N ). x 1 x 2 x n Y x 1 x 2 Y 0 0 0 0 1 1 1 0 1 1 1 1 L 3 3 Operatore NOT v Operazione logica di negazione Ø Se è vera, NOT() è falsa Y = NOT = NOT : Β Β v Operazione definita dalla tabella della verità Ø Funzione definita per tutte le combinazioni di variabili Tabella della verità Y 0 1 1 0 Negazione logica ( Inverter ) Y L 3 4
Operatore ND Operazione di prodotto logico Ø Solo se sia che sono veri, ND è vera. ND : Β 2 Β Y = ND = = Tabella della verità Y 0 0 0 0 1 0 1 0 0 1 1 1 Prodotto logico (porta ND) Y L 3 5 Operatore OR v Operazione di somma logica Ø Se o sono veri, che OR è vera. OR : Β 2 Β Y = OR = + Tabella della verità Y 0 0 0 0 1 1 1 0 1 1 1 1 Somma logica (porta OR) Y L 3 6
Priorità degli operatori Regola di priorità degli operatori In assenza di parentesi: Ø ND ha la priorità sull OR, Ø NOT su entrambi: NOT à ND à OR v Esempi: OR ND = + = + ( ) NOT ND = NOT = ( NOT ) = L 3 7 Dualità e Postulati Principio di dualità: se un espressione booleana è vera, è vera anche la sua duale il DULE di un espressione booleana si ottiene: Ø scambiando ND con OR (OR ND, ND OR) Ø scambiando TRUE (1) con FLSE (0) (0 1, 1 0) Esempio: = 0 + =1 Postulati dell algebra di oole: Ø Le proprietà: commutativa, distributiva, identità, elemento inverso sono postulate: assunte vere per definizione. Ø Le altre proprietà sono teoremi che si ottengono per dimostrazione a partire dai postulati. L 3 8
Proprietà degli operatori logici Proprietà ND OR (duale) Identità 1 x = x 0 + x = x Elem. zero 0 x = 0 1 + x = 1 Idempotenza x x = x x + x = x El. inverso x ~x = 0 x + ~ x = 1 ommutativa x y = y x x + y = y + x ssociativa (x y) z = x (y z) = xyz (x+y) + z = x + (y+z) = x+y+z ND rispetto a OR OR rispetto a ND Distributiva x (y + z) = x y + x z x + y z = (x+y) (x+z) I assorbimento x (x + y) = x x + x y = x II assorbimento x (~x + y) = x y x + ~x y = x + y De Morgan ( xy) = x + y ( x + y) = x y L 3 9 Operatore: XOR (OR esclusivo) v Operazione di mutua esclusione: Y è vera se e solo se o o sono veri, ma non entrambi Tabella della verità Y 0 0 0 0 1 1 1 0 1 1 1 0 Y = XOR = Porta logica XOR Espresso mediante gli operatori fondamentali: = + = + Proprietà: XOR è VER quando e sono DIVERSI XOR : Β 2 Β Y ( ) ( ) + L 3 10
Operatore NND v Operatore ND negato NND = NOT( ND ) Y 0 0 1 0 1 1 1 0 1 1 1 0 operatore NND Y = Y L 3 11 Operatore NOR v Operatore OR negato NOR = NOT( OR ) operatore NOR Y 0 0 1 0 1 0 1 0 0 1 1 0 = Y Y L 3 12
Porte universali Quale è il numero minimo di porte con cui è possibile implementare tutte le altre? v on la legge di De-Morgan riusciamo a passare da 3 a 2: Ø con NOT e ND si ottiene OR: v E possibile usarne una sola? NOT( NOT() ND NOT() ) = OR Ø Sì, ad esempio la porta NND e la NOR che sono chiamate porte universali L 3 13 Porta Universale NOR NOT = 0 NOR = NOR OR = ( NOR ) NOR 0 ND = ( NOR 0) NOR ( NOR 0) L 3 14
Porta Universale NND NOT = 1 NND = NND ND = ( NND ) NND 1 OR = ( NND 1) NND ( NND 1) 1 not 1 or 1 1 and L 3 15 ircuiti digitali Ricordando che: v Un oggetto di materiale conduttore si trova tutto allo stesso potenziale elettrico (equipotenziale) v Un generatore di tensione (batteria, alimentatore) genera una differenza di potenziale tra due conduttori detti POLI: positivo (+) e negativo ( ) Definiamo: v TENSIONE su un conduttore: differenza di potenziale tra il conduttore ed un conduttore di riferimento è polo negativo In un circuito digitale ho 2 TENSIONI possibili per ogni conduttore: v Tensione MSSIM (potenziale del polo +) è 1 v Tensione MINIM: 0 Volt (potenziale del polo ) è 0 1 : collegamento elettrico a + 0 : collegamento elettrico a circuito digitale 1 0 L 3 16
Il transistore MOSFET MOSFET: Metal-Oxide-Semiconductor Field Effect Transistor Modello di funzionamento del MOSFET: collegamento elettrico tra DRIN e SOURE comandato dalla tensione su GTE: v v Tensione V GS bassa D, S isolati Ø MOSFET in stato di INTERDIZIONE Tensione V GS alta D, S collegati Ø MOSFET in stato di STURZIONE GTE DRIN SOURE D D G G V GS bassa S V GS alta S L 3 17 La tecnologia MOS (1980 oggi) v MOS: omplementary MOS MOSFET a coppie complementari (N-MOS + P-MOS) che lavorano in contrapposizione Ø Se un N-MOS conduce è il corrispondente P-MOS è isolato e viceversa Inverter MOS 2 15 Volt S v Vantaggi tecnologia MOS: Ø Tensione di alimentazione flessibile : V = 1 15 Volt V LOW = 0 V /2 V HIGH = V /2 V Ø onsumo bassissimo: onsuma solo nella transizione In condizioni statiche, consumo nullo! In G G 0 Volt P-MOS D Out D N-MOS S L 3 18
Porte MOS Porta NND Porta NOR L 3 19 Funzione logica / circuito logico Funzione logica: f : N funzione booleana di n variabili booleane Ø Può essere rappresentata mediante combinazione di variabili e operatori elementari (NOT,ND,OR) Ø Definita per tutte le 2 N combinazioni delle variabili (ingressi) Può essere rappresentata in tre diversi modi: 1. Espressione: Y = f ( x 1, x 2,..., x n ) 2. ircuito logico Ø 1 uscita Y, funzione booleana di Ø N ingressi (x 1,..., x n ) variabili booleane 3. Tabella di verità (Truth Table, TT) Ø Definizione della funzione come elenco dei valori della funzione per tutte le possibili combinazioni di valori delle variabili (2 N ). x 1 x 2 x n Y x 1 x 2 Y 0 0 0 0 1 1 1 0 1 1 1 1 L 3 20
Funzione / circuito / tab. verità Esempio: F (,,) = + 3 variabili: F = f (,,) à 2 3 = 8 combinazioni possibili delle variabili ircuito logico Tabella di verità 1 0 0 1 0 0 0 not 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 Data una funzione F, esistono infinite espressioni e infiniti circuiti, ma una sola tabella di verità che la rappresenta. L 3 21 Sintesi di circuiti combinatori Dal circuito/espressione alla tabella di verità à NLISI Problema della SINTESI (progetto) di circuiti combinatori: ome passare da: tabella di verità a: espressione logica / circuito digitale? Data la tabella di verità: 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 F = 1 se e solo se: = 0 ND = 1 ND = 0 OR = 1 ND = 1 ND = 0 OR = 1 ND = 1 ND = 1 L 3 22
Funzione: espressione / tabella di verità F = 1 se e solo se: = 0 ND = 1 ND = 0 OR = 1 ND = 1 ND = 0 OR = 1 ND = 1 ND = 1 F =1 se e solo se: ( =1 and =1 and =1) or ( =1 and =1 and =1) or ( =1 and =1 and =1) F =1 se e solo se: =1 or =1 or =1 F =1 se e solo se: + + =1 F = + + L 3 23 La prima forma canonica F = + = + + 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 Implicante: Prodotto delle variabili (in forma naturale o negata) per le quali la funzione vale 1 Mintermine m j : implicante che contiene tutte le n variabili della funzione (e.g. ). Prima formacanonica (SoP) : Q F = m j, Q 2 j= 1 n Prima forma canonica (SoP) di F: la somma logica dei suoi mintermini L 3 24
Somma di Prodotti Regola di costruzione: considero i MINTERMINI (prodotti delle var. per cui: F = 1) MINTERMINI: prodotti di tutte le variabili, con le variabili NEGTE se nella tabella di verità sono 0, NTURLI se sono 1 Prima formacanonica (SoP) : 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 Q F = m j, Q 2 j= 1 n F = + + L 3 25 I forma canonica: dall espressione al circuito Sintesi del circuito: F = + + ircuito a due stadi: 1. Stadio ND: Q porte ND a n ingressi, una per ogni mintermine 2. Stadio OR: 1 porta OR a Q ingressi L 3 26
Esercizio: funzione maggioranza Funzione logica di 3 variabili è 3 ingressi, 1 uscita 1. ostruzione tabella di verità o espressione logica 2. Trasformazione a forma SOP 3. Eventuale semplificazione F (,,) = + + + F 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 F 1 1 0 1 1 1 1 1 ND OR L 3 27 Seconda forma canonica Seconda forma canonica di F(,,): v pproccio DULE rispetto alla I forma canonica: considero i casi in cui: F = 0 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 F = 0 se e solo se: =0 and =0 and =0 OR =0 and =0 and =1 OR =0 and =1 and =1 OR =1 and =0 and =0 OR =1 and =0 and =1 L 3 28
Funzione: espressione / tabella di verità F = 0 se e solo se: =0 and =0 and =0 OR =0 and =0 and =1 OR =0 and =1 and =1 OR =1 and =0 and =0 OR =1 and =0 and =1 F = 0 se e solo se: ( =1 and =1 and =1) or ( =1 and =1 and =1) or ( =1 and =1 and =1) or ( =1 and =1 and =1) or ( =1 and =1 and =1) F = 0 se e solo se: =1 or =1 or =1 or =1 or =1 F = 0 se e solo se: ( + + + + ) =1 F = + + + + L 3 29 Seconda Forma anonica: POS F = + + + + v Negando entrambi i membri ed applicando il II teorema di De Morgan si ottiene: F = F = ( + + ) ( + + ) ( + + ) ( + + ) ( + + ) In generale: W F = M i, W 2 N i=1 F = F = W i=1 M i II Forma anonica PoS (Product of Sums): Prodotto delle somme rappresentanti i MXtermini = (2 o Th. De Morgan) = M i = a b c M i = a + b + c MXtermine M i : somma logica di tutte le variabili della funzione: M i = 0 à F = 0 W i=1 M i L 3 30
Somma di Prodotti ostruzione della II forma canonica: v Prodotto dei maxtermini M i = 0 " F = 0, i = 1.. N 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 F = = ( + + ) ( + + ) ( + + ) ( + + ) ( ) + + MXtermine M i : somma logica di tutte le variabili della funzione: M i = 0 à F = 0 L 3 31 ircuito 2 a forma canonica: POS ircuito a due stadi: 1. Stadio OR: W porte OR a n ingressi, una per ogni MXtermine 2. Stadio ND: 1 porta ND a W ingressi F = ( + + ) ( + + ) ( + + ) ( + + ) ( + + ) L 3 32
Forme canoniche riepilogo RIEPILOGO: I Forma anonica v Mintermini m i : i 2 N prodotti di tutte le variabili di F. v Prendo i m i per i quali F(x,y,z)=1 e li metto in OR II Forma anonica v Maxtermini M i : le 2 N somme di tutte le variabili di F. v Prendo tutti i M i per i quai F(x,y,z)=0 e li metto in ND (da: Mano, Kime Reti logiche Pearson) L 3 33 ircuiti logici spetti implementativi Le porte logiche sono realizzate nella pratica sottoforma di dispositivi elettronici. Porte logiche reali operatori logici ideali v Velocità di commutazione Ø La transizione (0à1, 1à0) dell uscita di una porta logica, a causa di una modifica degli ingressi, non è istantanea. v Limiti di pilotaggio di ingressi Ø Un uscita può essere collegata ad un numero limitato di ingressi L 3 34
Velocità di un circuito Velocità di commutazione: ogni circuito logico è caratterizzato da un tempo di commutazione MMINO RITIO: massimo numero di porte da attraversare da un qualsiasi ingresso a una qualsiasi uscita Ø Non si contano gli inverter (inclusi nelle porte) D E D t P E t P 2t P t L 3 35 Implementazione con porte a 2 ingressi Spesso gli elementi costruttivi di base tipici sono porte a 2 ingressi Ø Porta a N ingressi N 1 porte a 2 ingressi Porta a N ingressi ammino ritico: N-1 Ottimizzazione del cammino critico: Porta a N ingressi ammino ritico: log 2 (N) L 3 36
ircuiti logici spetti implementativi riteri di valutazione delle prestazioni: Semplicità (area) Ø numero di porte in totale Velocità (tempo di commutazione) Ø numero di porte attraversate Soddisfazione di altri vincoli Ø potenza dissipata, Ø facilità di debug... causa del cammino critico, un circuito più semplice è spesso (ma non sempre!) anche più veloce. è SEMPLIFIZIONE di circuiti L 3 37 Esercizio: funzione maggioranza Funzione logica di 3 variabili è 3 ingressi, 1 uscita 1. ostruzione tabella di verità 2. Trasformazione a forma canonica (ad es. SOP) 3. Eventuale semplificazione F 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 F(,,) = + + + = = + + + + + = ( ) + ( + ) + ( + ) = = + = + + ND OR F L 3 38
Esempio di semplificazione algebrica F = + + = = + - raccolgo : ( ) + = - inverso : + =1 =1 + = - identità : (1 = ) = + - raccolgo : ( ) = + - II legge assorb.: ( + = + ) ( ) = + = + L 3 39 Riduzione a circuiti con porte a 2 ingressi O = x yzv + xyzv + xyzv + xyzv + xyzv + x yzv + xyzv + xyzv + xyzv ammino critico = 2, N. porte = 10 ammino critico = 11, N. porte = 35 L 3 40
Semplificazione v Semplificando la prima parte dell espressione logica... xyzv + xyzv = xyz v + v ( ) = xyz ammino critico = 2 N. porte = 9 ammino critico = 10 N. porte = 30 L 3 41 Ottimizzazione del cammino critico v ollegando le porte in modo ottimizzato, si riduce significativamente il cammino critico... ammino critico = 6 N. porte = 30 L 3 42
Semplificazione O = xyzv + xyzv + xyzv + xyzv + xyzv + xyzv + xyzv + xyzv + xyzv ( ) + xyzv + xyz( v + v) + xzv( y + y) + xyz( v + v) = ( ) + yz = x( zv + v( z + zy) ) + yz = ( ) + yz = ( ) + yz = = xzv y + y = x zv + zv + yzv = x zv + v( z + y) = x zv + vz + vy ( ) + yz = x ( v z) + vy ammino critico = 5 N. porte = 8 L 3 43 Semplificazione: mappe di Karnaugh Mappe di Karnaugh: tecnica di semplificazione di espressione (circuito) a partire dalla tabella di verità onsideriamo una funzione di 3 variabili Ø Rappresentazione cubica di funzioni logiche a 3 variabili: F = f(a,b,c) Ø Muovendosi sugli spigoli, la configurazione di variabili cambia di un solo bit Ø Distanza di HMMING: d(v1, v2) = n. di bit diversi tra le sequenze Esempio : F = + 011 111 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 rappres. cubica 010 110 001 101 000 100 L 3 44
Semplificazione: mappe di Karnaugh opertura: ricerca di tutti gli implicanti v v Se i vertici di un lato sono entrambi 1, essi insieme rappresentano un implicante L implicante è indipendente dalla variabile corrispondente al lato 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 indipendente da : 0 1 1 1 0 indipendente da : 0 0 0 L 3 45 Semplificazione: mappe di Karnaugh v Rappresentazione piana della funzione: Ø srotolo il cubo Ø codifica di Gray (codice riflesso) lungo ogni direzione indipendente da : indipendente da : 00 01 11 10 0 000 010 110 100 1 001 011 111 101 00 01 11 10 0 0 1 1 0 1 0 0 1 0 F = + L 3 46
Semplificazione: mappe di Karnaugh Per N>3 variabili, la rappresentazione diviene complessa... v Rappresentazione piana utilizzabile per: 2 N 4 odifica di Gray: config. adiacenti hanno d H =1 0 1 0 1 0 1 1 0 00 01 11 10 D 00 0 1 1 0 01 0 0 1 0 11 1 1 1 1 10 0 0 1 0 F = F = + D + D L 3 47 Semplificazione: mappe di Karnaugh v Mappa di Karnaugh: rappresentazione piana e ciclica 00 01 11 10 D 00 0 1 1 0 01 0 0 1 0 11 1 0 1 1 10 0 1 1 0 F = + D + D L 3 48
Uscite indifferenti di una funzione logica Situazione tipica in sintesi (progetto) di funzioni/circuiti logici: v Per alcune combinazioni degli ingressi, il valore assunto dall uscita è INDIFFERENTE Ø Simbolo: X v ome si risolve? Ø Si sceglie il caso che rende il circuito più semplice F 0 0 0 0 1 X 1 0 0 1 1 1 X=0 F= F X=1 F= F L 3 49 Esercizi Da un tema d esame: Si progetti un circuito caratterizzato da un ingresso a 4 bit rappresentante un numero binario intero senza segno, e un uscita che vale 1 se e solo se: (<4 ed è divisibile per 2) oppure (4 <8) oppure ( 8 ed è divisibile per 4). a) Determinare la tabella di verità della funzione logica di uscita; b) scrivere la funzione nella forma canonica più adatta; c) semplificarla mediante mappa di Karnaugh. Generatore di parità dispari su 3 bit: Si progetti un circuito caratterizzato da 3 ingressi (a,b,c) e da un uscita P tale che: P = 1 se e solo se il n. di 1 sugli ingressi è dispari a) Determinare la tabella di verità della funzione logica di uscita; b) semplificarla mediante mappa di Karnaugh; c) semplificarla ulteriormente, se possibile, mediante trasformazioni algebriche; d) disegnarne il corrispondente circuito digitale. L 3 50