presentazione 2.1 circuiti digitali combinatori...presentazione 2.1 la negazione: not • ha un...
TRANSCRIPT
Circuiti digitali combinatori
Presentazione 2.1
Informatica Generale (Prof. Luca A. Ludovico)
Definizioni
Parte 1
Informatica Generale (Prof. Luca A. Ludovico)
Informatica Generale (Prof. Luca A. Ludovico)Presentazione 2.1
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.
Informatica Generale (Prof. Luca A. Ludovico)Presentazione 2.1
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.
Informatica Generale (Prof. Luca A. Ludovico)Presentazione 2.1
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
Informatica Generale (Prof. Luca A. Ludovico)Presentazione 2.1
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”.
Informatica Generale (Prof. Luca A. Ludovico)Presentazione 2.1
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
Informatica Generale (Prof. Luca A. Ludovico)Presentazione 2.1
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
Informatica Generale (Prof. Luca A. Ludovico)Presentazione 2.1
Equazioni logiche
• Ogni funzione logica può essere rappresentata tramite equazione logica.
• Confronto con l’algebra “tradizionale”: y = f(x1, …, xn)
• 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 y = a OR b OR cL’operatore binario OR verrà spiegato più avanti
Informatica Generale (Prof. Luca A. Ludovico)Presentazione 2.1
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
Informatica Generale (Prof. Luca A. Ludovico)Presentazione 2.1
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.
• Forma tabellare
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
Ingressi Uscita
Informatica Generale (Prof. Luca A. Ludovico)Presentazione 2.1
Tabelle della verità
• Come creare tutte le combinazioni di ingressi?
• Per n variabili in ingresso, la tabella ha 2n righe
• Per n variabili in ingresso e m uscite, la tabella ha (minimo) n + m colonne
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
Ingressi Uscita
Porte logiche
Parte 2
Informatica Generale (Prof. Luca A. Ludovico)
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
Informatica Generale (Prof. Luca A. Ludovico)Presentazione 2.1
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 “
Informatica Generale (Prof. Luca A. Ludovico)Presentazione 2.1
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
Informatica Generale (Prof. Luca A. Ludovico)Presentazione 2.1
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)
• Altra notazione: a • b oppure ab
a b a AND b
0 0 0
0 1 0
1 0 0
1 1 1
Informatica Generale (Prof. Luca A. Ludovico)Presentazione 2.1
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
Informatica Generale (Prof. Luca A. Ludovico)Presentazione 2.1
Precedenza tra operatori
• Regole di precedenza1. NOT (massima priorità)2. AND3. 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?
Informatica Generale (Prof. Luca A. Ludovico)Presentazione 2.1
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
Informatica Generale (Prof. Luca A. Ludovico)Presentazione 2.1
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
Informatica Generale (Prof. Luca A. Ludovico)Presentazione 2.1
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
Informatica Generale (Prof. Luca A. Ludovico)Presentazione 2.1
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.
Informatica Generale (Prof. Luca A. Ludovico)Presentazione 2.1
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
Informatica Generale (Prof. Luca A. Ludovico)Presentazione 2.1
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
Studio delle equazioni logiche Studio delle retiEsercitazioni
Parte 3
Informatica Generale (Prof. Luca A. Ludovico)
Informatica Generale (Prof. Luca A. Ludovico)Presentazione 2.1
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
Informatica Generale (Prof. Luca A. Ludovico)Presentazione 2.1
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
Informatica Generale (Prof. Luca A. Ludovico)Presentazione 2.1
Come ricavare l’equazione logica dalla rete
• Si procede a ritroso, dalle uscite verso gli ingressi
u = (i1 i2) + (i0 i2)
Informatica Generale (Prof. Luca A. Ludovico)Presentazione 2.1
Come ricavare l’equazione logica dalla rete
• Esercizio
Informatica Generale (Prof. Luca A. Ludovico)Presentazione 2.1
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à)