Sei sulla pagina 1di 78

Reti Combinatorie

Reti Logiche e Calcolatori


Elettronici

<date>
Location
Esercizio Macchine combinatorie

• Realizzare un circuito logico tale che:


– Abbia in ingresso due valori numerici rappresentati su 2
bit.
– Emetta in uscita un valore numerico che rappresenta la
somma dei due ingressi.
Esercizio Macchine combinatorie

• Realizzare un circuito logico tale che:


– Abbia in ingresso due valori numerici rappresentati su 2
bit.
– Emetta in uscita un valore numerico che rappresenta la
somma dei due ingressi.

{0,1,2,3} {0,1,2,3,4,5,6}
In0
Somma Out

In1
{0,1,2,3}
In1 In2 In1_0 In1_1 In2_0 In2_1 Out Out_0 Out_1 Out_2
0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 1 1 0 0 1
0 2 0 0 1 0 2 0 1 0
0 3 0 0 1 1 3 0 1 1
1 0 0 1 0 0 1 0 0 1
1 1 0 1 0 1 2 0 1 0
1 2 0 1 1 0 3 0 1 1
1 3 0 1 1 1 4 1 0 0
2 0 1 0 0 0 2 0 1 0
2 1 1 0 0 1 3 0 1 1
2 2 1 0 1 0 4 1 0 0
2 3 1 0 1 1 5 1 0 1
3 0 1 1 0 0 3 0 1 1
3 1 1 1 0 1 4 1 0 0
3 2 1 1 1 0 5 1 0 1
3 3 1 1 1 1 6 1 1 0
In1_0 In1_1 In2_0 In2_1 Out_0 Out_1 Out_2
0 0 0 0 0 0 0
0 0 0 1 0 0 1
0 0 1 0 0 1 0
0 0 1 1 0 1 1
0 1 0 0 0 0 1
0 1 0 1 0 1 0
0 1 1 0 0 1 1
0 1 1 1 1 0 0
1 0 0 0 0 1 0
1 0 0 1 0 1 1
1 0 1 0 1 0 0
1 0 1 1 1 0 1
1 1 0 0 0 1 1
1 1 0 1 1 0 0
1 1 1 0 1 0 1
1 1 1 1 1 1 0
In1_0 In1_1 In2_0 In2_1 Out_0
0 0 0 0 0 F=
0 0 0 1 0
0 0 1 0 0 00 01 11 10
0 0 1 1 0 00 0 0 0 0
0 1 0 0 0 01 0 0 1 0
0 1 0 1 0 11 0 1 1 1
0 1 1 0 0 10 0 0 1 1
0 1 1 1 1
1 0 0 0 0 a b cd F=ac+abd+bcd
1 0 0 1 0
1 0 1 0 1
1 0 1 1 1 Out_0
1 1 0 0 0 OR
1 1 0 1 1
1 1 1 0 1
1 1 1 1 1
Macchina Combinatoria

• Una Macchina combinatoria è un dispositivo le cui


uscite nell’istante t sono una ricombinazione dei
valori dell’ ingresso.
• In una macchina combinatoria i valori assunti dagli
ingress negli istanti precedenti NON influenzano
l’uscita.
• Esempio:
– Una macchina che effettua la somma di due numeri è una
macchina combinatoria
– Una macchina che conta quante volte viene fornito un dato
ingresso NON è una macchina combinatoria.
Il Progetto delle Reti Combinatorie

Codifica degli Costruzione


Definizione
ingressi e delle delle funzioni
della Macchina
uscite logiche

Minimizzazione
Adattamento Realizzazione
e scelta della
del circuito del circuito
forma algebrica
Definizione della Macchina

Stabilire nel dettaglio il comportamento ingresso-


uscita del sistema da realizzare

Processo di alto livello


Codifica

Definire ciascuno degli ingressi e ciascuna delle


uscite come deve essere rappresentata.

Differenti codifiche portano a macchine


completamente differenti.

Una scelta accurata della codifica permette spesso di


semplificare il progetto di una macchina
Costruzione della funzione logica

Noto il rapporto I/O e la codifica sia degli ingressi


che delle uscite è possibile arrivare a definire
l’operazione logica da realizzare

In altre parole è possibile individuare la “Tabella di


