第4章 論理関数(その2)
本章では、1つの真理値表に対応する論理式が無数にあることを示します。
次に、それらの式を変形する規則をまとめたブール代数について学習します。
目次
4.1 論理式の変形
4.2 ブール代数の基本公式
4.3 完全系について
4.4 演習問題

4.1 論理式の変形
前章では、基本的な7つの論理関数について学びました。
それらを入力数で分類すると、次のようになります。
   ・ 1入力    否定
   ・ 主に2入力 排他的論理和、一致
   ・ 2入力以上 論理和、論理積、否定論理和、否定論理積

それでは、2つの入力をもつ関数を分類してみましょう。
はじめに2入力関数の真理値表を作成します。
下表の左側に結果を示します。表を見やすくするため、 入力 A, B や関数の値を横方向 に書いている点に注意して下さい。
   (これまでの真理値表では縦書きでした。)
この入出力の関係は、全体で2の4乗、すなわち 16通り 存在します。
       2入力論理関数の分類
表の右側に、代表的な論理関数(論理式)とその名称を示します。
重要なことは、論理式(論理回路)の表し方は必ずしも1通りではないという点です。
すなわち、同じ論理を表す回路(式)は無数にあり、工学の観点からすれば、
それらの中から最もシンプルな回路(すなわち論理式)を求めることが重要になります。
    (その手法については、第5章で学習します。)
例として、例えば上図の Z13  について調べてみましょう。
以下に、この関数の真理値表を示します。
Z13 の真理値表
論理変数
(入力)
論理関数
(出力)









この真理値表のVenn図は下の通りです。


上の論理式 Z13 は以下に示すように、2つの領域の論理和として解釈することができます。


ここで真理値表の出力の1に着目して下さい。
この表で、出力が 1 となるのは、
(A = B = 0) または (A = 0, B = 1) または(A = B = 1)
の3つの場合です。
この関係をVenn図で表わしてみましょう

これより、Z13 は上の3領域の論理和 (OR) により表せることがわかります。
すなわち、以下の式が成立します。


次に、上の図の左と中央の2領域を1つにまとめます。
この場合のVenn図は次のようになります。

これより、以下の式が成立します。


それでは、中央と右の2領域を1つにまとめると、どのようになるでしょうか?
この場合のVenn図は次のようになります。

これより、以下の式が成立します。


もう一度上の真理値表に戻ります。
今度は出力の1ではなく、0に着目します。
その領域は、次のようになります。

この領域を表す関数の否定をとれば、もとの関数そのものを表すことになります。
これより、以下の論理式が導かれます。


このように、一つの真理値から無数の論理関数が導き出せることがわかります。
次に、式@の回路と、式Aの回路をMIL記号を用いて表現してみましょう。
はじめに式@の回路です。

次に式Aの回路です。

式@の回路の遅延は2段で、必要な論理素子はNOTとORが各1個です。
ところが式Aの回路の遅延は3段となり、素子はNOTが2個、ANDが2個、ORが1個です。
これらは、同じ論理を実現するのですが、@の方が高速で素子数も2/5(40%)と少なくなっています。
論理回路を設計するとき、どちらの回路を選ぶべきか、答は明らかです。

4.2 ブール代数の基本公式
真理値表はただ1通りの表現しかないのに対し、論理回路や論理式の表し方は1通りではなく、 様々な表現を取り得ます。
ブールはその式を変形する規則について研究し、 これ以上簡単にはならない8つの公式で表すことができることを最初に明らかにしました。
以下に、その規則を示します。

        表 ブール代数の規則

直観的に正しいといえる規則がほとんどですが、中には少し疑問が残るものもあります。
例えば、分配則やド・モルガンの定理です。
これについて、以下検証してみましょう。

分配則のチェック
(1) A・(B+C)=A・B+A・C

これについて、以下検証してみましょう。
左辺はVenn図を用いると、以下のようになります。

次に右辺は次のようになります。

これより、上式の正しいことが証明できました。

(2) A+(B・C)=(A+B)・(A+C)
左辺はVenn図を用いると、以下のようになります。

次に右辺は次のようになります。

これより、上式の正しいことが証明でき、分配則の正しいことが明らかになりました。

ド・モルガンの定理のチェック

(1)

下にVenn図を示します。これより、上式が正しいことが明らかです。

(2)

以下のVenn図より、この式の正しいことがわかります。


4.3 完全系について
任意の論理関数は、 NOR(否定論理和) 、もしくは NAND(否定論理積) だけで構成することができます。
このとき、NOR(もしくはNAND)は 完全系を構成する という表現を用います。
以下、いくつかの実例により、このことが正しいかどうか確認してみましょう。

4.3.1 NOT→ NOR
はじめに NOT を NORのみ で表現します。
NOT回路はMIL記号で表すと、以下のようになります。

NOR回路の入力を1つにまとめると、NOTと同じ機能になります。
  (真理値表で確認してみてください。)

下の図のように、2つの入力のうち1方を 0 に固定しても同じ論理となります。


4.3.2 NOT→ NAND
次に NOT を NANDのみで表現してみましょう。
NAND回路の入力を1つにまとめると、NOTと同じ機能になります。
  (真理値表で確認してみてください。)

下の図のように、2つの入力のうち1方を 1 に固定しても同じ論理となります。


4.3.3 OR→ NOR
今度は OR を NORのみで表現してみましょう。
はじめにOR(2入力)回路を示します。

次に、その出力にNOTを2つ追加します。
(その追加により論理関数自体は変化しないことは明らかです)

次に、ORと1段目のNOT回路を統合し、2段目のNOTをNORで表します。

これで、ORが2つのNORにより表現できました。

4.3.4 OR→ NAND
次に同じ OR を NAND のみで表してみましょう。
4.3.3 の場合と同様に、出力に NOT を2つ追加します。

次に、ド・モルガンの定理を用い、OR と1段目の NOT 回路を変更します。

ここで、2つのNOTを NAND で表し、AND とその出力の NOT を1つのNANDに変換します。

これで、OR が3つの NAND により表現できました。

4.3.5 AND → NAND
今度は、AND を NANDのみで表現してみましょう。
はじめにAND(2入力)回路を示します。

これまで場合と同様に、出力に NOT を2つ追加します。

次に、AND と1段目のNOT回路を統合し、2段目のNOTをNANDで表します。


4.3.6 AND→ NOR
次に ANDを NORのみで表現してみましょう。
4.3.5 の場合と同様に、出力に NOT を2つ追加します。

次に、ド・モルガンの定理を用い、AND と1段目の NOT回路を変換します。

ここで、2つのNOTを NOR で表し、OR とその出力の NOT を1つのNORに変換します。

これで、ANDが3つのNORにより表現できました。
以上、NOR、もしくはNAND回路があれば、どのような論理回路でも設計できる ことが、わかったと思います。
このような、回路の変換は実際の設計で用いることがありますので、十分理解してください。

4.4 演習問題
本章では、ブール代数について学習しました。
これらの内容を十分理解するためには、問題を解くのが効果的です。
次の演習問題(全7問)を解き、十分理解してください。

演習問題[4]に進む