Sei sulla pagina 1di 40

Università degli Studi dell’Insubria

Corso di Laurea in Informatica


Architettura degli elaboratori

Blocchi funzionali
combinatori
Blocchi funzionali combinatori

Coi metodi visti fin’ora (che usano la tavola di verità o le mappe


di Karnaugh) possiamo fare solo reti piccole, con pochi input.
La realizzazione di moderni circuiti integrati richiede la sintesi di
reti molto più grandi
Idea: combinare reti piccole in reti più grandi
sotto rete piccola = blocco funzionale
Nel tempo, si è stabilita una “libreria” di blocchi funzionali
standard che realizzano funzioni comuni,
cioè che risultano utili in contesti diversi.
Esiste dunque una ben nota e ormai stabilizzata libreria di
blocchi funzionali combinatori

Questo include anche blocchi funzionali di tipo sequenziale


(che vedremo poi)

Architettura degli elaboratori -2- Blocchi funzionali combinatori


Decoder (decodificatore)

Il blocco funzionale decodificatore ha:


n ≥ 1 ingressi
2n uscite
Le uscite sono numerate a partire da 0
k = 0, 1, 2, …, 2n − 1
Se sugli ingressi è presente il numero binario k
la k-esima uscita assume il valore 1
e
le restanti uscite assumono il valore 0

Architettura degli elaboratori -3- Blocchi funzionali combinatori


Decoder a 2 ingressi

0
0 U0
I0 0
U1
1 1
I1 U2
0
DEC U3

Codifica binaria L’uscita 2 è


del numero 2 attivata

Architettura degli elaboratori -4- Blocchi funzionali combinatori


Decoder a 2 ingressi

Tabella delle verità

I1 I0 U0 U1 U2 U3
U0
I1 0 0 1 0 0 0
U1
I0 U2 0 1 0 1 0 0
DEC U3
1 0 0 0 1 0
1 1 0 0 0 1

Architettura degli elaboratori -5- Blocchi funzionali combinatori


Decoder a 2 ingressi: realizzazione

U0
I0 U1
I1 U2

DEC U3

U0

U1

U2
I0
I1 U3

Architettura degli elaboratori -6- Blocchi funzionali combinatori


Livelli di astrazione intermedi

U0 descrizione
I0 U1 a livello di
I1 U2 astrazione
DEC U3 più alto

U0
descrizione
U1 a livello di
U2 astrazione
I0
più basso
I1 U3

Architettura degli elaboratori -7- Blocchi funzionali combinatori


Livelli di astrazione intermedi:
anche per i cavi

descrizione
5 Circuito X 3
a livello di
(5 ingressi
3 uscite) astrazione
più alto

descrizione
Circuito X a livello di
(5 ingressi
3 uscite)
astrazione
più basso

Architettura degli elaboratori -8- Blocchi funzionali combinatori


Livelli di astrazione intermedi:
anche per i cavi

3
4
5 3
2 X

rappresenta:

Architettura degli elaboratori -9- Blocchi funzionali combinatori


Multiplexer (multiplatore)

Il blocco funzionale multiplatore ha 2 gruppi di ingressi:


n ≥ 1 ingressi di selezione
2n ingressi dati
almeno due, poiché n non può essere nullo
e un’uscita
Sempre unica
Gli ingressi dati sono numerati a partire da 0
k = 0, 1, 2, …, 2n − 1
Se sugli ingressi di selezione è presente il numero binario k, il k-esimo
ingresso dati viene inviato in uscita

Architettura degli elaboratori - 10 - Blocchi funzionali combinatori


Multiplexer a 2 ingressi di selezione

Ingressi
di selezione
0 1

Ingressi S1
Dati S0
A
I0
B B
I1 U
C
I2
D
I3
MUX
Uscita

Architettura degli elaboratori - 11 - Blocchi funzionali combinatori


Multiplexer a 2 ingressi di selezione

Tabella delle verità


S1
S0
A S1 S0 I0 I1 I2 I3 U
I0
B 0 0 A X X X A
I1 U
C
I2 0 1 X B X X B
D
I3 1 0 X X C X C
MUX
1 1 X X X D D

Architettura degli elaboratori - 12 - Blocchi funzionali combinatori


Multiplexer a 2 ingressi di selezione:
realizzazione

DEC

S0
S1

B U

Architettura degli elaboratori - 13 - Blocchi funzionali combinatori


Multiplexer a 2 ingressi di selezione:
realizzazione alternativa

S0 S1

