デジタル論理

半加算器と全加算器

半加算器は2ビットを加算します。全加算器は入力キャリーCinも加えます。下図は半加算器2個とORゲートによる構成です。

半加算器2個とORによる全加算器

半加算器2個による全加算器 半加算器1がAとBからS1/C1を求め、半加算器2がS1とCinからSum/C2を求めます。C1 OR C2がCoutです。 Cin=0 A=0 B=0 A B S CO 半加算器1 0 + 0 = 0 A B S CO 半加算器2 0 + 0 = 0 S1=0 C1=0 C2=0 Sum=0 OR Cout=0
段階1:A+B
段階2:S1+Cin
結果:Cout Sum
ABCinS1C1C2SumCout10進数

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を接続しています。