2 Reti Combinatorie
2 Reti Combinatorie
Reti Logiche T
Ingegneria Informatica
Generica rete logica
Rete logica: Modello astratto che assume come primitive alcune
semplici elaborazioni di segnali binari (gate) e realizza comportamenti
più complessi. Nel seguito definiremo procedimenti per stabilire
1. quale struttura realizza un dato comportamento (sintesi)
2. quale comportamento ha una data struttura (analisi)
𝑥0 𝑧0
Rete
⋮ Logica ⋮
con 𝑛 ingressi
𝑥𝑛−1 e 𝑚 uscite 𝑧𝑚−1
2
Trascodifica BCD/7 Segmenti
a
a
b
D
Convertitore c f b
C
di codice d g
B
BCD / 7 segmenti e
A e c
f
g d
“0” “1” “2” “3” “4” “5” “6” “7” “8” “9”
a a
b b
N3 D N0 D
Convertitore c Convertitore c
N2 C N1 C
di codice d di codice d
N1 B N2 B
BCD / 7 segmenti e BCD / 7 segmenti e
N0 A N3 A
f f
g g
✓ ? 4
Esempi di macchine combinatorie
× 1 2 3 …. 8 9
1 1 2 3 …. 8 9
2 2 4 6 …. 16 18
3 3 6 9 …. 24 27
…………………………….
…………………………….
8 8 16 24 …. 64 72
9 9 18 27 …. 72 81
5
La cassaforte
7
Altri esempi
dipende solo da i
i 9 25 49
u= i u 3 5 7
moneta 0.50 1
dipende dagli ingressi
(monete) precedenti
stampa
V G R
t
8
Composizione e decomposizione
La disposizione in serie e/o in parallelo di reti logiche
combinatorie è ancora una rete logica combinatoria
𝑥0 rete
⋮ combinatoria 𝑧0
𝑥𝑛−1 #0 𝑧0 = 𝐹0 (𝑥0 , ⋯ , 𝑥𝑛−1 )
ቐ ⋮
...
𝑥0 rete
𝑧𝑚−1 = 𝐹𝑚−1 (𝑥0 , ⋯ , 𝑥𝑛−1 )
⋮ combinatoria 𝑧𝑚−1
𝑥𝑛−1 #m-1
9
Comportamento & Struttura
Comportamento sintesi Struttura
(cosa fa la rete) (come è realizzata la rete)
analisi
Descrizione in linguaggio Espressione
naturale
«la rete ha uscita 𝑧=1
quando 𝑥 è uguale a 𝑦 e
𝑧 = 𝑥 ≡𝑦 𝑥 ⊕𝑤
diverso da 𝑤»
o, in modo equivalente,
Tabella della verità
𝑤 𝑥 𝑦 𝑧 Schema logico
0 0 0 0 𝑤
0 0 1 0
0 1 0 0 𝑧
0 1 1 1 𝑥
… … … … 𝑦
10
Funzioni complete e incomplete
Funzione completa di 𝑛 variabili binarie 𝑧 = 𝐹(𝑥0 , 𝑥1 , … , 𝑥𝑛−1 ):
per ognuna delle 2𝑛 configurazioni degli ingressi, è definito il valore
dell’uscita 𝑧.
11
Tabella della verità
• Descrive univocamente il comportamento di una rete combinatoria a 𝑛
ingressi (ovvero di una funzione 𝐹 di 𝑛 variabili binarie 𝑥0, 𝑥1 , … , 𝑥𝑛−1 )
• Nel caso di funzioni non completamente specificate si possono avere
– Meno righe, evitando di riportare le configurazioni di input che non possono presentarsi
– Il simbolo − (don’t care) nelle uscite (invece di 0 o 1) ad indicare una condizione di
indifferenza
• NOTA BENE: Una struttura che realizza un comportamento è
sempre completamente specificata, ovvero l’uscita avrà valore 0 o
1 per ogni configurazione di ingresso. La presenza di un don’t care
nella specifica del comportamento da al progettista la libertà di
scegliere se essa varrà 0 o 1 per quella configurazione.
𝒏 + 𝟏 colonne
𝑥0 𝑥1 … 𝑥𝑛−1 𝐹(𝑥0 , 𝑥1 , … , 𝑥𝑛−1 )
0 0 … 0 0 oppure 1 oppure −
0 0 … 1 0 oppure 1 oppure −
𝟐𝒏 righe
⋮ ⋮ ⋱ ⋮ ⋮
(se completamente
1 1 … 0 0 oppure 1 oppure −
specificata)
1 1 … 1 0 oppure 1 oppure −
12
Il convertitore BCD/7 Segmenti
• Sono in realtà 7 funzioni in parallelo di 4
ingressi
a(D,C,B,A)
b(D,C,B,A)
…
g(D,C,B,A)
13
Convertitore BCD/7 Segmenti
7 funzioni di 4 variabili
D C B A a b c d e f g
a
0 0 0 0 0 0 0 0 0 0 1 a
D b
Convertitore
0 0 0 1 1 0 0 1 1 1 1 C c f b
BCD / d
0 0 1 0 0 0 1 0 0 1 0 B g
7 segmenti e
0 0 1 1 0 0 0 0 1 1 0 A
f e c
0 1 0 0 1 0 0 1 1 0 0 g d
0 1 0 1 0 1 0 0 1 0 0
0 1 1 0 1 1 0 0 0 0 0
Segmento attivo se segnale «0» (uscite
0 1 1 1 0 0 0 1 1 1 1
attive basse), quindi, per esempio, 8 ->
1 0 0 0 0 0 0 0 0 0 0
1 0 0 1 0 0 0 1 1 0 0
uscite tutte «0»
1 0 1 0 - - - - - - -
1 0 1 1 - - - - - - - Le configurazioni che non possono
1 1 0 0 - - - - - - - presentarsi in input possono non essere
1 1 0 1 - - - - - - - riportate oppure utilizzo per l’uscita il
1 1 1 0 - - - - - - - simbolo che rappresenta una condizione
1 1 1 1 - - - - - - - di «indifferenza» (don’t care) 14
Funzioni di 𝑛 variabili
• Abbiamo già enumerato tutte le funzioni di una e due variabili binarie
• Non potremmo fare lo stesso con 4 ingressi, e scegliere tra queste i gate a
4 ingressi che realizzano le 7 funzioni del convertitore a 7 segmenti?
𝑥 𝑓0 𝑓1 𝑓2 𝑓3
4 funzioni
0 0 0 1 1 di una
1 0 1 0 1 variabile
15
Funzioni complete di 𝑛 variabili
Il numero di distinte funzioni
di 𝑛 variabili binarie
2n
(𝒏) = 2
aumenta esponenzialmente con 𝑛
Algebra lineare
Algebra del nand Algebra del nor
0, 1 , .
0, 1 0, 1
due operatori
un operatore un operatore
(EX-OR, AND) 18
A screenshot of a computer
19
Algebra di commutazione
Algebra binaria definita da
1. un insieme di simboli 𝐵 = {0, 1}
2. un insieme di operazioni 𝑂 = {+, . , ’}, ovvero
somma logica (+) prodotto logico (.) complementazione (’)
3. un insieme di postulati P:
0 + 0 = 0 0 .0 = 0 0’ = 1
1 + 0 = 1 1 .0 = 0 1’ = 0
0 + 1 = 1 0 .1 = 0
1 + 1 = 1 1 .1 = 1 I postulati corrispondono
N.B. somma logica, al comportamento dei
non aritmetica gate OR, AND e NOT
20
Cos’è un’espressione?
Costanti: 0 o 1
Variabili: letterali che possono assumere il valore 0 o 1
Espressioni: stringhe finite di costanti, variabili, operatori
e parentesi, formate in accordo alle seguenti regole:
1) 0 e 1 sono espressioni
2) una variabile è una espressione
3) se A è un’espressione, lo è anche (A’)
4) se A, B sono espressioni, lo sono anche (A+B) e (A.B)
Esempi: a+(b.c) a + bc 0
?
possibili data una tabella della
verità? E quanti schemi logici?
• A quante tabelle corrisponde
un’espressione? A quante
tabelle corrisponde uno
schema logico? Schemi
Logici
Comportamento Struttura
22
Da Schemi logici a Espressioni
Schema logico - Descrizione grafica di una struttura formata da simboli di
gate e da collegamenti tra le loro linee di ingresso e di uscita.
E SL
Relazione I: Ogni struttura formata da gate
connessi in serie e/o in parallelo è descritta
da una sola espressione.
a’
a a’ + b’
a’ + b z = (a’+b’).(a’+b).(a+b’)
b
b’ a + b’
23
Da Espressioni a Schemi logici
E SL
Relazione II: Ogni espressione
descrive una sola struttura
formata da gate connessi in serie
e/o in parallelo.
Esempio:
b
a+(b.c) c
a
24
Esempi
c
(((a)’ + b) · c)’ b
a
A’ · I0 + A · I1
I0
TdV E SL
? 1:1
Comportamento Struttura 26
Valutazione di una espressione
Valutazione di una espressione di n variabili per una n-pla di valori
1) Si sostituisce ad ogni variabile il valore che ha nella n-upla
2) Partendo dalle parentesi più interne, si sostituisce ogni operazione con il
suo risultato fino ad ottenere o la costante 0 o la costante 1.
28
Analisi: da struttura a comportamento
Comportamento sintesi Struttura
(cosa fa la rete) (come è realizzata la rete)
analisi
Descrizione in linguaggio Espressione
naturale
«la rete ha uscita 𝑧=1
quando 𝑥 è uguale a 𝑦 e
𝑧 = 𝑥 ≡𝑦 𝑥 ⊕𝑤
diverso da 𝑤»
o, in modo equivalente,
Tabella della verità
𝑤 𝑥 𝑦 𝑧 Schema logico
0 0 0 0 𝑤
0 0 1 0
0 1 0 0 𝑧
0 1 1 1 𝑥
… … … … 𝑦
29
Da TdV a Espressioni
Relazione IV: Una funzione può essere descritta da una molteplicità di
espressioni
TdV E SL
30
TdV e Espressioni (canoniche)
Espressione canonica SP (Somma di Prodotti) o Ia forma canonica
Ogni funzione di 𝑛 variabili binarie è descritta da una somma di tanti
prodotti logici quante sono le configurazioni delle variabili per cui la
funzione vale 1. In ciascun prodotto, o mintermine, appare ogni
variabile, in forma vera se nella configurazione corrispondente vale 1, in
forma negata se vale 0.
N.B.: questo significa che ogni rete combinatoria può in principio essere
realizzata con due soli livelli di gate (non si considerano i NOT). Ovviamente
sono possibili altre realizzazioni, preferibili per altre caratteristiche.
31
Sintesi canonica del EX-OR
Ia forma canonica (SP): 1 se
F(x0, x1)= x0’ x1 + x0 x1’ x0=0 e x1=1
1 se e solo se oppure se
x0=0 e x1=1 x0=1 e x1=0
x0 0 negli altri
x1 due casi
x0 x1 x0x1 1 se e solo se
x0=1 e x1=0
0 0 0
0 1 1
1 0 1 IIa forma canonica (PS):
1 1 0 F(x0, x1)= (x0+x1)(x0 ’+ x1’)
x0
x1 Realizzare e
simulare con
Digital
32
Sintesi canonica dell’Equivalence
Ia forma canonica (SP): 1 se
F(x0, x1)= x0’ x1‘ + x0 x1 x0=0 e x1=0
1 se e solo se oppure se
x0=1 e x1=1
x0 x0=0 e x1=0
0 negli altri
x1 due casi
x0 x1 x0 x1 1 se e solo se
x0=1 e x1=1
0 0 1
0 1 0
1 0 0 IIa forma canonica (PS):
1 1 1 F(x0, x1)= (x0+x1’)(x0 ’+ x1)
x0
x1
33
Esempio: full adder
• Definire la struttura di una rete logica con 3 ingressi 𝑎,
𝑏 , 𝑟 e 2 uscite 𝑆 e 𝑅 che presenta
– uscita 𝑆 = 1 quando il numero di «1» sui suoi ingressi è
dispari
– uscita 𝑅 = 1 quando in ingresso ci sono due o più «1».
• Questa rete è combinatoria perché l’uscita dipende
solo dagli ingressi attuali
• Questa rete è un «Full Adder»: vedremo più avanti che
è un componente fondamentale per realizzare
operazioni aritmetiche tra numeri binari
34
Espressione canonica SP (1a forma canonica)
𝑎 S=1 se
𝑆 la configurazione d’ingresso è
𝑏 Full Adder C1 o C2 o C4 o C7
𝑅 ovvero se
𝑟
(a=0) e (b=0) e (r=1) o
(a=0) e (b=1) e (r=0) o
a b r S R (a=1) e (b=0) e (r=0) o
C0 0 0 0 0 0 (a=1) e (b=1) e (r=1)
C1 0 0 1 1 0 ovvero se
C2 0 1 0 1 0 (a’=1) e (b’=1) e (r=1) o
C3 0 1 1 0 1 (a’=1) e (b=1) e (r’=1) o
(a=1) e (b’=1) e (r’=1) o
C4 1 0 0 1 0 (a=1) e (b=1) e (r=1)
C5 1 0 1 0 1
S = a’b’r + a’br’ + ab’r’ + abr
C6 1 1 0 0 1
C7 1 1 1 1 1 R = a’br + ab’r + abr’ + abr
35
Sintesi canonica (1a forma) del Full Adder
S = a’ b’ r + a’ b r’ + a b’ r’ + a b r Se compare lo stesso gate
in più espressioni, posso
R = a’ b r + a b’ r + a b r’ + a b r
riportarlo una volta sola
nello schema, collegando
la sua uscita a più ingressi
a valle
r’ r a’ a b’ b 36
Espressione canonica PS (2a forma canonica)
𝑎 S=1 se
𝑆 la configurazione d’ingresso è
𝑏 Full Adder non C0 e non C3 e non C5 e non C6
𝑅 ovvero se
𝑟
((a=1) o (b=1) o (r=1)) e
((a=1) o (b=0) o (r=0)) e
a b r S R ((a=0) o (b=1) o (r=0)) e
C0 0 0 0 0 0 ((a=0) o (b=0) o (r=1))
C1 0 0 1 1 0 ovvero se
C2 0 1 0 1 0 ((a=1) o (b=1) o (r=1)) e
C3 0 1 1 0 1 ((a=1) o (b’=1) o (r’=1)) e
((a’=1) o (b=1) o (r’=1)) e
C4 1 0 0 1 0
((a’=1) o (b’=1) o (r=1))
C5 1 0 1 0 1
S = (a+b+r) (a+b’+r’) (a’+b+r’) (a’+b’+r)
C6 1 1 0 0 1
C7 1 1 1 1 1
R = (a+b+r) (a+b+r’) (a+b’+r) (a’+b+r)
37
Sintesi canonica (2a forma) del Full Adder
S = (a+b+r) (a+b’+r’) (a’+b+r’) (a’+b’+r)
R = (a+b+r) (a+b+r’) (a+b’+r) (a’+b+r)
r’ r a’ a b’ b 38
Espressioni canoniche: notazione simbolica
𝑎
𝑏 Full Adder
𝑆 S (a,b,r) = 3 m (1,2,4,7)
𝑅 = 3 M (0,3,5,6)
𝑟
R (a,b,r) = 3 m (3,5,6,7)
i a b r S R = 3 M (0,1,2,4)
0 0 0 0 0 0
• m(i) : mintermine di n bit che assume il valore 1
1 0 0 1 1 0 solo per la n-pla di valori delle variabili
2 0 1 0 1 0 corrispondente all’indice i
• M(i) : maxtermine di n bit che assume il valore 0
3 0 1 1 0 1
solo per la n-pla di valori delle variabili
4 1 0 0 1 0 corrispondente all’indice i
5 1 0 1 0 1 •Mintermini e maxtermini sono complementari: una
configurazione è un mintermine o un maxtermine
6 1 1 0 0 1
7 1 1 1 1 1 •Pedice dell’operatore / : numero di variabili
coinvolte nei mintermini/maxtermini 39
Equivalenza tra espressioni
Espressioni equivalenti - Due espressioni E1, E2
sono equivalenti, e si scrive E1 = E2,
se e solo se descrivono la stessa funzione (o TdV).
Espressioni
di F
F
=
41
Espressioni di funzioni incomplete
• Anche espressioni che forniscono eguale valutazione limitatamente
al dominio di una funzione incompleta sono dette equivalenti.
• Esempio: l’encoder è una rete che realizza la trascodifica da codice
1 su N a codice binario.
• A seconda del valore assegnato alle configurazioni non utilizzate
dalla funzione che realizza un encoder a 3 ingressi, ottengo una
famiglia di espressioni diverse tra loro equivalenti
ENCODER a 3 ingressi
Codice binario
Codice 1 su N
x3 x2 x1 z1 z0
𝑥𝑁 𝑧𝑚−1
0 0 0 0 0
⋮ Encoder ⋮
𝑥1 0 0 1 0 1
𝑧0
0 1 0 1 0
1 0 0 1 1
N.B.: le altre configurazioni sono
per ipotesi impossibili, quindi non
è definito come risponde la rete 42
Espressioni di funzioni incomplete
• Riempiendo le configurazioni non utilizzate con degli «uni» anziché degli
«zeri» posso ottenere un’espressione equivalente, ma più semplice, delle
due uscite. Come individuare la scelta ottima?
x3 x2 x1 z1 z0 x3 x2 x1 z1 z0
0 0 0 0 0 0 0 0 0 0
0 0 1 0 1 0 0 1 0 1
0 1 0 1 0 0 1 0 1 0
1 0 0 1 1 1 0 0 1 1
0 1 1 0 0 0 1 1 1 1
1 0 1 0 0 1 0 1 1 1
1 1 0 0 0 1 1 0 1 1
1 1 1 0 0 1 1 1 1 1
44
Equivalenze notevoli
Proprietà della somma e del prodotto logico:
(tutte verificabili confrontando le tabelle della verità dei due lati delle uguaglianze)
45
Equivalenze notevoli
E3) distributiva (x · y) + (x · z) = x · (y + z)
(x + y) · (x + z) = x + (y · z)
x x
y
=
N.B.: Questa equivalenza, y
z z
non valida in algebra
«tradizionale», è vera in
(riduzione del numero di gate utilizzati)
algebra binaria. In
generale, in algebra x y z a=x+y b=x+z a·b c=y·z x+c
binaria ogni proprietà è
0 0 0 0 0 0 0 0
duale.
0 0 1 0 1 0 0 0
Verifica con TdV 0 1 0 1 0 0 0 0
0 1 1 1 1 1 1 1
1 0 0 1 1 1 0 1
1 0 1 1 1 1 0 1
1 1 0 1 1 1 0 1
1 1 1 1 1 1 1 1
46
Equivalenze notevoli
x x x·x
E4) idempotenza x+x = x x
0 0
x·x = x 1 1
x x x·1
E5) identità x+0 = x x
1 0 0
x·1 = x
1 1
x x·0
E6) limite x+1 = 1 x 0
x·0 = 0 0 0 0
1 0
47
Equivalenze notevoli
Proprietà della complementazione:
x x
E7) involuzione (x’)’ = x
(amplificazione di segnale)
E8) limitazione x + x’ = 1 x
0
x · x’ = 0 x’
x x’ x·x’
0 1 0
1 0 0
x
E9) combinazione xy + xy’ = x y x
(x+y)·(x+y’) = x x
Dim.: y’
xy + xy’ = x (y+y’) (E3 – distributiva)
= x·1 (E8 – limitazione)
=x (E5 – identità)
(prorietà fondamentale ai fini della semplificazione algebrica delle espressioni – lo si analizzerà in seguito) 48
Equivalenze notevoli
E10) Ia legge di De Morgan (x + y)’ = x’ · y’
IIa legge di De Morgan (x · y)’ = x’ + y’
x x x y (x·y)’ x’ y’ x’+y’
= y 0 0 1 1 1 1
y
0 1 1 1 0 1
1 0 1 0 1 1
x x
= 1 1 0 0 0 0
y y
• utili per determinare espressioni equivalenti utilizzando gate logici diversi, es.
NOR/NAND al posto di AND/OR
• Equivalentemente, le leggi di De Morgan asseriscono che:
x+y = ((x+y)’)’ E7-involuzione
= (x’ · y’)’ E10-De Morgan
• Dunque è possibile sostituire un gate OR con un gate AND (e viceversa)
1. Negando l’uscita
2. Negando tutti gli ingressi
49
Equivalenze notevoli
E11) consenso xy + x’z + yz = xy + x’z
(x+y)·(x’+z)·(y+z) = (x+y)·(x’+z)
Dimostrazione:
= xy + x’z Identità
(prorietà fondamentale ai fini della semplificazione algebrica delle espressioni – lo si analizzerà in seguito) 50
Manipolazione algebrica di espressioni ...
• Lo schema logico relativo all’espressione canonica SP del «riporto» (R) di un Full
Adder richiede 4 «AND» a 3 ingressi ciascuno e, in cascata, 1 «OR» a 4 ingressi e
3 NOT per avere gli ingressi in forma vera e negata.
R = a’ b r + a b’ r + a b r’ + a b r
r’ r a’ a b’ b
51
Manipolazione algebrica di espressioni ...
• È possibile ottenere una espressione più semplice? Una possibile manipolazione.
R = a’ b r + a b’ r + a b r’ + a b r
= a’ b r + a b’ r + a b 1 Limitazione (E8)
= a’ b r + a b’ r + a b Identità (E5)
• È possibile ottenere una semplificazione ulteriore? Ripartiamo da capo applicando una
manipolazione algebrica meno intuitiva.
Formulazione SP originale..
a R
1 OR a 4 ingressi 1 OR a 3 ingressi
4 AND a 3 ingressi 3 AND a 2 ingressi
3 NOT
• Come abbiamo visto il procedimento di manipolazione algebrica verso la rete
«di costo minimo» può non essere affatto ovvio
• Il processo di sintesi volto all’ottenimento della rete di costo minimo viene
realizzato mediante opportune metodologie (es. le mappe di Karnaugh, si
vedranno più avanti) 53
Il problema della sintesi
Funzione Espressioni equivalenti Schemi logici
assegnata
54
Progetto logico di
Rete
programmabile circuiti combinatori
Composizione
ad hoc di
Rapidità di progetto circuiti notevoli
Massima flessibilità
Massima velocità
Rete
di costo
Minima complessità minimo
55