B U

Architettura degli elaboratori - 14 - Blocchi funzionali combinatori


Il Multiplexer a un ingresso di selezione
è l’ “if” dell’hardware

if S0 = true
then U = B
else U = A

S0
A
I0
U
B
I1

MUX

Architettura degli elaboratori - 15 - Blocchi funzionali combinatori


Multiplexer a 1 ingressi di selezione

A
U

Architettura degli elaboratori - 16 - Blocchi funzionali combinatori


Il Multiplexer a k ingressi di selezione
(e ingressi dati a n bit)

k
n
A0 I0 S
n
A1 I1
n
.
.
.
.
U AB
. .

n MUX
AM-1 IM

sono M = 2k

Architettura degli elaboratori - 17 - Blocchi funzionali combinatori


Il Multiplexer a un ingresso di selezione
è l’ “if” dell’hardware: condizioni dell’if
Software Hardware

A n A>B
if A>B B 1
n
then C=A
else C=B
0
n C
1 n
n

Architettura degli elaboratori - 18 - Blocchi funzionali combinatori


Il Multiplexer a un ingresso di selezione
è l’ “if” dell’hardware: rami dell’if
Software Hardware

A
k A>B
B k
1
if A>B
then C=g(X)
else C=f(X) f m 0
X C
n 1 m
g m

Entrambe le funzioni
sono calcolate, ma
solo un risultato alla
volta viene usato!
Architettura degli elaboratori - 19 - Blocchi funzionali combinatori
Confrontatore

Il blocco funzionale confrontatore ha:


due gruppi A e B di ingressi da n ≥ 1 bit ciascuno
tre uscite:
A<B
A=B
A>B
Il blocco confronta i due numeri binari A e B da n bit presenti sui due
gruppi di ingressi, e
attiva (a 1) l’uscita corrispondente all’esito del confronto
azzera le uscite corrispondenti alle condizioni false

Architettura degli elaboratori - 20 - Blocchi funzionali combinatori


Confrontatore di numeri a 3 bit

Esempi:
Se A = 001 e B = 010
A>B = 0
3
A>B A=B = 0
A
A<B = 1
3 A=B
Se A = 101 e B = 100
B A<B A>B = 1
A=B = 0
COMP
A<B = 0
Se A = 010 e B = 010
A>B = 0
A=B = 1
A<B = 0

Architettura degli elaboratori - 21 - Blocchi funzionali combinatori


Confrontatore di numeri a 2 bit

Tabella delle verità


A1 A0 B1 B0 A<B A=B A>B

0 0 0 0 0 1 0
A0 A>B 0 0 0 1 1 0 0
0 0 1 0 1 0 0
A1 A=B 0 0 1 1 1 0 0
B0 A<B 0 1 0 0 0 0 1
B1 0 1 0 1 0 1 0
0 1 1 0 1 0 0
COMP 0 1 1 1 1 0 0
1 0 0 0 0 0 1
1 0 0 1 0 0 1
1 0 1 0 0 1 0
1 0 1 1 1 0 0
1 1 0 0 0 0 1
1 1 0 1 0 0 1
1 1 1 0 0 0 1
1 1 1 1 0 1 0

Architettura degli elaboratori - 22 - Blocchi funzionali combinatori


Confrontatore a 2 bit: sintesi (A<B)
Tabella delle verità
A<B
A1 A0 B1 B0 A<B A=B A>B
B1 0 0 1 1
0 0 0 0 0 1 0
B0 0 1 1 0
0 0 0 1 1 0 0
A1 A0
0 0 1 0 1 0 0
0 0 1 1 1 0 0 00 0 1 1 1
0 1 0 0 0 0 1
0 1 0 1 0 1 0
0 1 1 0 1 0 0 01 0 0 1 1
0 1 1 1 1 0 0
1 0 0 0 0 0 1
1 0 0 1 0 0 1 11 0 0 0 0
1 0 1 0 0 1 0
1 0 1 1 1 0 0
1 1 0 0 0 0 1 10 0 0 1 0
1 1 0 1 0 0 1
1 1 1 0 0 0 1
1 1 1 1 0 1 0 A<B = /A1 B1 + /A1 /A0 B0 + /A0 B1 B0

Architettura degli elaboratori - 23 - Blocchi funzionali combinatori


Confrontatore a 2 bit: sintesi (A=B)
Tabella delle verità
A1 A0 B1 B0 A<B A=B A>B

