全加算器の回路図の作り方を徹底解説!

全加算器回路図編

こんにちは!krです!

今回は「全加算器の回路図」について詳しく解説していこうと思います。初学者でも簡単に読めるように書きましたので、最後まで読んで頂けれる嬉しいです(*’ω’*)

初学者におすすめの論理回路の参考書3選

半加算器と全加算器の出力の論理式

まずは、回路図を作るために必要な論理式について整理していきましょう。

先生
先生

全加算器には一般的に半加算器を使います。なので、全加算器の回路図の構成には半加算器の出力の論理式が必要になるのです。

半加算器の出力の論理式

まず、半加算器の真理値表は次のようになります。

この表から、半加算器の論理式は次のように表すことが出来ます。

$$S=A\bar{B}+\bar{A}B=A \oplus B$$

$$C=AB$$

この式が今回非常に重要になるので、ちゃんと理解しておいてください。

全加算器の出力の論理式

全加算器の真理値表は次のようになります。

この表から、半加算器の論理式は次のように表すことが出来ます。

$$S=\bar{A}\bar{B}C_{i}+\bar{A}B\bar{C}+A\bar{B}\bar{C}+ABC$$

$$C_{o}=\bar{A}BC_{i}+A\bar{B}C_{i}+AB\bar{C_{i}}+ABC_{i}=AB+BC_{i}+C_{i}A$$

先生
先生

しかし、今回この式はあんまり使いません

くるる
くるる

どういうことっすか?

全加算器の論理式は半加算器の論理式で表すことが出来るのです!

先生
先生

全加算器の論理式を半加算器の論理式で表す

全加算器の出力の論理式は

$$S=\bar{A}\bar{B}C_{i}+\bar{A}B\bar{C}+A\bar{B}\bar{C}+ABC$$

$$C_{o}=\bar{A}BC_{i}+A\bar{B}C_{i}+AB\bar{C_{i}}+ABC_{i}=AB+BC_{i}+C_{i}A$$

と表せたわけですが、一旦これは忘れましょう。この記事ではこれ以降一切この式は使いません。

というのも、全加算器を半加算器で作るにはこの論理式では不都合なのです。

ポンタ
ポンタ

ではどうやって全加算器の回路図を作るのですか?

出力$S$、$C_{o}$の式を別の式で表せることができないか考えます。

先生
先生

$S$の論理式

さて、全加算器の$S$について考えるのですが、そもそもこの$S$は「入力$A$, $B$, $C_{i}$の和」でした。

和$S$は

・$A$, $B$, $C$のどれか1つだけが「1」

・$A$, $B$, $C$の全てが「1」

のときに$S=1$となります。ということは、$S$は排他的論理和を使い、次のように表せます。

$$S=(A \oplus B) \oplus C_{i}$$

くるる
くるる

$A \oplus B$ってどこかで見た気がするっす…

半加算器の$S$の式と同じなんです!

先生
先生

$C_{o}$の論理式

次に$C_{o}$について考えましょう。$C_{o}$は元々「入力$A$, $B$, $C_{i}$の和の桁上がり」でした。

桁上がりは「$A$, $B$, $C_{i}$のどれか2つ以上が「1」のとき」に起こります。

これは言い換えると、

・$A=1, B=1$ かつ $C_{o}=0$ or $1$のとき

・$A \neq B$ かつ $C_{o}=1$のとき

という2パターンにおいて、$C_{o}=1$になるということです。

したがって、$C_{o}$は次のような式になると考えられそうです。

$$C_{o}=AB+(A \oplus B)C_{i}$$

ポンタ
ポンタ

$AB$ってどこかで見たような…

半加算器の$C$の式と同じなんです!

先生
先生

$S$の論理式と$C_{o}$の論理式をまとめると

全加算器の出力の論理式は

$$S=(A \oplus B) \oplus C_{i}$$

$$C_{o}=AB+(A \oplus B)C_{i}$$

と表せることが分かりました。ここで、半加算器の出力の論理式は

$$S=A \oplus B$$

$$C=AB$$

と表せることに注目すると、次のようなことが言えます。

MEMO
半加算器の出力を使えば、全加算器を構成できる!

それでは実際に全加算器の回路を構成していきましょう!

回路を構成しよう

まずは、半加算器の回路図から確認していきましょう。

半加算器の回路図

半加算器の回路図は次の通りです。

$S=A \oplus B$, $C=AB$であるか確認しましょう。

先生
先生

そして、この半加算器を次のような図で表すことにします。

注意

$A$, $B$は入力端子$A$, $B$ということであり、$A$, $B$を入力しているわけではありません

全加算器の回路図の構成

さて、今回の目的である「全加算器の回路図」を考えていきましょう。

先に答えを言っておくと、次図のようになります。

この図の$S$と$C_{o}$が

$$S=(A \oplus B) \oplus C_{i}$$

$$C_{o}=AB+(A \oplus B)C_{i}$$

となるように回路を作っていくわけです。

ステップ1 半加算器の回路図から始める

まずは、先ほどの半加算器の回路図に注目しましょう。

半加算器の入力端子に$A$,$B$を入力すると、出力端子$S$から$A \oplus B$、$C_{o}$から$AB$が出力されます。

入力端子$A, B$と入力$A, B$は全く別のものであることに注意しましょう!

先生
先生

ステップ2 半加算器の出力$S$を別の半加算器の入力にする

次に、出力$S$を別の半加算器の入力端子$B$に入力します。見やすい図にするために入力端子$B$に入力しているだけで、$A$に入力しても大丈夫です。

ステップ3 $C_{i}$を2つ目の半加算器の入力$A$に入力

足し算するうちの残っていた$C_{i}$を2つ目の半加算器の入力$A$に入力します。

さて、ここで、2つ目の半加算器の出力$S$と$C_{o}$の論理式はどうなるでしょうか?

・半加算器の出力は$S=A \oplus B$, $C=AB$で表される

・今は$A=C_{i}, B=A \oplus B$

ということより、

$$S=A \oplus B = C_{i} \oplus (A \oplus B)=(A \oplus B) \oplus C_{i}$$

$$C = AB = C_{i}(A \oplus B) = (A \oplus B)C_{i}$$

となることが分かります!

つまり、図で書くとこんな感じになります。

2つ目の半加算器の出力$S$が「全加算器の出力$S$の論理式」と同じであることをチェック!

先生
先生

ステップ4 2つの半加算器の出力$C_{o}$をORで繋ぐ

2つの半加算器の出力$C_{o}$をORで繋ぐと、以下のようになります。

そして、$AB+(A \oplus B)C_{i}$は「全加算器の出力$C_{o}$の論理式」に他なりません。

したがって、

$$S=(A \oplus B) \oplus C_{i}$$

$$C_{o}=AB+(A \oplus B)C_{i}$$

とおくと、全加算器の回路図は次図のようになります!

くるる
くるる

長かったっす…

お疲れ様でした!

先生
先生
半加算器真理値表
全加算器出力の論理式
おすすめの参考書

初学者におすすめな参考書を調査してまとめてみました。良かったら参考にしてください。

初学者におすすめの論理回路の参考書3選
PHP Code Snippets Powered By : XYZScripts.com