NANDのみ,NORのみを使用した論理回路の作成問題

問題

下記の論理関数を論理回路で表すことを考える。それぞれ2入力NANDのみ、NORのみを用いて示せ。

(1)f1=xy+yz+xz (2入力NANDのみ)
(2)f2=x+yz (2入力NORのみ)

はじめに

論理関数を論理回路で表す問題は、様々な大学の院試での頻出分野となります。

AND、OR、NOTなどの素子が与えられていれば、論理式をそのまま回路に落とし込むだけで良いですが、院試レベルとなるとそうもいきません。

NANDのみ、NORのみの使用で表記を求められることが多いです。

本記事では、解法の定石をまとめました。問題形式で学べますので、是非知識のチェックに役立てて下されば幸いです。

解法の手順

  1. 与えられた論理式を確認し、NANDxy、NORx+yで表せない項を確認する。(AND、ORなど)
  2. ドモルガン律を用いて、論理式をNAND/NORのみで表せる形に変形していく。
    • NANDのみで表す場合:
      NOT→NAND:x=xx
      AND→NAND:xy=xyxy
      OR→NAND:x+y=xxyy
    • NORのみで表す場合:
      NOT→NOR:x=x+x
      AND→NOR:xy=x+x+y+y
      OR→NOR:x+y+x+y

下記の図で表すことができます。

ドモルガン律の活用がキーになります。

以前の記事で説明したように、NAND/NORは完全系です。(任意の論理関数をNAND/NORのみで表すことができます)

NANDはそのままの形だとOR回路を持たないですが、ドモルガン律を用いることで、+演算子が出てきてORを表現できます。

NORは逆です。AND回路を持たないですが、同じくドモルガン律を用いることで、・AND演算子が出てきます。

このように、NAND/NORはNOT、AND、ORを持ちます。

なお、チェックボックスの変形には、べき等律x+x=x,xx=xを用いています。

例えば、OR→NANDの変換の途中式は下記のようになります。

(1)NOR(x,y)=x+y=x+y=xy=xxyy=NAND(NAND(x,x),NAND(y,y))

この性質を用いて、与えられた問いを解答していきます。

解答例

(1)f1=xy+yz+xz (2入力NANDのみを用いて表せ。)

x=NOT(NOT(x))の関係を利用し、下記のように式変形する。

(2)f1=xy+yz+xz=xy+yz+xz=xyyzxz=(xyyz)+xz=(xyyz)xz =(xyyz)xz

(2)式の最後より、2入力NANDを6個使用し、下記の論理回路を実装できる。

(2)f2=x+yz (2入力NORのみを用いて示せ。)

同じく、x=NOT(NOT(x))の関係を利用し、下記のように式変形する。

(3)f2=x+yz=x+yz=x(yz)=x(yz)=x(y+z)=x+(y+z)=x+(y+z)=x+(y+y+z)

このように、NOR回路4つを用いて下記の論理回路を実装できる。

最後に

院試で論理回路を出題するときは、下記の順番で問われることが多いです。

  1. 問題文で与えられた論理関数に対する真理値表を作成する。
  2. カルノー図などを用い、論理関数の積和最簡形を求める。
  3. 論理関数を論理回路として表す。 ←本記事の紹介部分

本問の内容まで理解できれば、完答を狙うことができます。

得点源にするため、是非内容をマスターしましょう。

タイトルとURLをコピーしました