Un full adder è un circuito digitale che esegue l'addizione di tre bit binari: due bit di input (A
e B
) e un bit di carry-in (Cin
). Produce due bit di output: la somma (Somma
) e un bit di carry-out (Cout
).
Il full adder, in sostanza, aggiunge A
, B
e Cin
per produrre Somma
e Cout
. La Somma
rappresenta il bit meno significativo del risultato, mentre Cout
rappresenta il bit più significativo (carry) che viene passato all'adder successivo in una operazione di addizione multi-bit.
La tabella di verità del full adder definisce il suo comportamento per tutte le possibili combinazioni di input:
A | B | Cin | Somma | Cout |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 1 | 0 |
0 | 1 | 0 | 1 | 0 |
0 | 1 | 1 | 0 | 1 |
1 | 0 | 0 | 1 | 0 |
1 | 0 | 1 | 0 | 1 |
1 | 1 | 0 | 0 | 1 |
1 | 1 | 1 | 1 | 1 |
Le uscite Somma
e Cout
possono essere espresse tramite le seguenti equazioni logiche:
Somma = A ⊕ B ⊕ Cin
(XOR di A, B e Cin)Cout = (A ⋅ B) + (Cin ⋅ (A ⊕ B))
(AND di A e B, ORed con AND di Cin e l'XOR di A e B)Un full adder può essere implementato usando diverse combinazioni di porte logiche. Una implementazione comune utilizza due half adder e una porta OR. Il primo half adder somma A
e B
, generando una somma parziale e un carry. Il secondo half adder somma la somma parziale con Cin
, producendo la somma finale. Il carry finale (Cout
) è ottenuto con la porta OR che combina i carry dei due half adder.
I full adder sono componenti fondamentali in molti circuiti digitali, tra cui:
Cout
di un full adder è connesso al Cin
dell'adder successivo.