reti logiche (1) - home page | dei · 1 1 reti logiche (1) algebra booleana e circuiti combinatori...
TRANSCRIPT
1
1
Reti logiche (1)Algebra booleana e circuiti combinatori
2
Un quadro della situazione
In particolare gli argomenti qui trattati interessanoALU (Unità Aritmetico Logica) e CPUElementi di memoria e progetto delle gerarchie di memorie
2
3
Piano delle lezioniAlgebra booleana e porte logiche
Postulati e proprietà, operatori, tabelle di verità …Porte, insiemi di operatori funzionalmente completi, …
Logica combinatoria e sequenzialeCircuiti combinatori fondamentali, principi di progettazione,…Temporizzazione, elementi di memoria, register file, RAM, …
Introduzione a gerarchia di memorieCostruzione di una unità aritmetico-logicaLa CPU: Datapath, unità di elaborazione e unità di controllo
Patterson e HennessyAppendice B - Reti logicheCapitolo 7 – Gerarchie di memorieCapitolo 3 – Unità aritmetico-logicaCapitolo 5 – La CPU
4
Organizzazione della lezioneAlgebra di Boole
Tabelle di veritàpostulati ed identità
Logica digitaleOperatori e porte logicheInsiemi di operatori funzionalmente completi
Circuiti combinatoriDecodificatori e MultiplexerForme canoniche: “somma di prodotti”, “prodotto di somme”PLA: Array a Logica ProgrammabileROM: Read Only Memory
Minimizzazione, semplificazione, e condizioni di indifferenzaPatterson e Hennessy, sezioni B.1, B.2, B.3Tanenbaum, complementi
3
5
Logica digitaleI componenti elettronici nei calcolatori odierni sono digitaliLa logica digitale lavora con due livelli di tensioneTutti gli altri valori di tensione sono temporanei e compaiono solo come transizioni tra due valori principaliDal punto di vista logico si parla di segnali
Veri (TRUE), o affermati, pari a 1Falsi (FALSE), o negati, pari a 0
Il valore 0 è il complemento o l’inverso del valore 1, e viceversa
Tipicamente (logica positiva) un segnale tra 0 e 1 volt rappresenta uno 0 binario e un segnale tra 2 e 5 volt rappresenta un 1 binario
Applicato il valore di inputil valore di output appare dopo il tempo di propagazione
6
Circuiti combinatoriCircuito combinatorio
L’output in ogni istante è funzione solo dell’input, non degli input precedenti o da stato interno (circuito senza memoria)in generale n input e m output
Può essere specificato da:tavola di verità: per ognuno delle 2n possibili combinazioniin input viene specificato il valore degli m outputespressioni booleane: ogni segnale di output viene espressocome una funzione booleana dei suoi segnali di outputsimboli grafici: struttura di interconnessione
Analisi:dato un circuito comprendere le funzioni realizzate
Progettazione:data una funzione sviluppare circuito (minimo?) che la realizza
4
7
Tabelle di veritàOgni riga della tabella di verità specifica il valore di tutte le uscite in corrispondenza di una combinazione di ingressiCon n ingressi la tabella di verità contiene 2n righe => la dimensione cresce velocemente con il numero di ingressi!
EsempioFunzione logica a 3 ingressi
A, B, C e 3 uscite D, E, FD è vero se almeno uno degli
ingressi è veroE è vero se esattamente due
ingressi sono veriF è vero se tutti e tre gli
ingressi sono veri23=8 righe
8
Algebra di Boole George Boole: matematico inglese (1815-1864)
Algebra di Boole definita da un insieme di:
costanti: TRUE e FALSE (rappresentati da 1 e 0)
variabili (con valore TRUE o FALSE): A, B, C,…
operatori:
AND (simbolo ·), operatore binario
OR (simbolo +), operatore binario
NOT (simbolo ¯), operatore unario
Claude Shannon (1938)
ha dimostrato la utilità della algebra di Boole per progettazione ed
analisi di circuiti logici
5
9
Postulati ed identità (1)Postulati:
regole di base (non dimostrate)
10
Postulati ed identità (2)Identità:
possono essere derivate dai postulati
Proprietà diassorbimento
Proprietà diidempotenza
6
11
Legge di De MorganSi può derivare calcolando la tabella di verità per i due membridell’identità
12
EsempioFunzione logica con tre ingressi A, B, C e tre uscite D, E, F
D è vero se almeno uno degli ingressi è vero
F è vero se tutti e tre gli ingressi sono veri
E è vero se esattamente due ingressi sono veri
CBAD ++=
CBAF ⋅⋅=
)CBA(C))(BC)(AB)((AE ⋅⋅⋅⋅+⋅+⋅=)AC(B)BC(A)CB(AE ⋅⋅+⋅⋅+⋅⋅=
Esercizio (B.7): dimostrare l’equivalenza
7
13
Un insieme di operatori è funzionalmente completose realizza tutte le funzioni realizzabili con AND, OR, NOT
Determinare un insieme funzionalmente completo più piccolopermette un processo produttivo più semplice
Un operatore si dice universaleSe da solo rappresenta un insieme completo di operatori
AND e NOT sono insieme di operatori funzionalmente completoDalla legge di De Morgan: Complementiamo ambo i membri:Vale l’identità:
Allora:
Insiemi di operatorifunzionalmente completi
BABA ⋅=+BABA ⋅=+
AA =
BABA ⋅=+
14
NOTNotazione:Tabella di verità:
Porta logica:
Porte logicheAND
Notazione: C=A·BTabella di verità:
Porta logica:
ORNotazione: C=A+BTabella di verità:
Porta logica:
AB =
8
15
NOT: rappresentazioni alternativeSi possono disegnare esplicitamente gli invertitori
Più spesso si aggiunge un pallino in corrispondenza di un
ingresso o di una uscita
Esempio: la funzione BAC +=
16
XORNotazione:Tabella di verità:
Porta logica:
Altre porte logicheNAND
Notazione:Tabella di verità:
Porta logica:
NORNotazione:Tabella di verità:
Porta logica:
BAC ⋅= BAC += BAC ⊕=
9
17
Implementazione di XOR
Due porte AND e una porta OR
Tre porte NAND
Esercizio: dimostrare l’equivalenzaricavando le tabelle di verità dei due circuiti
18
Livello fisico: InvertitoreIl transistor bipolare
Si chiude (resistenza infinita)
quando l’input Vin è sotto un
valore critico
Si apre (filo) quando Vin è
sopra il valore critico
10
19
Livello fisico: NOR e NANDNOR: due transistor in parallelo
NAND: due transistor in serie
20
Progettazione di circuitiOgni funzione booleana può essere realizzata da unarete di porte logiche (con diverse alternative)Passi da seguire:
Scrivere la tavola di verità della funzione da realizzareDalla tavola di verità arrivare alla espressione booleanaDall’espressione booleana progettare la rete
Espressioni booleane utilizzate:La forma come “somma di prodotti”La forma come “prodotti di somme”
Obiettivi della progettazioneEconomicità: realizzare circuiti che calcolino la stessa funzione con meno porte logiche (minimizzazione di circuiti)Semplicità costruttiva : utilizzare il minor numero di porte diverse nel circuito (standardizzazione del processo produttivo)
11
21
Evoluzione della produzione (1)In passato, su ogni circuito integrato andavano poche porte
Chip SSI (Small Scale Integrated)Tipicamente contenenti da 2 a 6 porte indipendentiIn più alimentazione Vcc e messa a terra GNDLa realizzazione di circuiti utilizzava questi circuiti “base”
22
Evoluzione della produzione (2)Adesso il processo di produzione permette la realizzazione di moltissime porte su un singolo circuito
Chip VLSI (Very Large Scale Integrated): più di 100.000 porteAnche 107 transistor su un singolo chipCi starebbero 5•106 porte NANDCi vorrebbero 1.5•107 + 2 piediniSarebbe un chip lungo alcuni chilometri
Ci vogliono chip general-purpose con elevato rapporto porte/piedini
12
23
DecodificatoreCircuito combinatorio con n input e 2n output:
una sola delle linee di output viene messa a TRUEin dipendenza dal valore binario presente in inputLa linea messa a TRUE corrisponde al valore binario associato al vettore degli ingressi
24
Tabella di verità di un decodificatore
Allora:Eccetera
CBAD0 ⋅⋅= CBAD1 ⋅⋅=
13
25
Implementazione di un decodificatore
26
MultiplexerCircuito combinatorio con n input di dato, 1 output e log2n input di controllo:
Permette di selezionare (tramite linee di controllo) quale delle linee di input deve andare in output
Esempio: un multiplexer a 2 vieA seconda dei valori della linea di controllo (S) una delle linee dati (A,B) viene data in output su CÈ necessario un codice di selezione della linea dati (tipicamente il valore binario dell’indice della linea dati)
14
27
Implementazione di un multiplexer a 2 vie
S)(B)S(AC ⋅+⋅=
Scriviamo le tre rappresentazioni (tabella di verità, espressione booleana, porte logiche)
28
Multiplexer a n viePer selezionare n segnali in ingresso sono necessari log2 nsegnali di controllo Si
Analogamente al Mux 2 vie (implementazione a due livelli): Primo livello di porte AND tra gli ingressi e i controlliSecondo livello con una porta OR a n vie che combina le uscite da tutti gli AND.
Per ogni possibile combinazione degli Si solo un AND riceverà 1in inputil valore in uscita dell’AND sarà quello della linea dati corrispondente, tutti gli altri AND ricevono almeno uno 0L’OR finale avrà il valore della unica porta AND con 1in input
Applicazione: convertitore parallelo/serialeGli 8 bit vanno su 8 ingressi, controlli ciclati tra 000 e 111
15
29
Implementazione di un multiplexer a n viePer n=8 segnali in ingresso sono necessari log2 8 = 3segnali di controllo Si
Dato il valore binario dell’indice della linea dati, il decodificatore produce 1 sul corrispondente AND, tutti gli altri AND ricevono 0Il valore in uscita dell’AND sarà quello della linea dati corrispondenteL’OR finale avrà il valore della unica porta AND “aperta”
30
Matrici di elementi logiciMolte operazioni combinatorie realizzate su dati devono elaborare parole (32 bit).Si costruisce una matrice di elementi logici: una data operazione è applicata ad un intero insieme di ingressi (bus)Esempio: un multiplexer a 2 vie e ampiezza 32 bit è in realtà una matrice di 32 multiplexer a 2 vie e ampiezza 1 bit
16
31
Forma canonica “Somma di prodotti” (SDP)Sia data la tabella di verità.Si può ricavare una espressione booleana elencando le combinazioni dei valori di A,Be C per cui il valore di F è 1Forma “somma di prodotti”
Si elencano (in AND) le occorrenze delle variabili in input che danno F=1Questi vengono talvolta detti minterm o minterminiSi uniscono i minterm in un OR
Risultato:
CABBCACBAF ++=
32
Esempio
E è vero se esattamente due
ingressi sono veri
)CBA(C))(BC)(AB)((AE ⋅⋅⋅⋅+⋅+⋅=)AC(B)BC(A)CB(AE ⋅⋅+⋅⋅+⋅⋅=
La seconda espressione è una somma di prodotti
17
33
Forma canonica “Prodotto di somme” (PDS)Si può ricavare una espressione booleana elencando le combinazioni dei valori diA,B, e C per cui il valore di F è 0Forma “prodotto di somme”
L’idea: basta la occorrenza di uno diquesti input per rendere F=0si elencano (in OR) le occorrenze delle variabili in input che danno F=0Le variabili vanno complementatele si unisce in un AND
Risultato:
)CBA()CBA(C)BA(
)CB(AC)B(AF
++⋅++⋅++
⋅++⋅++=
34
Alcuni commentiIn generale la forma SDP è più usata della forma PDSIl multiplexer di prima è stato rappresentato in forma SDPUn criterio per scegliere se rappresentare una tabella di veritàfunzione) come somma di prodotti oppure come prodotto di somme dipende dal numero di zeri ed uni della funzione
Se ci sono meno uni: somma di prodottiSe ci sono meno zeri: prodotto di somme
E’ possibile avere forme più compatte delle forme SDP o PDSMinimizzazione: implementazione di una funzione logica usando un numero più piccolo di porte
Ci sono anche altri criteri da tenere presenteSemplificazione: implementazione di una funzione logica usando una sola porta (NAND o NOR)
18
35
Programmable Logic Array (PLA)Approccio generale all’implementazione di funzioni logiche sfruttando la rappresentazione a due livelli SDP
Ogni input del chip disponibile in forma vera e complementataPrimo livello
Ogni input può essere collegato a qualsiasi porta ANDSecondo livello
L’output di qualsiasi porta AND è collegabile a qualsiasi porta OR
Realizzazione di un circuito ad hocdurante la fabbricazione del chipfusibili (che possono essere bruciati) su “intersezioni” di linea
36
PLA: rappresentazione e implementazione
PLA con 12 input, 50 prodotti, 6 somme
19
37
Esempio (il solito)Funzione logica con tre ingressi A, B, C e tre uscite D, E, FD è vero se almeno uno degli ingressi è veroF è vero se tutti e tre gli ingressi sono veriE è vero se esattamente due ingressi sono veri
38
Read Only Memory (ROM)Altro approccio generale all’implementazione di funzioni logicheI circuiti combinatori sono “senza memoria”
l’output dipende esclusivamente dagli input applicatiUna Memoria a sola lettura (Read Only Memory)
memoria immagazzinata permanentementedato un input (indirizzo della ROM) l’output è sempre lo stesso (dato corrispondente all’indirizzo)
Per progettare una ROM serve tavola di verità che, per ogni indirizzo (input) definisce valore di output (parola memorizzata nella ROM)Altezza: numero di elementi indirizzabili
Con n ingressi l’altezza è 2n
Ampiezza: numero di bit di ogni elemento indirizzabileCon m uscite l’ampiezza è m
Queste due dimensioni definiscono la forma di una ROM
20
39
Progettazione di una ROM
40
Commenti su PLA e ROMNella sintesi con ROM sono fisicamente rappresentati tutti i 2n
termini prodotto che si possono costruire con n variabili di ingressoNella sintesi con PLA intervengono solo i termini prodotto che che sono effettivamente presenti nella espressione della funzione darealizzareIn altre parole
I dispositivi ROM sono completamente decodificatiI dispositivi PLA sono parzialmente decodificati
I dispositivi PLA sono più efficientiI dispositivi ROM sono meno efficienti (la dimensione cresce esponenzialmente con il numero di ingressi), ma di contenuto piùfacilmente modificabile
21
41
Minimizzazione algebricaEspressione in forma SDP che abbiamo trovato per l’esempio:
Dalle proprietà dell’algebra di Boole segue
Dalla proprietà distributiva (e commutativa):
Allora
CABBCACBAF ++=
)A(ACB)C(CBAF +⋅++⋅=
CABBCACBACBAF +++=
)CAB(CBBAF +=+=
42
Semplificazione (NAND) algebricaData la espressione:
vogliamo trovare una espressione equivalente composta solo da operatori NANDApplichiamo due volte la complementazione:
Applichiamo la legge di De Morgan:
CBBA)CAB(F +=+=
CBBAF +=
CBBAF ⋅=
22
43
Condizioni di indifferenza (don’t care)In fase di implementazione nascono spesso situazioni in cui è indifferente il valore di qualche uscita
qualche altra uscita ha assunto un valore particolareviene usato un sottoinsieme delle combinazioni di ingresso
Indifferenza in uscita (output don’t care)Uscita indifferente per un dato ingressoSi indica con una X nella casella corrispondenteIl progettista può scegliere il valore
Indifferenza in ingresso (input don’t care)L’uscita dipende solo da alcuni ingressiSi indica con una X nella casella corrispondente
Importanti applicazioni in tecniche di minimizzazione di circuitiKarnaugh …QuineMacCluskey …
44
EsempioFunzione logica con tre ingressi A,B,C, e tre uscite D,E,F, così definita:Se A o C sono veri allora D è vero, indipendentemente da BSe A o B sono veri allora E è vero, indipendentemente da CF è vero se esattamente un ingresso è vero, ma non interessa il valore di F se sia D che E sono veri
Indifferenza in uscita
23
45
Esempio (continua)
Indifferenza in ingresso
46
Parole chiaveAlgebra booleana Circuiti combinatoriTabelle di veritàLeggi di De MorganOperatori e porte logiche: AND, OR, NOT, NAND, NOR, XORInsiemi di operatori funzionalmente completi e Porte universaliDecodificatore e MultiplexerLogica a due livelli: Somma di prodotti e prodotto di sommePLA – Programmable Logic ArrayROM – Read only memoryMinimizzazione e semplificazioneCondizioni di indifferenza (in ingresso e uscita)
24
47
Esercizi(Esercizio B.3) Dimostrare che NAND (da solo!) è un insieme di operatori funzionalmente completo (altrimenti detto operatoreuniversale)
(Esercizio B.4) Dimostrare che NOR (da solo!) è un operatore universaleDimostrare la proprietà associativa per AND e OR
(Esercizio B.8) Dimostrare che le espressioni per la funzione E in forma "somma di prodotti" e "prodotto di somme“ sono equivalenti (sul libro paragrafo B.3 a pag. 750)
(Esercizio B.13) Calcolare la tabella di verità di un multiplexer a due vie (ingressi A,B,S, uscita C) usando le condizioni di indifferenza per semplificare la tabella