verità” della macchina
Minimizzazione e scelta della forma Algebrica

Utilizzando le operazioni note dell’Algebra di Boole


è possibile individuare una forma algebrica “minima”
della funzione logica.

In altre parole: Individuazione della k-Mappa e della


funzione logica in espressione algebrica
Realizzazione del Circuito

Nota la forma Algebrica della rete è possibile


disegnare il circuito logico.
Adattamento del Circuito

E’ possibile che la tecnologia sottostante imponga dei


limiti alla realizzazione del circuito.
Limiti classici:
– Numero di porte pilotate in uscita
– Numero di ingressi accettabile
Progetto di una Macchina
Combinatoria:
Controllo Alfabetico
Definizione della Macchina

Progettare una macchina che riceve in ingresso due


lettere (considerando solo i caratteri ‘A’,’B’,’C’,D’)
(codificata a piacere) e indichi quale delle due lettere è
la prima in ordine alfabetico
A={‘A’,’B’,’C’,D’}
Ingressi:
Uscite:
Codifica

– Codifica Alfabeto su 2 bit:


• A:00
• B:01
• C:10
• D:11
– Codifica ingressi su 4 bit
• Ingresso= a1a0b1b0
• a1a0 codificano la prima lettera
• b1b0 codificano la seoncda lettera
– Codifica uscite su 1 bit
• u=0 lettera a1a0 viene prima in ordine alfabetico
• u=1 lettera b1b0 viene prima in ordine alfabetico
Costruzione funzioni logiche

a1 a0 b1 b0 l1 l2 u
0 0 0 0 A A Problemi:
0 0 0 1 A B
0 0 1 0 A C Se uguali che mettiamo in
0 0 1 1 A D uscita??
0 1 0 0 B A
0 1 0 1 B B
0 1 1 0 B C
0 1 1 1 B D
1 0 0 0 C A
1 0 0 1 C B
1 0 1 0 C C
1 0 1 1 C D
1 1 0 0 D A
1 1 0 1 D B
1 1 1 0 D C
1 1 1 1 D D
Costruzione funzioni logiche

a1 a0 b1 b0 l1 l2 u
0 0 0 0 A A 0 Problemi:
0 0 0 1 A B 0
0 0 1 0 A C 0 Se uguali che mettiamo
0 0 1 1 A D 0 in uscita??
0 1 0 0 B A 1
0 1 0 1 B B 0
Scelta di progetto:
0 1 1 0 B C 0
mettiamo 0 (la prima)
0 1 1 1 B D 0
1 0 0 0 C A 1
1 0 0 1 C B 1
1 0 1 0 C C 0
1 0 1 1 C D 0
1 1 0 0 D A 1
1 1 0 1 D B 1
1 1 1 0 D C 1
1 1 1 1 D D 0
Minimizzazione

a1 a0 b1 b0 l1 l2 u A\B 00 01 11 10
0 0 0 0 A A 0
0 0 0 1 A B 0
00 0 0 0 0
0 0 1 0 A C 0 01 1 0 0 0
0 0 1 1 A D 0
11 1 1 0 1
0 1 0 0 B A 1
0 1 0 1 B B 0 10 1 1 0 0
0 1 1 0 B C 0
0 1 1 1 B D 0
1 0 0 0 C A 1
• a1b1
1 0 0 1 C B 1
1
1
0
0
1
1
0
1
C
C
C
D
0
0
• a0b1b0
1
1
1
1
0
0
0
1
D
D
A
B
1
1
• a1a0b0
1 1 1 0 D C 1
1 1 1 1 D D 0

F=a1b1+ a0b1b0+a1a0b0
Disegno del circuito
Progetto di una Macchina
Combinatoria:
La Rete di Parità
La Rete di Parità

Una Rete di Parità è una macchina con:


– n ingressi
– Una sola uscita y
L’uscita y è
– Alta se il numero di bit 1 in ingresso è pari
– Bassa altrimenti
Codifica

Ingressi:
– Valuto una stringa di bit, non devo specificare alcuna
codifica particolare.
Uscita:
– Ho un solo bit.

La Macchina è un caso particolare in cui la codifica non


gioca un ruolo importante
Costruzione della funzione logica

Caso n=3
Bit 1 Bit 2 Bit 3 y
0 0 0 1
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 0
Minimizzazione e Forma Algebrica