0 0 0 0 0 1 0 A=B = /(A1 ⊕ B1) /(A0 ⊕ B0)


0 0 0 1 1 0 0
0 0 1 0 1 0 0
0 0 1 1 1 0 0
0 1 0 0 0 0 1
0 1 0 1 0 1 0
0 1 1 0 1 0 0
0 1 1 1 1 0 0 A>B = /(A<B) /(A=B)
1 0 0 0 0 0 1
1 0 0 1 0 0 1
1 0 1 0 0 1 0
1 0 1 1 1 0 0
1 1 0 0 0 0 1
1 1 0 1 0 0 1
1 1 1 0 0 0 1
1 1 1 1 0 1 0

Architettura degli elaboratori - 24 - Blocchi funzionali combinatori


Confrontatore a 2 bit: sintesi (A=B)
Tabella delle verità
A1 A0 B1 B0 A<B A=B A>B
B1 0 0 1 1
0 0 0 0 0 1 0
B0 0 1 1 0
0 0 0 1 1 0 0
A1 A0
0 0 1 0 1 0 0
0 0 1 1 1 0 0 00 1 0 0 0
0 1 0 0 0 0 1
0 1 0 1 0 1 0
0 1 1 0 1 0 0 01 0 1 0 0
0 1 1 1 1 0 0
1 0 0 0 0 0 1
1 0 0 1 0 0 1 11 0 0 1 0
1 0 1 0 0 1 0
1 0 1 1 1 0 0
1 1 0 0 0 0 1 10 0 0 0 1
1 1 0 1 0 0 1
1 1 1 0 0 0 1
1 1 1 1 0 1 0
A=B = /A1/A0/B1/B0 + /A1A0/B1B0 +
A1A0B1B0 + A1/A0B1/B0
Architettura degli elaboratori - 25 - Blocchi funzionali combinatori
Confrontatore a 2 bit: sintesi (A>B)
Tabella delle verità
A1 A0 B1 B0 A<B A=B A>B
B1 0 0 1 1
0 0 0 0 0 1 0
B0 0 1 1 0
0 0 0 1 1 0 0
A1 A0
0 0 1 0 1 0 0
0 0 1 1 1 0 0 00 0 0 0 0
0 1 0 0 0 0 1
0 1 0 1 0 1 0
0 1 1 0 1 0 0 01 1 0 0 0
0 1 1 1 1 0 0
1 0 0 0 0 0 1
1 0 0 1 0 0 1 11 1 1 0 1
1 0 1 0 0 1 0
1 0 1 1 1 0 0
1 1 0 0 0 0 1 10 1 1 0 0
1 1 0 1 0 0 1
1 1 1 0 0 0 1
1 1 1 1 0 1 0 A>B = A0/B1/B0 + A1/B1 + A1A0/B0

Architettura degli elaboratori - 26 - Blocchi funzionali combinatori


Ripasso: operatore booleano NXOR

NXOR Significati intuitivi di A NXOR B:


(«fa il contrario di XOR») uno XOR seguito da un NOT
A B X A NXOR B = \( A XOR B)
cioè…
0 0 1
entrambi veri oppure
0 1 0 entrambi falsi
1 0 0 cioè…
1 1 1 AB + \A\B
cioè…
operatore di uguaglianza fra A e B
vero se A e B sono uguali.
falso se sono diversi

Architettura degli elaboratori - 27 - Porte logiche


Confrontatore a 2 bit: possibile implementazione

A<B = /A1B1 + /A1/A0B0 + /A0B1B0


A0 A=B = /(A1 ⊕ B1) /(A0 ⊕ B0)
A1 A>B = /(A<B) /(A=B)
B0
B1

A<B

A>B

A=B

Architettura degli elaboratori - 28 - Blocchi funzionali combinatori


Confrontatore a 4 bit realizzato con confrontatori a
2 bit
Si confrontano separatamente le parti più significative, e le parti meno
significative, di X e Y.

X0 A0
A>B X>Y
X1 A1
A=B
X2 B0
X3 B1 A<B

COMP X=Y

Y0 A0
Y1 A>B
A1
A=B
Y2 B0 X<Y
Y3 B1 A<B
COMP

Architettura degli elaboratori - 29 - Blocchi funzionali combinatori


Interpretazione dei dati

Nello stesso modo, posso costruire un confrontore per 2n bit


con due confrontatori da n bits
Due confrontatori a 2 bit == 1 confrontatore a 4 bit
Due confrontatori a 4 bit == 1 confrontatore da 1 byte
Due confrontatori a 1 byte == 1 conf. da 2 byte (per short int!)
Due confrontatori a 2 byte == 1 conf. da 4 byte (per int!)

