Algebra e circuiti elettronici -...
Transcript of Algebra e circuiti elettronici -...
Algebra e circuiti elettronici• I computer operano con segnali elettrici con valori di
potenziale discreti • Sono considerati significativi soltanto due potenziali (high/
low); i potenziali intermedi, che si verificano durante le transizioni di potenziale, non vengono considerati
• L’aritmetica binaria è stata adottata proprio perché i bit sono rappresentabili naturalmente tramite elementi elettronici in cui siamo in grado di distinguere i 2 stati del potenziale elettrico (high/low)
Segnale binario
Algebra e circuiti elettronici
Il funzionamento dei circuiti elettronici può essere modellato tramite l’Algebra di Boole • solo 2 valori:
• valore logico True (1 o asserted) → livello di potenziale alto
• valore logico Falso (0 o deasserted) → livello di potenziale basso
• operazioni logiche Booleane: somma (OR), prodotto (AND) e inversione (NOT) logica • OR (A+B): risultato uguale ad 1 (true) se almeno un input è 1 (true) • AND (A∙B): risultato uguale ad 1 (true) solo se tutti gli input sono 1 (true) • NOT (~A): risultato uguale all’inverso dell’input (0 → 1 oppure 1 → 0)
Blocco logico• circuito elettronico con linee (fili) in input e output • possiamo associare variabili logiche con le varie linee in input/output
• i valori che le variabili possono assumere sono quelli dell’Algebra di Boole
blocco logicoI0
I1
O0
O1
• il circuito calcola una o più funzioni logiche, ciascuna esprimibile tramite una combinazione di operazioni dell’Algebra di Boole sulle variabili in input
• Circuito combinatorio • senza elementi di memoria - produce output che dipende funzionalmente solo
dall’input • Circuito sequenziale
• con elementi di memoria - produce output che dipende non solo dall’input ma anche dallo stato della memoria
Tabelle di verità• Una funzione logica è completamente specificata tramite
la sua tabella di verità • Dati n input bit, il numero di configurazioni possibili degli
input, ovvero il numero di righe della tabella di verità, è 2n • per ogni bit in output, la tabella contiene una colonna,
con un valore definito per ognuna delle combinazioni dei bit in input
A B C D E 0 0 0 1 0 0 0 1 0 1 0 1 0 1 0 0 1 1 0 0 1 0 0 0 0
0 1 0 0 1 1 0 1 1 1 1 1 0 0
1
Equazioni logiche• Una funzione logica completamente specificata tramite una equazione logica
dell’algebra di Boole • Esempio: E = ~A~BC + AB~C
• bit in input e output rappresentati tramite variabili logiche (con valori 0 o 1) • input combinati tramite le operazioni di somma (OR), prodotto (AND) e
complementazione (NOT) logica dell’algebra di Boole • Proprietà
• Identità: A+0=A A∙1=A • Nullo: A+1=1 A∙0=0 • Idempotente: A+A=A A∙A=A • Inverso: A+(~A)=1 A∙(~A)=0 • Commutativa: A+B=B+A A∙B=B∙A • Associativa: A+(B+C)=(A+B)+C A∙(B∙C)=(A∙B)∙C • Distributiva: A∙(B+C)=(A∙B)+(A∙C) A+(B∙C)=(A+B)∙(A+C) • DeMorgan: ~(A+B)=(~A)∙(~B) ~(A∙B)=(~A)+(~B)
Funzioni e tabelle AND, OR, NOT• OR (A+B): risultato uguale ad 1 (true) se almeno un
input è 1 (true) • AND (A∙B): risultato uguale ad 1 (true) solo se tutti gli
input sono 1 (true) • NOT (~A): risultato uguale all’inverso dell’input (0→1
oppure 1→0)
Circuti AND, OR, NOTPorte logiche • AND
• OR
• NOT
AB C
EEsempio • E = ~((AB) + (~BC))
NAND e NORNAND (AND con uscita negata): ~(A∙B)
NOR (OR con uscita negata): ~(A+B)
Si può dimostrare che le operazioni NAND o NOR (e le corrispondenti porte) sono sufficienti per implementare qualsiasi funzione logica
Sintesi di circuiti combinatori• Ogni funzione logica può essere rappresentata come
equazione logica o come tabella di verità • Data una tabella di verità o una equazione logica, come si
sintetizza il circuito combinatorio che la implementa? • Ogni equazione logica può essere scritta in forma canonica
tramite l’uso degli operatori AND, OR e NOT • Forma canonica SP (somma di prodotti)
• Primo livello AND, secondo livello OR • Forma canonica PS (prodotto di somme)
• Primo livello OR, secondo livello AND • Esistono tecniche per minimizzare il numero di porte:
• Mappe di Karnaugh • Algoritmo di Quine – McCluskey
EsercizioDati tre ingressi A, B, C realizzare un circuito che fornisca in uscita tre segnali:
• D è vera se almeno uno degli ingressi è vero • E è vera se esattamente due input sono veri • F è vera se tutti e tre gli input sono veri
Intuitivamente le equazioni sono: • D = A + B + C • F = ABC • E = ( AB + BC + AC) · ∼(ABC)
EsercizioDati tre ingressi A, B, C realizzare un circuito che fornisca in uscita tre segnali:
• D è vera se almeno uno degli ingressi è vero • E è vera se esattamente due input sono veri • F è vera se tutti e tre gli input sono veri
A B C D E F0 0 0 0 0 00 0 1 1 0 00 1 0 1 0 00 1 1 1 1 01 0 0 1 0 01 0 1 1 1 01 1 0 1 1 01 1 1 1 0 1
EsercizioDati tre ingressi A, B, C realizzare un circuito che fornisca in uscita tre segnali:
• D è vera se almeno uno degli ingressi è vero • E è vera se esattamente due input sono veri • F è vera se tutti e tre gli input sono veri
A B C D E F0 0 0 0 0 00 0 1 1 0 00 1 0 1 0 00 1 1 1 1 01 0 0 1 0 01 0 1 1 1 01 1 0 1 1 01 1 1 1 0 1
Prodotto di somme D = (A + B + C)
EsercizioDati tre ingressi A, B, C realizzare un circuito che fornisca in uscita tre segnali:
• D è vera se almeno uno degli ingressi è vero • E è vera se esattamente due input sono veri • F è vera se tutti e tre gli input sono veri
A B C D E F0 0 0 0 0 00 0 1 1 0 00 1 0 1 0 00 1 1 1 1 01 0 0 1 0 01 0 1 1 1 01 1 0 1 1 01 1 1 1 0 1
Prodotto di somme E = (A+B+C) (A+B+∼C) (A+∼B+C) (∼A+B+C) (∼A+∼B+∼C)
EsercizioDati tre ingressi A, B, C realizzare un circuito che fornisca in uscita tre segnali:
• D è vera se almeno uno degli ingressi è vero • E è vera se esattamente due input sono veri • F è vera se tutti e tre gli input sono veri
A B C D E F0 0 0 0 0 00 0 1 1 0 00 1 0 1 0 00 1 1 1 1 01 0 0 1 0 01 0 1 1 1 01 1 0 1 1 01 1 1 1 0 1
Prodotto di somme F = (A+B+C) (A+B+∼C) (A+∼B+C) (A+∼B+∼C)(∼A+B+C) (∼A+B+∼C)(∼A+∼B+C)
EsercizioDati tre ingressi A, B, C realizzare un circuito che fornisca in uscita tre segnali:
• D è vera se almeno uno degli ingressi è vero • E è vera se esattamente due input sono veri • F è vera se tutti e tre gli input sono veri
A B C D E F0 0 0 0 0 00 0 1 1 0 00 1 0 1 0 00 1 1 1 1 01 0 0 1 0 01 0 1 1 1 01 1 0 1 1 01 1 1 1 0 1
Somma di prodotti D = (∼A∼BC)+(∼AB∼C)+(∼ABC)+ (A∼B∼C)+(A∼BC)+(AB∼C)+(ABC)
E = (∼ABC)+(A∼BC)+(AB∼C)
F = ABC
EsercizioE = (∼ABC)+(A∼BC)+(AB∼C)
AB C
E
PLA• La rappresentazione SP corrisponde a una comune
implementazione chiamata Array a Logica Programmabile • Ha 2 livelli di logica
• un array di porte AND (input → termini prodotto) • un array di porte OR (termini prodotto → output)
• Esempio:
Decoder• Circuito combinatorio con n input e 2n output • Traduce gli n bit di input nell’equivalente valore binario, e
abilita a 1 l’uscita corrispondente, mentre le altre uscite sono disabilitate a 0
• Esiste anche l’encoder, che esegue l’operazione inversa • Esempio di un decoder a 3 bit:
Multiplexer• Due insiemi di input
• n input dati • ⎡log2 n⎤input selettori
• L’output corrisponde al valore del dato di input selezionato dai valori dei selettori di input
Multiplexer 2 a 1 (a 1 bit) e sua implementazione
Multiplexer 2 a 1 (a 32 bit) e sua implementazione