b1,b2
b3 00 01 11 10
1 0 1 0
0

1 0 1 0 1

Y = b1b2b3 + b1b2b3 + b1b2b3 + b1b2b3


Rete di Parità
Esercizio

• Realizzare un circuito logico che effettui la somma di


due numeri rappresentati su 1 bit
Adder

a b u c
Uscitre Adder:
0 0 0 0 Valore della somma
Riporto
0 1 1 0

1 0 1 0

1 1 0 1
Adder con carry in

X Y cin u cout
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
Macchine Fondamentali

<date>
Location
Macchine Fondamentali

• Decodificatore • Demultiplexer
– Decodificatore Completo – Demultiplexer e
– Decodificatore Decimale decodificatore
– Decodificatore Abilitato • Adder
• Multiplexer – Full Adder
– Multiplexer Indirizzabile – Half Adder
– Multiplexer Non
Indirizzabile
Half Adder

a b u c

0 0 0 0

0 1 1 0 b

1 0 1 0 b

1 1 0 1
Full Adder

a,b u = abrin + abrin + abrin + abrin


a b cin u cout
rin 00 01 11 10
0 0 0 0 0
0 0 1 1 0 0 1 0 1
0
0 1 0 1 0 1 0 1 0
0 1 1 0 1 1
1 0 0 1 0 rout = ab + brin + arin
a,b
1 0 1 0 1
00 01 11 10
rin
1 1 0 0 1
0 0 1 0
1 1 1 1 1 0
0 1 1 1
1
Full Adder (IV) Circuito
Realizzazione Full Adder con Half Adder

a b cin b b b) u= cout=
b cin
cin

0 0 0 0 0 0 0 0
0 0 1 0 0 0 1 0
0 1 0 1 0 0 1 0
0 1 1 1 0 1 0 1
1 0 0 1 0 0 1 0
1 0 1 1 0 1 0 1
1 1 0 0 1 0 0 1
1 1 1 0 1 1 1 1
Realizzazione Full Adder con Half Adder

a b u= b cin
HA HA
b

b
cin cout=
Full Adder with Half Adder
Decodifica

Uscita Decodificata: Una macchina è dotata di una uscita


decodificata se una e solo una delle uscita assume valore 1 e le
atre valore zero

Si noti che:
• Una macchina dotata di una uscita decodificata ha un
numero di valori di uscita possible minore uguale al
numero di linee di uscita della macchina.
• La macchina garantisce che NON si hanno più valori
di uscita 1, utilizzabile per fare una “selezione” o una
“abilitazione” di altri dispositivi
Decodificatore Completo (I)

Un Decodificatore binario “completo” è una macchina


dotata di una uscita decodificata con:
– K ingressi
– M=2k uscite
Tale che al il valore numerico degli ingressi indica la
linea di uscita che deve assumere il valore alto.
Decodificatore

y0 Esempio:
(n = 4)
i1
i2
y2 i1=1 i2=0 (102= 210)
La macchina fornisce:
… …
ilogn d0=0 d1=0 d2=1 d3=0
yn-1

43
i1 i0 Val u3 u2 u1 u0
0 0 0 0 0 0 1
0 1 1 0 0 1 0
1 0 2 0 1 0 0
1 1 3 1 0 0 0

u0 u3
0
1
i1
i1 u1 00 i u2 0
00i0 0 0

u1 0
u2 0
u0 1
0
u3
Decodificatore
i1 i0 d3 d2 d1 d0
• La macchina è stata ben 0 0 0 0 0 1
definita
0 1 0 0 1 0
• La codifica degli ingressi
1 0 0 1 0 0
e delle uscite non è
1 1 1 0 0 0
necessaria
• La tabella di verità è
riportata di lato i0 Uscita d0
i1 0 1
1 0 d0 = i1i0
0
0 0
1 45
Decodificatore Completo
Decodificatore Abilitato

Un Decodificatore binario abilitato è una macchina


