第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
         の真理値表
論理変数
 (入力)
 | 
論理関数
 (出力)
 | 
| 
A
 | 
B
 | 
Z
 | 
0
 0
 1
 1
 | 
0
 1
 0
 1
 | 
1
 1
 0
 1
 | 
   - この真理値表の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]に進む