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