全加算器をANDとORのみであらわす

全加算器をANDとORのみであらわす

どうもこんにちは塚本です。

今日のブログは全加算器についてのものです。

普通に全加算器を作っても面白くないので、
OR回路とAND回路のみで全加算器を構成してみようと思います。

全加算器とは

全加算器(Full Adder、FA)は代表的な組み合わせ回路の一つで、
桁上げが考慮された加算器になります。

全加算器の真理値表

A B Cin Cout S
0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 0 0 0 1
1 0 1 1 0
1 1 0 1 0
1 1 1 1 1

入力をそれぞれA,B 桁上げ入力がCin、
出力をS、桁上げ出力をCoutとすると以上の真理値表となります。

全加算器の論理式

S=ABCin, Cout=AB+BCin+CinA(1)

また、論理式は一般的に以上の(1)式になります。
数学が好きな方からすると、美しい形をしていることが分かってくれるとおもいます。

半加算器とORゲートを用いた全加算器

そして、図のように、
Full AdderはHalf Adder2つとORゲートで実装可能です。

これが覚えづらいって方は、以下の図のように
各出力をイメージするとわかりやすいかと思います。

全加算器の論理式(生)

普通なら、これで終わりなんですが
今日のテーマは全加算器をわざわざORとANDのみであらわそう!
ということなので、式を主加法標準形に直していきます。

ブール代数の公理や定理を使って、式変形してもいいんですが
TeXを書くのがめんどくさいので、真理値表からそのまま論理式を出します。

S=A¯B¯Cin+A¯BCin¯+AB¯Cin¯+ABCin , Cout=A¯BCin+AB¯Cin+ABCin¯+ABC

こちらが真理値表から取り出した生の論理式です。
ちょっとこのままだと、Coutの入力が多いのですこし減らしときます。

このように、カルノー図を使うと、Coutを簡単化できます。

したがって、最終的な論理式はこちらになります。

S=A¯B¯Cin+A¯BCin¯+AB¯Cin¯+ABCin , Cout=AB+BCin+CinA(1)

全加算器の回路図

途中から元気がなくなってきて、適当になりましたが
全加算器をANDとORであらわすとこんな感じになります。

まとめ

もう疲れました。こんなネタを思いつかなければよかったです。
式のチェックもしていません orz