dotata di:
– K+1 ingressi (K ingressi valore ed 1 ingresso abilitazione)
– M=2k uscite
Tale che:
• Se il valore dell’abilitazione è 1 si comporta come un
decodificatore completo rispetto ai K ingressi valore
• Se il valore dell’abilitazione è 0 riporta in uscita tutti
valori 0
Decodificatore Abilitato
a i1 i0 Val u3 u2 u1 u0
0 0 0 Disabled 0 0 0 0
0 0 1 Disabled 0 0 0 0
0 1 0 Disabled 0 0 0 0
0 1 1 Disabled 0 0 0 0
1 0 0 0 0 0 0 1
1 0 1 1 0 0 1 0
1 1 0 2 0 1 0 0
1 1 1 3 1 0 0 0

u0 1
i1 u1
00i0 0
u2 0
a u 0
Decodificatore Decimale

Un Decodificatore Decimale è una macchina con:


– 4 bit di ingresso
– 10 uscite
Tale che una l’uscita sarà composta da tutti valori zero
eccetto il valore associato all’interpretazione come cifra
decimale dell’ingresso
Decodificatore Decimale
i3 i2 i1 i0 VAL 9 8 7 6 5 4 3 2 1 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 1

0 0 0 1 1 1

0 0 1 0 2 1

0 0 1 1 3 1

0 1 0 0 4 1

0 1 0 1 5 1

0 1 1 0 6 1

0 1 1 1 7 1

1 0 0 0 8 1

1 0 0 1 9 1

1 0 1 0 10 0/1 - - - - - - - - -

1 0 1 1 11 - - - - - - - - - -

1 1 0 0 12 - - - - - - - - - -

1 1 0 1 13 - - - - - - - - - -
Uscita 9
i3 i 2 i3 i2
00 01 11 10
i1 i0 i1 i 0 00 01 11 10
00 0 0 - 0
00 0 0 -/0 0
01 0 0 - 1
01 0 0 - /1 1
11 0 0 - -
11 0 0 -/1 -/1
10 0 0 - -
10 0 0 -/0 -/0

i3i2i1i0
i3i0
Decodificatore Decimale
Multiplexer Non Indirizzabile
Un Multiplexer binario è una macchina dotata di
– n ingressi “dati”
– n ingressi “indirizzi”, ingresso decodificato
– Una sola uscita y
L’uscita y è uguale all’ingresso “dati” indicato
dall’ingresso indirizzi.

53
d3
d2
MUX4 y
d1
d0

i 3 i2 i1 i0
i1 i0 d1 d0 y

Mux2 Non Indirizzabile 0 0 0 0 -

0 0 0 1 -

0 0 1 0 -

0 0 1 1 -

0 1 0 0 0

y
d1 0 1 0 1 1

MUX2 0 1 1 0 0
d0 0 1 1 1 1

1 0 0 0 0

1 0 0 1 0

1 0 1 0 1

i 1 i0 1 0 1 1 1

1 1 0 0 -

1 1 0 1 -

1 1 1 0 -

1 1 1 1 -
Multiplexer Indirizzabile
Un Multiplexer binario indirizzabile è una
macchina dotata di
– n ingressi “dati”
– Log2n ingressi “indirizzi”
– Una sola uscita y
L’uscita y è uguale all’ingresso “dati” indicato
dall’ingresso indirizzi.

56
Multiplexer Indirizzabile
d3
d2
MUX4 y
d1
d0

i1 i0
Mux2 Indirizzabile
i0 d1 d0 y
0 0 0 0
0 0 1 1
0 1 0 0
y
0 1 1 1 d1
MUX2
1 0 0 0 d0
1 0 1 0
1 1 0 1
1 1 1 1

i0
MUx4 Indirizzabile con non Indirizzabile

d3
d2
MUX4 y
d1
d0

i3 i2 i1 i 0

MUX4
Indirizzabile

i1 i0
Multiplexer Indirizzabile

Esempio:
d0 (n = 4)
d1 y d0=0 d1=1 d2=0 d3=0

dn-1 i1=1 i2=0 (ind.= 2)
La macchina fornisce:
y= 0

i0 cosa accade con
ilogn
n=5 ?

60
MUX2
Multiplexer
Progetto (Mux2)
• La macchina è stata ben i0 d1 d0 y

definita 0 0 0 0

• La codifica degli ingressi 0 0 1 1

e delle uscite non è 0 1 0 0


necessaria 0 1 1 1
• La tabella di verità è 1 0 0 0
riportata di lato 1 0 1 0
1 1 0 1

1 1 1 1

