半加算器は2ビットを加算します。全加算器は入力キャリーCinも加えます。下図は半加算器2個とORゲートによる構成です。
半加算器2個とORによる全加算器
段階1:A+B
段階2:S1+Cin
結果:Cout Sum
| A | B | Cin | S1 | C1 | C2 | Sum | Cout | 10進数 |
|---|
A、B、Cinを押すと0/1が切り替わります。1の配線はオレンジになり、真理値表の対応行が強調されます。
半加算器は和と桁上がりを求める
2入力の結果は00、01、10のいずれかです。和Sは入力が異なると1なのでXOR、キャリーCは両方1のときだけ1なのでANDです。
S = A ⊕ B
C = A · B
半加算器には入力キャリーがありません。多桁回路ではキャリーを必要としない最下位桁に使えます。
全加算器は入力キャリーも加える
A、B、Cinは同じ桁の値です。半加算器1でS1/C1を求め、半加算器2でS1とCinを加えてSum/C2を求めます。
どちらかの段階で桁上がりがあれば次へ1を渡すため、Cout=C1 OR C2です。C1=1ならS1=0なので、C1とC2が同時に1にはなりません。
図の各ブロック内のA/Bは端子名です。半加算器2のAにはCin、BにはS1を接続しています。