1
Calcolatori Elettronici
RETI LOGICHE:RETI COMBINATORIE
Massimiliano Giacomin
2
INTRODUZIONE:LIVELLI HARDWARE,
LIVELLO LOGICO PORTE LOGICHERETI LOGICHE
3
LIVELLI HARDWARE
ISA
Livellofunzionale
Livellologico
Livellocircuitale
Livellodel layout
istruzioni macchina, …
Reti logiche: registri, ALU, MUX…
Porte logiche: NOT, AND, …
TransistorModelli fisici: si parla didimensioni fisiche,materiali, ecc.
Modelli elettronici:si parla ditensioni, correnti, ecc.
Modelli logici:si parla di variabili,valori… binari!
Organizzazione dicomponenti per implementare ISA
4
Note sul lucido precedente
• Livello del layout: trattato nei corsi di microelettronica
• Livello circuitale: trattato nei corsi di elettronica digitale
- come ottenere dal collegamento di “transistor” componentilogici significativi (es. porte logiche)
- ai livelli superiori: interpretazione di livelli di tensione comevalori logici (es: tensione alta “1”, bassa “0”)
5
• Esistono molte famiglie logiche che corrispondono a modalitàdiverse di realizzazione sulla base di:
- transistor utilizzato (es. BiPolar, MOSFET, ecc.), e- modo di utilizzare i transistor (collegandoli tra loro)
Note sul livello circuitale
Es: CMOS inverter
V-
V+
IN OUT
6
LIVELLI HARDWARE: LOGICO
ISA
Livellofunzionale
Livellologico
Livellocircuitale
Livellodel layout
Reti logiche: registri, ALU, MUX…
Porte logiche: NOT, AND, …
TransistorModelli fisici: si parla didimensioni fisiche,materiali, ecc.
Modelli elettronici:si parla ditensioni, correnti, ecc.
Modelli logici:si parla di variabili,valori… binari!
Organizzazione dicomponenti per implementare ISA
istruzioni macchina, …
7
Introduzione al livello logico
• I mattoni fondamentali sono le “porte logiche”, di cui a questo livello
non interessano le caratteristiche elettriche, ma solo la dipendenza
tra valori binari in ingresso e il valore binario in uscita
Porta logica
• Dispositivo fisico che realizza un elemento di calcolo binario• Caratteristiche:
- numero prefissato di linee di ingresso- una sola linea di uscita
• Alcuni parametri inerenti al livello circuitale e fisico:- assorbimento di energia- ritardo di propagazione- immunità dal rumore
8
A
BC
AND
CA
B
OR
CA
NOT
A B C
C=AB C=A+B C= ~A
Porte logiche che verranno utilizzate principalmente
oppure:C = A*B,C = AÙB
oppure:C = AÚB
oppure:C = ¬A,
C = A
0 0 0
0 1 0 1 0 0 1 1 1
A B C
0 0 0
0 1 1 1 0 1 1 1 1
A C0 1
1 0
9
Altre porte logiche:
A
B
AB
NAND
A
B
A+B
NOR
NB: l’insieme di porte logiche di riferimento dipende dalla famiglialogica utilizzata e da considerazioni progettuali (inerenti al livello circuitale e del layout)
A B A • B0 0 10 1 11 0 11 1 0
A B A + B0 0 10 1 01 0 01 1 0
10
Rete logica
• A livello logico vengono studiate (sintetizzate | analizzate)le reti logiche, modellandole con le porte logiche
Rete
LogicaIngressi Uscite
• Unidirezionale: dagli ingressi alle uscite, non viceversa!• Due tipologie di reti logiche:
- combinatorie: l’uscita è esclusivamente funzione degli ingressi- sequenziali: l’uscita dipende dagli ingressi e dallo stato, che
sintetizza la storia (successione degli ingressi)
11
SPECIFICA E REALIZZAZIONE DI RETI COMBINATORIE
12
Reti combinatorie
• Circuito elettronico in grado di ‘calcolare’ una funzionebooleana (a valori binari di una o più variabili binarie)
DEFINIZIONE
Rete combinatoria
ningressi
muscite
x0x1
x2
xn-1
z0z1
z2
zm-1
Rete combinatoria come “scatola nera”
- Come specificarla?- Come realizzarla?
13
Specifica del comportamento di una rete combinatoria
• Significa specificare per ogni uscita una funzione booleanaf(x0,…, xn-1)
f : {0,1}n ® {0,1}
• Esistono due modi per specificare una funzione booleana:- tabella di verità
elenca, per ognuna delle 2n possibili combinazioni (dei valori)degli ingressi, il valore corrispondente della funzione
- espressione booleana:utilizzando operatori logici, esprime il legame tra le variabili di uscita (corrispondenti alle uscite) e le variabili di ingresso (corrispondenti agli ingressi)
14
A
B
C
op
if op==0, C=A+Belse C=A·B
ESEMPIO DI SPECIFICA DI UNA RETE COMBINATORIA
(FUNZIONE BOOLEANA) CON TABELLA DI VERITA’
?
NB: op indica l’operazione da effettuare tra OR e AND
15
op A B C
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 1
1 0 0 0
1 0 1 0
1 1 0 0
1 1 1 1
Tutte le possibili combinazioni degli ingressi
Uscitacorrispondente
A
B
C
op
if op==0, C=A+Belse C=A·B
16
ESEMPIO DI SPECIFICA DI UNA RETE COMBINATORIACON ESPRESSIONE BOOLEANA
?A
B
C
op
if op==0, C=A+Belse C=A·B
17
C = op · (A+B) +op · A·B
A
B
C
op
if op==0, C=A+Belse C=A·B
18
1. Le costanti 0 e 1 e le variabili (simboli a cui possono essere associati i valori 0 e 1) sono espressioni booleane
2. Se E, E1 ed E2 sono espressioni booleane lo sono anche (E1+E2), (E1·E2) e (E)
3. Non esistono altre espressioni oltre a quelle che possono essere generate da un numero finito di applicazioni delle regole 1 e 2
Espressioni (formule) booleane
ESEMPI• ((x1+x2)·x3)• ((x1·x2)+(x3·(x4+x5)))
NB: come nelle espressioni aritmetiche, · ha priorità su +
19
Come passare da una specifica all’altra?
• Espressione booleana Þ Tabella di verità BANALE• Tabella di verità Þ espressione booleana ?
Molto importante per la“sintesi” con porte logiche
VEDIAMO L’ESEMPIO PRECEDENTE
20
Intuitivamente, C vale 1 quando:- OP=0, A=0, B=1 oppure quando- OP=0, A=1, B=0 oppure quando- OP=0, A=1, B=1 oppure quando- OP=1, A=1, B=1
OP A B C
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 1
1 0 0 0
1 0 1 0
1 1 0 0
1 1 1 1
Tabella di verità(punto di partenza)
21
OP A B C
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 1
1 0 0 0
1 0 1 0
1 1 0 0
1 1 1 1
OP A B
vale 1 solo per questaconfigurazione degli ingressi!
Intuitivamente, C vale 1 quando:- OP=0, A=0, B=1 oppure quando- OP=0, A=1, B=0 oppure quando- OP=0, A=1, B=1 oppure quando- OP=1, A=1, B=1
22
OP A B C
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 1
1 0 0 0
1 0 1 0
1 1 0 0
1 1 1 1
C= OP A B +
OP A B +
OP A B +
OP A B
Intuitivamente, C vale 1 quando:- OP=0, A=0, B=1 oppure quando- OP=0, A=1, B=0 oppure quando- OP=0, A=1, B=1 oppure quando- OP=1, A=1, B=1
23
Funzioni booleane e rappresentazioni canoniche
• Per ogni espressione booleana di n variabili corrisponde: unicafunzione booleana di n variabili (una tabella!!!)
• Per ogni funzione booleana di n variabili: infinite espressioni booleane di n variabili
Forme canoniche
– Forma canonica disgiuntiva o “somma di prodotti” (mintermini)
– Forma canonica congiuntiva o “prodotto di somme”
24
x2x1x0 m0 (000)x2x1x0 m1 (001)x2x1x0 m2 (010)x2x1x0 m3 (011)x2x1x0 m4 (100)x2x1x0 m5 (101)x2x1x0 m6 (110)x2x1x0 m7 (111)
Esempio con 3 variabili
Mintermini• mintermine: funzione booleana che assume il valore 1 in corrispondenza di una e una sola configurazione degli ingressi
25
Esempio precedente
f = x2x1x0 + x2x1x0 + x2x1x0 +x2x1x0
m1 m2 m3
(corrisponde alla formula precedente a meno dei nomi dati agli ingressi:OP: x2, A: x1, B: x0)
m7
26
NOTA SU FUNZIONI A PIU’ USCITE
Una funzione a m uscite e n ingressi si può trattare come m funzionia n ingressi, una per ogni uscita:
- tabelle di verità hanno m colonne di uscita- specifica con espressioni booleane: una per ogni uscita
Estensione esempio precedente
z0
if OP==0, z0=A+Belse z0=AB
A
B
OP
z1 if OP==0, z1=ABelse z1=AB
27
OP A B z0
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 1
1 0 0 0
1 0 1 0
1 1 0 0
1 1 1 1
z1
0
0
0
1
0
0
1
0
Specifica con Tabella di verità
Specifica in forma canonica disgiuntiva
z0 = op A B+ op A B + op A B + op A B
z1 = op A B + op A B
28
SINTESI DI RETI LOGICHE COMBINATORIE
• Finora abbiamo parlato di come specificare il comportamentodi una rete combinatoria, senza preoccuparci di “come è fatta”
• A questo livello, “come è fatta” una rete logica significa“da quali componenti HW è fatta” e come questi sono collegati
• Sintesi: data una funzione logica, come progettare una retecombinatoria che la calcola?
• Vedremo come sintetizzare una rete utilizzando una combinazione di porte logiche
• Altre possibilità: ROM (Read Only Memory), PLA, …
29
• Immediata se si parte da una espressione booleana
• Esempio pilota:
B
A
op
z0
z1
Sintesi con porte logiche elementari
z0 = op A B+ op A B + op A B + op A B
z1 = op A B + op A B
30
z0
• Ma non è necessario basarsi sulla forma canonica!...
AB
op
z0 = op · (A+B) +op · A·B
31
SEMPLIFICAZIONE DI RETI COMBINATORIE
32
MINIMIZZAZIONE DI RETI LOGICHE COMBINATORIE: CENNI
• Data una funzione da realizzare: derivare l’espressione “minima”:- l’espressione che porta ad una realizzazione conil numero minimo di elementi di calcolo
- dipende dalla tecnologia• Noi vedremo come “semplificare” un’espressione
- utile per la sintesi con porte logiche• Due modi di operare
- sull’espressione booleana (via proprietà dell’algebra booleana)- sulla tabella di verità
33
Algebra di Boole
• E’ lo strumento matematico usato per lo studio delle reti combinatorie espresse mediante formule booleane
• E’ un particolare tipo di algebra che include:– un insieme di supporto A (l’insieme {0,1} nel ns caso)
– degli operatori binari: AND (·) e OR (+)
– un operatore complemento: NOT (¯)
• Gli operatori soddisfano certe proprietà che si deducono da un insieme di assiomi
34
Assiomi e alcune proprietà dell’Algebra di Boole
Forma AND Forma ORCommutatività AB = BA A+B = B+A Distributività A+BC=(A+B)(A+C) A(B+C)=AB+AC Identità 1A = A 0+A = AInverso AĀ = 0 A+Ā = 1
Elem. nullo 0A = 0 1+A = 1Idempotenza AA = A A+A = AAssorbimento A(A+B) = A A+AB=AAssociatività (AB)C = A(BC) (A+B)+C=A+(B+C)De Morgan AB = A+B A+B = A B
Ass
iom
iPr
opri
età
dualità
35
ESERCIZIORealizzare una rete combinatoria a tre ingressi e un’uscita che
implementa la funzione di maggioranza, ovvero pone in uscita
1 se la maggioranza degli ingressi è 1, 0 altrimenti
36
ESERCIZIO
x2 x1 x0 f(x0, x1, x2)
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(x0, x1, x2) = x2x1x0+ x2x1x0
+ x2x1x0 + x2x1x0
n = 3 ingressi
m = 1 uscite
Realizzare una rete combinatoria a tre ingressi e un’uscita che
implementa la funzione di maggioranza, ovvero pone in uscita
1 se la maggioranza degli ingressi è 1, 0 altrimenti
37
f
x0
x1
x2
x0 x1 x2 x0 x1 x2
x2x1x0
x2x1x0
x2x1x0
x2x1x0
Sintesi della funzione di maggioranza senza semplificazioni
38
Semplificazione
f(x0, x1, x2) = x2x1x0+ x2x1x0
+ x2x1x0 + x2x1x0
= x2x1x0 + x2x1x0
+ x2x1x0 + x2x1x0
+ x2x1x0 + x2x1x0
NB: x + x + x = x
= (x2 + x2) x1x0 + (x1 + x1) x2x0 + (x0 + x0) x2x1
= x1x0 + x2x0 + x2x1
39
Minimizzazione su tabelle di verità: trucco 1
x2 x1 x0 f(x0, x1, x2)
0 0 0 …0 0 1 …0 1 0 10 1 1 11 0 0 …1 0 1 …1 1 0 …1 1 1 …
x2x1 (a prescindereda x0)
Corrisponde alla semplificazione x2x1x0 + x2x1x0 = x2x1
40
Minimizzazione su tabelle di verità: trucco 1
x2 x1 x0 f(x0, x1, x2)
0 0 0 10 0 1 10 1 0 10 1 1 11 0 0 …1 0 1 …1 1 0 …1 1 1 …
x2 (a prescindereda x1 e x0)
Similmente…
41
Minimizzazione su tabelle di verità: trucco 2
x2 x1 x0 f(x0, x1, x2)
0 0 0 10 0 1 10 1 0 …0 1 1 …1 0 0 11 0 1 …1 1 0 …1 1 1 …
x2x1
x1x0
Una riga può essere utilizzata in più minimizzazioni(deriva da x+x=x)
42
x2 x1 x0 f(x0, x1, x2)
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
ESEMPIO: FUNZIONE DI “MAGGIORANZA”
f(x0, x1, x2) = x1x0 + x2x0 + x2x1
43
• Può accadere che: - per alcune configurazioni di ingresso qualsiasi valoredelle uscite vada bene
- alcune configurazioni di ingresso non si presentino maie quindi per queste qualsiasi valore delle uscite va bene
• I valori delle uscite per queste configurazioni vengono chiamati valori di indifferenza e indicati con x oppure d
• I valori di indifferenza possono giocare un ruolo nella minimizzazione della funzione:
- si possono scegliere 0 o 1 indifferentemente!
CONDIZIONI DI INDIFFERENZAsulle uscite
44
Esempio: codifica BCD (Binary Coded Decimal) e funzione
Codifica binaria Cifra
decimale rappresentata b3 b2 b1 b0
0 0 0 0 0 1 0 0 0 1 2 0 0 1 0 3 0 0 1 1 4 0 1 0 0 5 0 1 0 1 6 0 1 1 0 7 0 1 1 1 8 1 0 0 0 9 1 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
Vogliamo f=1per i multipli di 3escluso lo 0rappresenta le cifre decimali
mediante gruppi di 4 bit… … con 4 bit si ottengono 16configurazioni di ingresso ma ne bastano 10…
45
Codifica binaria Cifra
decimale rappresentata b3 b2 b1 b0
f
0 0 0 0 0 0 1 0 0 0 1 0 2 0 0 1 0 0 3 0 0 1 1 1 4 0 1 0 0 0 5 0 1 0 1 0 6 0 1 1 0 1 7 0 1 1 1 0 8 1 0 0 0 0 9 1 0 0 1 1 1 0 1 0 x 1 0 1 1 x 1 1 0 0 x 1 1 0 1 x 1 1 1 0 x 1 1 1 1 x
Specifica di f con la tabella di verità
46
• I valori della funzione corrispondenti alle condizioni di indifferenza possono essere considerati 0 o 1, ciò permette di semplificare le espressioni
03012012
012301230123
bbbbbbbb
bbbbbbbbbbbbf
++
=++=(e) (f) (g)
(e+a) (f+c) (g+a+b+d)
Uso delle condizioni di indifferenza per la minimizzazione
Codifica binariaCifra decimale
rappresentata b3 b2 b1 b0f
0 0 0 0 0 01 0 0 0 1 02 0 0 1 0 03 0 0 1 1 14 0 1 0 0 05 0 1 0 1 06 0 1 1 0 17 0 1 1 1 08 1 0 0 0 09 1 0 0 1 1
1 0 1 0 x1 0 1 1 x1 1 0 0 x1 1 0 1 x1 1 1 0 x1 1 1 1 x
a
b c d
47
MINIMIZZAZIONE DI RETI LOGICHE COMBINATORIE NELLA PRATICA
• Esistono tecniche di minimizzazione (mappe di Karnaugh,metodo di Quine-McCluskey, ecc.)
• In pratica, si usano tool automatici di minimizzazione:- dalla specifica (linguaggio di descrizione dell’hardware)- all’implementazione (fino a livello del layout)
• E’ importante specificare le condizioni di indifferenzaper permettere ai tool di effettuare tutte le semplificazionipossibili!
48
TEMPO DI PROPAGAZIONE(cenni)
49
TEMPO DI PROPAGAZIONE DI RETI LOGICHE COMBINATORIE
F
Dal momento in cui l’ingresso è valido al momento in cui l’uscita è valida trascorre un certo intervallo temporale:
Tcombinatoriox
F(x)
50
Esercizio
1 ns
2 ns
3 ns
4 ns
1 ns
Dati i tempi di propagazione delle singole sottoreti, calcolareil tempo di propagazione totale
51
Esercizio
1 ns
2 ns
3 ns
4 ns
1 ns
Dati i tempi di propagazione delle singole sottoreti, calcolareil tempo di propagazione totale
max{ max{1, 2}+3, 4} + 1 = max{5, 4} + 1 = 6 ns