62
Multiplexer
Progetto (Mux2)
• Ci sono tre
d0,d1 implicanti primi:
i0 00 01 11 10 – d0d1
0 0 1 1 – d0 i0
0
– d1i0
0 1 1 0
1 • Due sono
essenziali.
y = d0 i0 + d1i0
• Il terzo è
effettivamente
ridondante
63
Realizzazione di funzioni logiche
con Multiplexer
• E’ possibile realizzare una qualsiasi funzione
logica di n variabili utilizzando un multiplexer
indirizzabile che abbia 2n ingressi dato.
• Ciascun ingresso dato viene associato ad una
uscita della tabella di verità
• Gli ingressi indirizzo vengono utilizzati come
variabili della funzione

64
i1 i0 u

0 0 1
0 1 0
1 0 0
1 1 1
Multiplexer Non Indirizzabile

Esempio:
d0 (n = 3)
d1 y d0=0 d1=1 d2=0

dn-1 i0=0 i1=0 i2=1
La macchina fornisce:
y= 0

i0 Cosa accade se:
in-1
i0=0 i1=1 i2=1

66
DeMultiplexer Indirizzabile
Un DeMultiplexer binario indirizzabile è una
macchina dotata di
– 1 ingresso “dati”, x
– Log2n ingressi “indirizzi”,i0-ilog2n-1
– n uscite y0-yn-1
L’uscita yi è uguale all’ingresso “dati” indicato
dall’ingresso indirizzi, le altre sono zero.

67
DeMultiplexer
Esempio:
y0
(n = 4)
x y1 x= 0
i1=1 i2=0 (ind.= 2)

yn-1
La macchina fornisce:
y0=0 y1=0 y2=1 y3=0
… cosa accade con
i0 ilogn-1 n=5 ?

68
Demultiplexer e Decodificatore
• Si noti che un demultiplexer può essere
interpretato come un Decodificatore abilitato.

y0

i0
i2 y2

… …
ilogn-1
yn-1

a
Realizzazione per Composizione

• Avete a disposizione decodificatori 2/4 (sia con


abilitazione che non)
• Problema:
– Come realizzare un Decodificatore 4/16?
Decodificatori Composti:
SemiSelezione
Nella Configurazione a
semiselezione si
utilizzano:
– 2 Decodificatori di
metà ampiezza
… … – 1 porta AND per
ciascuna delle uscite


1111
i3
i2
0011 0001
0010
0000

i1 i0
Decodificatori Composti:
Struttura ad Albero
Nella Configurazione ad
Albero per realizzare un
decodificatore da:
– n uscite
– log2n ingressi
Utilizzando decodificatori da:
a0
– m uscite
a1
– log2m ingressi
a2 Si utilizzano:
a3 – 1 + m + m2 + mk
decodificatori
Dove k identifica il numero di
livelli dell’albero
0
0
0
1
0
0 a0 ....
0 a1 0
1 a2
1 a3
0
0
0
1
0
0 a0 ....
0 a1 0
1 a2
1 a3
Multiplexer Composto
Mux16 con Mux 4
0
1

Un Multiplexer da 16
0
1
0

ingressi può essere


1
0
1 EN

0
1
S1
S0
D3
realizzato con 5
multiplexer da 4.
D2 Q
0 D1
1 D0
0

Due degli ingressi di


1
0 EN
1 S1

selezione permettono
0 S0
1 D3
0 D2 Q

di scegliere il
1 D1
D0 EN
0
1 S1
S0

multplexer da leggere.
0 EN
1 D3
S1 D2
S0 Q
0 D1
D3 D0

Altri due permettono


1
D2 Q
0 D1
1 D0

per ciascun
0
1
EN
0
S1

multiplexer di
1
S0
0
1 D3
D2

selezionare l’ingresso.
0 Q
D1
1 D0
0
1
0
1
Multiplexer Composto
Mux16 con Mux8
RC è una rete
m0 combinatoria, con:
Mux8
… – 3 ingressi (m0, m1, c3)
y
RC – 1 uscita (y)
tale che:
– y=m0 se c3=0
m1
Mux8
– y=m1 se c3=1
… Risulta:
y = m0• c3 + m1• c3
c0c1c2 c3
LA LEZIONE INIZIA ALLE ORE
11:15

Potrebbero piacerti anche