Moduli combinatori

Il decodificatore

Il decodificatore è un modulo ad n segnali di ingresso e 2^n segnali di uscita. Viene utilizzato come riconoscitore di stringhe binarie. Se riceve in entrata un certo codice (per esempio un numero binario 100, 4 in base dieci) esso abiliterà la quarta linea di uscita. Una sola linea di output sarà abilitata!

dec.gif

Il codificatore

Il codificatore ha la funzionalità inversa rispetto a quella del decodificatore. Ricevendo n bit in entrata di cui uno solo vale uno, il codificatore produrrà in uscita la codifica binaria della linea attiva in quel momento. Ovviamente le linee di uscita saranno log n.


cod.gif

Il transcodificatore

Il transcodificatore è un modulo costituito dall'unione di un decodificatore e di un codificatore. Questo modulo combinatorio permette di passare da una decodifica ad un'altra.Viene anche utilizzato per la gestione del display a sette segmenti.In questo caso parliamo di un particolare tipo di transcodificatore; la ROM (Read Only Memory).


trans.gif

Il multiplexer

Il multiplexer è un altro modulo combinatorio utile per la selezione dei segnali di ingresso (switch). Attraverso delle linee di SELECT "dico" al multiplexer di mandare in uscita la linea di DATA (ingresso) che desidero. Utilissimo nella progettazione di reti MESH per il trasferimento dati nei registri. Largamente usato anche in sostituzione delle porte logiche per la realizzazione di un circuito combinatorio. Come mostra la tabella di verità, il multiplexer avrà in entrata n bit e al massimo log n segnali di controllo; in uscita avrà un solo bit.


tab.gif


mux.gif

Il demultiplexer

Il demultiplexer è un'altro modulo combinatorio con funzionalità inversa rispetto al multiplexer. Esso riceve in ingresso una sola linea e logn segnali di controllo che selezionano la linea di uscita alla quale deve essere connessa la linea i(vedi in figura).


demux.gif

Multiplexer e demultiplexer

Se colleghiamo un multiplexer con un demultiplexer otteniamo un nuovo modulo largamente usato soprattutto per esigenze economiche. Infatti, come mostrato in figura, è possibile trasmettere dati che richiedono l'utilizzo di molti bit progettando nel circuito solo una linea di trasferimento(l'uscita del multiplexer e l'entrata del demultiplexer) e dei segnali di controllo. Grazie a questi sarò in grado di abilitare arbitrariamente una qualsiasi linea. L'unico svantaggio del MUX-DEMUX è il tempo impiegato per trasmettere gli n bit di entrata alle n uscite del DEMUX.Infatti sarà possibile inviare un solo bit per volta. Questo modulo viene largamente usato per i collegamenti tra i registri della CPU.Nel processore non è necessario aggiungere nuove periferiche e nuovi collegamenti, infatti è difficile modificare dall'esterno il circuito di un MUX-DEMUX(contrariamente al BUS).


mux-demux2.gif

L'half adder o semi-addizionatore e il full-adder

Per eseguire delle somme aritmetiche necessita l'utilizzo di altri moduli combinatori come l'half-adder. L'half-adder riceve in ingresso due bit e produce in uscita la somma aritmetica dei due bit e un riporto. Questo modulo non tiene conto del riporto precedente ma lo produce solamente. Infatti per costruire un addizionatore di intere stringhe binarie è più conveniente utilizzare il full-adder o addizionatore completo. Infatti quest'ultimo oltre ai bit operandi riceve in ingresso anche un riporto.Questo permette con più facilità la combinazione in serie di questo modulo.

hadder.gif

fasng2.gif

fadd.gif

fa.gif

Dalla tabella di verità è possibile comprendere il funzionamento di un singolo FA (r è il riporto in entrata mentre R è il riporto in uscita);

a b r R S
0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 0 0 0 1
1 0 1 1 0
1 1 0 1 0
1 1 1 1 1

Come è facilmente evidente, a differenza del Full-Adder, l'Half-Adder non tiene conto di un riporto in entrata ma lo produce solamente;

ha.gif

Questa invece è la schematizzazione di un Full-Adder progettato con Half-Adder;

hadd2.gif

Il sommatore algebrico

Se volessimo eseguire una somma algebrica (somma o sottrazione) potremmo usufruire di un addizionatore un po' più diverso: all'inizio avremo un modulo combinatorio a seconda di un bit di controllo complementa o no una stringa binaria che rappresenta il secondo operando; poi, se è stata abilitata opportunamente la sottrazione, la stringa complementata verrà rappresentata in complemento a 2 sommandola di 1; infine, tutto sempre nello stesso "scatolone", la stringa verrà sommata ad un'altra stringa binaria con un eventuale riporto in uscita. In questo modo avremo il risultato della nostra sottrazione.

algeb.gif

-- DanieleFiorentini - 19 Mar 2002
Edit | Attach | Watch | Print version | History: r18 < r17 < r16 < r15 < r14 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r18 - 2002-04-04 - DanieleFiorentini






 
Questo sito usa cookies, usandolo ne accettate la presenza. (CookiePolicy)
Torna al Dipartimento di Informatica
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback