デジタル回路の学習では、半加算器(Half Adder)と全加算器(Full Adder)の関係を理解することが重要です。特に「全加算器は半加算器を2つ使って構成できることを論理回路で示せ」という問題では、それぞれの入力と出力の関係を整理することがポイントになります。この記事では、半加算器の基本から、2つの半加算器を利用して全加算器を作る方法までをわかりやすく解説します。
半加算器と全加算器の違い
半加算器とは、2つの1ビットの2進数を加算する回路です。入力はAとBの2つで、出力として和(Sum)と桁上げ(Carry)を出します。
半加算器の論理式は以下のようになります。
和:S = A XOR B
桁上げ:C = A AND B
一方、全加算器は3つの入力を持つ加算回路です。入力はA、B、下位ビットからの桁上げCin(Carry in)の3つで、出力として和Sと桁上げCout(Carry out)を出します。
つまり、半加算器は桁上げ入力を考えない回路、全加算器は前段からの桁上げも含めて計算できる回路という違いがあります。
全加算器の論理式を確認する
全加算器では3つの入力A、B、Cinを足します。まず和の出力は3つの入力のXORになります。
S = A XOR B XOR Cin
桁上げ出力については、3つの入力のうち2つ以上が1の場合に1になります。
Cout = AB + Cin(A XOR B)
この式を半加算器2つの組み合わせで表現することができます。
半加算器を2つ使った全加算器の構成方法
全加算器は、最初の半加算器と2つ目の半加算器を直列につなぐことで作れます。
まず、1つ目の半加算器に入力AとBを入れます。
1段目の半加算器の出力は以下になります。
| 出力 | 内容 |
|---|---|
| S1 | A XOR B |
| C1 | A AND B |
次に、1つ目の半加算器で得られた和S1と、入力Cinを2つ目の半加算器へ入力します。
2つ目の半加算器の出力は以下になります。
| 出力 | 内容 |
|---|---|
| S | S1 XOR Cin |
| C2 | S1 AND Cin |
最後に、2つの半加算器から出た桁上げC1とC2をOR回路でまとめます。
Cout = C1 OR C2
この構成によって、半加算器2個とOR回路1個で全加算器を実現できます。
論理回路図を書くときの考え方
問題で論理回路を用いて示す場合は、いきなり全加算器の回路を書くのではなく、半加算器のブロックを2つ配置する考え方をすると理解しやすくなります。
回路の流れは以下のようになります。
- AとBを半加算器1へ入力する
- 半加算器1の和出力S1とCinを半加算器2へ入力する
- 半加算器1と半加算器2の桁上げ出力をORする
この形で書けば、全加算器が半加算器2つから構成されていることを示すことができます。
真理値表で確認する
全加算器の動作を確認するには、真理値表を作成すると理解が深まります。
| A | B | Cin | S | Cout |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 0 | 1 | 1 | 0 |
| 0 | 1 | 1 | 0 | 1 |
| 1 | 1 | 1 | 1 | 1 |
半加算器2つを組み合わせた回路でも、この全加算器の真理値表と同じ結果になります。そのため、論理的に全加算器を実現できることが確認できます。
まとめ
全加算器は、半加算器2つとOR回路1つを組み合わせることで構成できます。
具体的には、1つ目の半加算器でAとBを加算し、その結果とCinを2つ目の半加算器で加算します。そして2つの桁上げ信号をORすることで最終的な桁上げ出力Coutを得ます。
この考え方は、コンピュータ内部の加算回路を理解するうえで基本となる重要な仕組みです。論理式、回路図、真理値表を対応させて覚えることで、同様の問題にも対応できるようになります。


コメント