Circuiti digitali combinatori
Parte 1 Definizioni
George Boole George Boole (Lincoln, 2 novembre 1815 Ballintemple, 8 dicembre 1864) Matematico e logico britannico Considerato il fondatore della logica matematica La sua opera maggiore è la base per gli studi sui circuiti elettronici e sulla commutazione e ha costituito un passo importante verso la concezione dei moderni computer.
Algebra di commutazione L algebra di commutazione fa parte dell algebra di Boole. Caratteristica: limitazione sui valori che possono assumere le variabili, che sono solo due e convenzionalmente indicati come 0 e 1. corrispondenza con la rappresentazione binaria dei bit negli elaboratori Le variabili sono dette variabili di commutazione o variabili logiche.
Variabili logiche e loro valori L algebra di commutazione si basa su valori antitetici. Denominazioni convenzionali Informatica: 0 vs 1 Logica: TRUE/VERO (T/V) vs FALSE/FALSO (F) Elettronica: ON vs OFF Astrazione dalla rappresentazione fisica di tali valori. Definizione del valore di una variabile logica x: x = 0 se e solo se x 1 negazione x = 1 se e solo se x 0 o complemento
Variabili logiche e proposizioni Una variabile logica può essere vista come una proposizione avente un proprio valore di verità. La negazione di una proposizione vera è falsa, e la negazione di una proposizione falsa è vera. Esempio: si indichi dapprima con x la proposizione Il gatto è un libro, se ne valuti la verità e la si neghi. In un secondo momento, si ripeta l esperimento con la proposizione x = Il gatto è un animale.
Circuiti e reti logiche I dispositivi elettronici nei calcolatori odierni sono digitali. Caratterizzazione di un dispositivo: Funzionalità da realizzare, funzioni logiche > circuito Struttura che realizza tale funzionalità > rete logica Circuiti combinatori: dispositivi digitali privi di memoria; l uscita dipende solo dal valore degli ingressi Circuiti sequenziali: con memoria; l uscita dipende dal valore degli ingressi e dallo stato
Circuiti combinatori Le uscite a un dato istante (in linea teorica) dipendono solo dal valore degli ingressi a quel dato istante. In pratica, nella realtà fisica ci sono ritardi di trasmissione. Un circuito combinatorio si compone di una combinazione di funzioni logiche (dispositivi) elementari, rappresentabili tramite: Equazione logica Tabella di verità Simbolo
Equazioni logiche Ogni funzione logica può essere rappresentata tramite equazione logica. Confronto con l algebra tradizionale : y = f(x 1,, x n ) Membro sinistro: nome del segnale in uscita dalla funzione Membro destro: espressione booleana data da combinazione di variabili logiche (corrispondenti ai nomi dei segnali in ingresso) ed operatori logici Esempio: y = a + b + c L operatore binario OR verrà spiegato più avanti y = a OR b OR c
Valori in ingresso e uscita Astrazione di tipo black box Variabili in ingresso sono in numero finito e limitato possono assumere in un dato istante solo uno di due valori Le funzioni possono essere descritte esaustivamente indicando il valore di uscita in relazione al valore delle variabili logiche in ingresso
Tabelle delle verità Come specificare in modo completo il funzionamento di un circuito digitale combinatorio? Elencando il valore che le uscite assumono in corrispondenza di ogni possibile valore applicato agli ingressi. Ingressi Uscita a b c y 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 Forma tabellare
Tabelle della verità Come creare tutte le combinazioni di ingressi? Per n variabili in ingresso, la tabella ha 2 n righe Per n variabili in ingresso e m uscite, la tabella ha (minimo) n + m colonne Ingressi Uscita a b c y 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
Parte 2 Porte logiche
Porte logiche o gate Sono gli elementi di base per realizzare le operazioni logiche elementari a livello digitale. Le porte logiche fondamentali sono rappresentate graficamente da un simbolo circuitale standard e il loro comportamento è descritto da specifiche tabelle di verità. Una rete logica si definisce come una combinazione opportuna di porte logiche. Piè di pagina: spazio libero per eventuale nome struttura o altro
Operatori booleani fondamentali Ogni operatore si applica a uno o più operandi, che sono posti rispettivamente alla destra e alla sinistra dell operatore. Esempio con operatori aritmetici: 5 + 3 NOT Operatore unario (si applica a un solo operando: NOT x) AND Operatore binario (due operandi: x AND y) OR XOR NAND NOR XNOR
La negazione: NOT Ha un unico ingresso (operatore logico unario) oppure su linea in ingresso Produce in uscita il valore logico opposto del valore d ingresso (negazione o complemento) Altra notazione nelle equazioni logiche: a a NOT a 0 1 1 0
Il prodotto logico o congiunzione: AND Operatore logico binario Produce in uscita il valore logico 1 se e solo se i valori in ingresso sono tutti 1 (prodotto logico) a b aand b 0 0 0 0 1 0 1 0 0 1 1 1 Altra notazione: a b oppure ab
La somma logica o disgiunzione: OR Operatore logico binario Produce in uscita il valore logico 1 se almeno uno dei valori in ingresso è 1 (somma logica) Altra notazione: a + b a b a OR b 0 0 0 0 1 1 1 0 1 1 1 1
Precedenza tra operatori Regole di precedenza 1. NOT (massima priorità) 2. AND 3. OR (minima priorità) Come forzare la precedenza? Usando parentesi tonde Esempi: z = NOT a AND b OR c si può scrivere parentetizzato come z = ((NOT a) AND b) OR c z = a OR b AND NOT c si può scrivere parentetizzato come z = a OR (b AND (NOT c)) Esercizio: quali parentesi si possono togliere?
Proprietà fondamentali AND OR Identità 1 x = x 0 + x = x Elemento nullo 0 x = 0 1 + x = 1 Idempotenza x x = x x + x = x Inverso x x = 0 x + x = 1 Commutativa x y = y x x + y = y + x Associativa (x y) z = x (y z) (x + y) + z = x + (y + z) Assorbimento x (x + y) = x x + x y = x Distributiva x (y + z) = x y + x z x + y z = (x + y) (x + z) De Morgan x y = x + y x + y = x y
NAND Operatore logico binario La tavola di verità è quella dell operatore AND negata a NAND b = NOT (a AND b) Attenzione: diverso da NOT a AND b a b a NAND b 0 0 1 0 1 1 1 0 1 1 1 0
NOR Operatore logico binario La tavola di verità è quella dell operatore OR negata a NOR b = NOT (a OR b) a b a NOR b 0 0 1 0 1 0 1 0 0 1 1 0
Operatori funzionalmente completi I teoremi di De Morgan (vedi sopra) permettono di usare solo porte NOT ed AND, o solo porte NOT ed OR. Gli operatori NAND e NOR sono funzionalmente completi: con soli NAND (o soli NOR) si può realizzare qualsiasi funzione logica. Infatti, combinando opportunamente porte logiche NAND (o NOR) si possono ottenere le funzioni di AND, OR e NOT.
La disuguaglianza: XOR (exclusive OR) Operatore logico binario Produce in uscita il valore logico 1 se i due valori in ingresso sono differenti (disuguaglianza) Altra notazione: a b a b a XOR b 0 0 0 0 1 1 1 0 1 1 1 0
L uguaglianza: XNOR Operatore logico binario Produce in uscita il valore logico 1 se i due valori in ingresso sono uguali (uguaglianza) Altra notazione: a b a b a XNOR b 0 0 1 0 1 0 1 0 0 1 1 1
Parte 3 Studio delle equazioni logiche Studio delle reti Esercitazioni
Come ricavare la rete dall equazione logica 1. Identificare le variabili di ingresso, nella forma naturale e complementata 2. Realizzare i termini per le combinazioni di ingresso mediante porte logiche fondamentali (livello 1), partendo dagli operatori a priorità più alta 3. Combinare le uscite delle porte logiche di livello 1 con altre porte logiche (livello 2, livello 3, ), come richiesto dall equazione logica, fino a creare l uscita finale
Come ricavare la rete dall equazione logica Esempi z = a b + c = a AND b OR c = (a AND b) OR c z = a b + a c = = ((NOT a) AND b) OR (NOT(a AND c)) z = a b c + b c + a
Come ricavare l equazione logica dalla rete Si procede a ritroso, dalle uscite verso gli ingressi u = (i1 i2) + (i0 i2)
Come ricavare l equazione logica dalla rete Esercizio
Esercitazioni Modelli di esercizio 1. Partendo dall equazione logica, ricavare la rete e studiarne il comportamento tramite tabella della verità 2. Partendo dalla rete, scriverne la corrispettiva equazione logica e studiarne il comportamento tramite tabella della verità 3. Provare a risolvere circuiti con più uscite (e quindi più equazioni logiche e tabelle di verità)