[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico] [volume] [parte]


Capitolo 632.   Addizionatore

L'addizione in binario, eseguita con la stessa procedura consueta per il sistema di numerazione decimale, non genera mai un riporto superiore a uno. Lo si può verificare facilmente attraverso la tabella successiva.

Tabella 632.1. Addizione binaria.

primo addendo secondo addendo riporto preesistente risultato riporto generato
02 02 02 02 02
02 02 12 12 02
02 12 02 12 02
02 12 12 02 12
12 02 02 12 02
12 02 12 02 12
12 12 02 02 12
12 12 12 12 12

632.1   Circuito semiaddizionatore

Il circuito semiaddizionatore (half adder) è una scatola nera con due ingressi costituiti dai valori da addizionare e due uscite: il risultato (sum) e il riporto dell'addizione (carry out).

Figura 632.2. Scatola nera del semiaddizionatore.

semiaddizionatore

Tabella 632.3. Somma senza riporto in ingresso.

primo addendo (A) secondo addendo (B) risultato (sum) riporto generato (carry out)
02 02 02 02
02 12 12 02
12 02 12 02
12 12 02 12

Il circuito del semiaddizionatore si sintetizza utilizzando un circuito XOR per la somma e un circuito AND per ottenere il riporto.

Figura 632.4. Circuito del semiaddizionatore.

semiaddizionatore

632.2   Circuiti equivalenti del semiaddizionatore

Il circuito del semiaddizionatore si sintetizza in modo molto semplice attraverso lo schema già presentato nella sezione precedente; se si sostituisce il circuito XOR con il suo equivalente si ottiene lo schema successivo, ma si possono anche tentare delle semplificazioni o degli adattamenti, come si vede in altre due figure.

Figura 632.5. Circuito del semiaddizionatore, traducendo il circuito XOR nei termini dei connettivi logici fondamentali.

semiaddizionatore

Figura 632.6. Circuito equivalente del semiaddizionatore.

semiaddizionatore

Figura 632.7. Circuito equivalente del semiaddizionatore.

semiaddizionatore

632.3   Circuito addizionatore

Il circuito addizionatore completo è analogo a quello del semiaddizionatore, con l'aggiunta di un riporto in ingresso (carry in).

Figura 632.8. Scatola nera dell'addizionatore completo.

addizionatore completo

Tabella 632.9. Somma con riporto in ingresso.

riporto preesistente (carry in) primo addendo (A) secondo addendo (B) risultato (sum) riporto generato (carry out)
02 02 02 02 02
12 02 02 12 02
02 02 12 12 02
12 02 12 02 12
02 12 02 12 02
12 12 02 02 12
02 12 12 02 12
12 12 12 12 12

Il circuito dell'addizionatore completo, si può ottenere a partire dal semiaddizionatore, come si vede nella figura successiva.

Figura 632.10. Addizionatore completo ottenuto con due semiaddizionatori.

addizionatore completo

Figura 632.11. Schema dell'addizionatore completo.

addizionatore completo

Per addizionare dei numeri interi con più bit, occorre predisporre un addizionatore parallelo. L'esempio della figura successiva è realizzato per quattro cifre binarie e si può notare che la cifra meno significativa (A1 e B1) richiede solo un semiaddizionatore.

Figura 632.12. Addizionatore a quattro cifre binarie. Le scatole nere sintetizzano un semiaddizionatore con due ingressi, un'uscita per il risultato e un'uscita per il riporto.

addizionatore a quattro cifre

632.4   Addizionatori in parallelo

Un circuito addizionatore completo deve essere provvisto, sia di un riporto in ingresso (carry in), sia di un riporto in uscita (carry out), in modo da poter essere messo in parallelo, assieme ad altri circuiti del genere.

Figura 632.13. Addizionatore a quattro cifre binarie, con riporto, sia in ingresso, sia in uscita.

addizionatore a quattro cifre completo

Una volta messi assieme tutti gli addizionatori che si vogliono utilizzare, il riporto in uscita serve a determinare se la somma dei due valori interi genera un risultato valido oppure no. In pratica, un riporto in uscita con valore pari a uno (Vero) indica che la somma ha prodotto un errore (overflow).

Figura 632.14. Due addizionatori a 4 bit, messi in parallelo, per formare un addizionatore complessivo a 8 bit: se alla fine si genera un riporto, la somma ottenuta nei primi 8 bit non è valida.

addizionatore a otto cifre, utilizzando due addizionatori a quattro cifre

632.5   Sottrazione

Per eseguire la sottrazione, occorre che il sottraendo sia espresso secondo il complemento a due (complemento alla base). Per ottenere il complemento a due, si può partire dal complemento a uno, sommando poi una unità attraverso il riporto in ingresso. Il complemento a uno si ottiene semplicemente invertendo gli ingressi.

Figura 632.15. Per sottrarre un valore occorre invertire i valori del sottraendo, attivando il riporto in ingresso. Un risultato corretto della sottrazione deve dare un riporto finale; pertanto, se si inverte il riporto finale, se si ottiene un valore pari a uno (Vero), la sottrazione non è valida, in quanto si sottrae più del valore del minuendo.

sottrazione

Come si può vedere dalla figura, l'ultimo riporto viene invertito, perché una sottrazione corretta deve generare un riporto pari a uno, mentre un riporto pari a zero indica che la sottrazione non è valida (underflow).

Per generalizzare il circuito, si possono sostituire le logiche invertenti con dei circuiti XOR, in modo da selezionare l'operazione, addizione o sottrazione, attraverso l'uso del riporto in ingresso.

Figura 632.16. Somma e sottrazione, attraverso il controllo del riporto in ingresso.

sottrazione

632.6   Riferimenti

Appunti di informatica libera 2007.02 --- Copyright © 2000-2007 Daniele Giacomini -- <daniele (ad) swlibero·org>


Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome addizionatore.htm

[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico]

Valid ISO-HTML!

CSS validator!