Architettura degli elaboratori - 30 - Blocchi funzionali combinatori


Compito a casa

Si noti che circuiti come Decoder e Multiplexer non fanno alcuna


ipotesi sul significato dei segnali.
Il confrontatore invece ipotizza che i dati di ingresso siano dei numeri
naturali codificati in binario
(e non in CP2 o in virgola mobile…).

Realizzare un confrontatore tra numeri di tre bit in complemento a 2.


Es. se X = 011 e Y = 111, il confrontatore deve mettere a uno l’uscita
X>Y e a zero le altre. Infatti in complemento a 2 011=3, mentre 111=-1.

Architettura degli elaboratori - 31 - Blocchi funzionali combinatori


Ripasso: operatore XOR

Significati intuitivi di A XOR B:


XOR A oppure B, ma non entrambi
(«or esclusivo») (in latino: A aut B)
vero se A e B diversi
A B X falso se A e B uguali
0 0 0 vale /A se B = 1
uno o l’altro, vale A se B = 0
0 1 1
ma
1 0 1 (e viceversa)
NON entrambi
1 1 0 il contrario di A, se B vale;
A immutato, altrimenti
(e viceversa)

somma naturale di A e B
come numeri di… 1 bit!
(ignorando il bit di riporto)
Architettura degli elaboratori - 32 - Porte logiche
Semisommatore

Dati due numeri naturali rappresentati su un solo bit, il circuito ne


calcola la somma (compreso il riporto).

Tavola delle verità

Architettura degli elaboratori - 33 - Blocchi funzionali combinatori


Semisommatore

Dati due numeri naturali rappresentati su un solo bit, il circuito ne


calcola la somma (compreso il riporto).

Tavola delle verità


A B S Carry
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1

Architettura degli elaboratori - 34 - Blocchi funzionali combinatori


Semisommatore

Dati due numeri naturali rappresentati su un solo bit, il circuito ne


calcola la somma (compreso il riporto).

Tavola delle verità


A B S Carry A
S
0 0 0 0 B
0 1 1 0
1 0 1 0 Carry
1 1 0 1

Architettura degli elaboratori - 35 - Blocchi funzionali combinatori


Sommatore

Dati due numeri naturali rappresentati su un solo bit, e il riporto della


somma precedente, il circuito ne calcola la somma (compreso il
riporto). Cioè in pratica la somma dei tre bit.

Tavola delle verità

Architettura degli elaboratori - 36 - Blocchi funzionali combinatori


Sommatore

Dati due numeri naturali rappresentati su un solo bit, e il riporto della


somma precedente, il circuito ne calcola la somma (compreso il
riporto). Cioè in pratica la somma dei tre bit.

Tavola delle verità


A B Cin S Cout
0 0 0 0 0
0
0
0 1
1 0
1
1
0
0
Cout = ?
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1 S=?
1 1 0 0 1
1 1 1 1 1
Architettura degli elaboratori - 37 - Blocchi funzionali combinatori
Sommatore

Dati due numeri naturali rappresentati su un solo bit, e il riporto della


somma precedente, il circuito ne calcola la somma (compreso il
riporto). Cioè in pratica la somma dei tre bit.

Tavola delle verità


A B Cin S Cout Cout =
0 0 0 0 0 /ABCin + A/BCin + AB/Cin + ABCin =
0 0 1 1 0 /ABCin + A/BCin + AB(/Cin + Cin) =
/ABCin + A/Bcin + AB =
0 1 0 1 0
AB + Cin (/AB+A/B) =
0 1 1 0 1 AB + Cin (A⊕⊕B)
1 0 0 1 0
1 0 1 0 1 S= A ⊕ B ⊕ Cin
1 1 0 0 1
1 1 1 1 1 xor

Architettura degli elaboratori - 38 - Blocchi funzionali combinatori


Sommatore

Cout = AB + /ABCin + A/BCin =


AB + Cin (/AB+A/B) =
AB + Cin (A⊕B)
S= A ⊕B ⊕Cin

Cin Cout

A
B
S

Architettura degli elaboratori - 39 - Blocchi funzionali combinatori


Sommatore

Cin Cout
A Sum
1 bit S
B

Cin Cout

A
B
S

Architettura degli elaboratori - 40 - Blocchi funzionali combinatori

Potrebbero piacerti anche