Moduli Combinatori ALCUNI MODULI COMBINATORI SELETTORI

Transcript

Moduli Combinatori ALCUNI MODULI COMBINATORI SELETTORI
Moduli Combinatori
ALCUNI MODULI COMBINATORI
SELETTORI
Una famiglia di reti combinatorie di uso assai frequente è costituita dai selettori. I selettori sono
usati per dirottare su di un'unica linea messaggi provenienti da sorgenti diverse (selettori d'ingresso
o multiplexer), o per dirottare su linee diverse il messaggio proveniente da un'unica sorgente
(selettori d'uscita o demultiplexer). La figura mostra i simboli funzionali dei selettori con un
ingresso di selezione.
A
B
n bit
S
Multiplexer
A Demultiplexer
n bit
0
n bit
1
S
0
n bit
Y
S Y
______
0 A
1 B
1
B
C
S B C
0 A
1
A
Tabella di verità di un multiplexer a 1 bit
_
__
_
_
_ _
_
a
b
s
y
y= a b s +a b s + a b s + a b s = b s ( a + a) + a s ( b + b) = b s + a s
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
a
b
s
y
s
mappa di Karnaugh
ab
00 01 11 10
0
1
0
0
0
1
1
1
1
0
SOMMATORE
Consideriamo l'operazione di addizione binaria tra due bit; la rete combinatoria che realizza
l'addizione di due bit, determinandone la somma e l'eventuale riporto è chiamato semisommatore
(half adder). L' half adder ha due ingressi e due uscite e la sua funzione è sintetizzata nella tabella:
SDS 2002-03
pag. 1
Moduli Combinatori
x y | s r
_________
0 0 | 0 0
0 1 | 1 0
1 0 | 1 0
1 1 | 0 1
x
y
bit somma
HALF ADDER
bit riporto
La realizzazione in termini di rete logica combinatoria è la seguente
x
s
xor
y
r
L'half adder non tiene conto del bit di riporto proveniente dalla somma precedente. Il sommatore
completo è una rete combinatoria costituita da tre ingressi e due uscite. I due ingressi x e y sono i
due bit da sommare mentre il terzo ingresso, indicato con r, rappresenta il riporto della somma
precedente; le uscite sono rispettivamente la somma ed il riporto. La tabella di verità è la seguente:
x
0
0
0
0
1
1
1
1
y
0
0
1
1
0
0
1
1
r
0
1
0
1
0
1
0
1
s
0
1
1
0
1
0
0
1
r'
0
0
0
1
0
1
1
1
Le funzioni per s e r' si ricavano dalla tabella e possono essere semplificate facendo uso dei teoremi
dell'algebra booleana; otteniamo
s = /x/yr +/xy/r +x/y/r + xyr = /x(/yr +y/r) + x(/yr +yr) = /x(y<+>r) +x /(y<+>r) = x<+>y<+>r
dove <+> è l'operazione XOR.
r'= /xyr + x/yr +xy/r + xyr = r( /xy + x/yr +xy/r +xyr = r( /xy + x/y) + xy(/r + r)= r(x<+>y) + xy
x
y
xor
xor
s
r
r'
SDS 2002-03
pag. 2
Moduli Combinatori
Per realizzare un addizionatore parallelo di due numeri binari ad n cifre sono necessari n circuiti
logici come quello descritto.
Esempio di sommatore a tre bit. Il riporto della prima somma è uno degli ingressi del secondo
sommatore, e così via.
b2 a2
r
b1 a1
b0
a0
s1
s2
0
s0
UNITA' ARITMETICO LOGICA
U'altra operazione fondamentale oltre l'addizione è la sottrazione. Inoltre sono altrettanto importanti
anche le operazioni logiche di AND, OR e NOT eseguite bit a bit. A partire da un addizionatore a n
bit è posibile ottenere delle unità funzionali combinatorie che realizzano tutte le fondamentali
operazioni logico-aritmetiche. Tali unità prendono il nome di ALU (Aritmetic-Logic-Unit) e
costituiscono una parte importante dell'unità centrale di un calcolatore.
Esempio di ALU
B (n bit)
S
0
_
B
A (n bit)
X
1
R
SOMMATORE
Risultato (n bit)
XSR
000
001
010
011
100
101
110
111
Operazione
0+B=B
0 + B +1 = B +1
0 + /B = /B
0 + /B +1= /B+1= -B
A+B
A + B +1
A +/B
A + /B +1 = A -B
SDS 2002-03
pag. 3
Moduli Combinatori
SDS 2002-03
pag. 4