はじめに
論理関数を論理回路で表す問題は、様々な大学の院試での頻出分野となります。
AND、OR、NOTなどの素子が与えられていれば、論理式をそのまま回路に落とし込むだけで良いですが、院試レベルとなるとそうもいきません。
NANDのみ、NORのみの使用で表記を求められることが多いです。
本記事では、解法の定石をまとめました。問題形式で学べますので、是非知識のチェックに役立てて下されば幸いです。
解法の手順
- 与えられた論理式を確認し、NAND\(\overline{xy}\)、NOR\(\overline{x+y}\)で表せない項を確認する。(AND、ORなど)
- ドモルガン律を用いて、論理式をNAND/NORのみで表せる形に変形していく。
- NANDのみで表す場合:
NOT→NAND:\(\overline{x}=\overline{xx}\)
AND→NAND:\(xy=\overline{\overline{xy}・\overline{xy}}\)
OR→NAND:\(x+y=\overline{\overline{xx}・\overline{yy}}\) - NORのみで表す場合:
NOT→NOR:\(\overline{x}=\overline{x+x}\)
AND→NOR:\(xy=\overline{\overline{x+x}+\overline{y+y}}\)
OR→NOR:\(\overline{\overline{x+y}+\overline{x+y}}\)
- NANDのみで表す場合:
下記の図で表すことができます。
ドモルガン律の活用がキーになります。
以前の記事で説明したように、NAND/NORは完全系です。(任意の論理関数をNAND/NORのみで表すことができます)
NANDはそのままの形だとOR回路を持たないですが、ドモルガン律を用いることで、+演算子が出てきてORを表現できます。
NORは逆です。AND回路を持たないですが、同じくドモルガン律を用いることで、・AND演算子が出てきます。
このように、NAND/NORはNOT、AND、ORを持ちます。
なお、チェックボックスの変形には、べき等律\(x+x=x,x・x=x\)を用いています。
例えば、OR→NANDの変換の途中式は下記のようになります。
\begin{aligned}NOR(x,y)&=x+y\\ &=\overline{\overline{x+y}}\\ &=\overline{\overline{x}\cdot \overline{y}} \\ &=\overline{\overline{x・x}\cdot \overline{y・y}} \\ &=NAND(NAND(x,x),NAND(y,y)) \end{aligned}
この性質を用いて、与えられた問いを解答していきます。
解答例
(1)\(f_{1}=xy+yz+xz\) (2入力NANDのみを用いて表せ。)
x=NOT(NOT(x))の関係を利用し、下記のように式変形する。
\begin{aligned}f_{1} &= xy+yz+xz \\ &= \overline{\overline{\overline{\overline{xy+yz+xz}}}} \\ &= \overline{\overline{\overline{\overline{xy}・\overline{yz}・\overline{xz}}}} \\ &=\overline{\overline{(\overline{\overline{xy}・\overline{yz}})+\overline{\overline{xz}}}} \\ &= \overline{(\overline{\overline{\overline{xy}・\overline{yz}}})・\overline{\overline{\overline{xz}}}} \\&=\overline{(\overline{\overline{\overline{xy}・\overline{yz}}})・\overline{xz}} \end{aligned}
(2)式の最後より、2入力NANDを6個使用し、下記の論理回路を実装できる。
(2)\(f_{2}=x+y\overline{z}\) (2入力NORのみを用いて示せ。)
同じく、x=NOT(NOT(x))の関係を利用し、下記のように式変形する。
\begin{aligned}f_{2}&=x+y\overline{z} \\ &= \overline{\overline{x+y\overline{z}}} \\ &= \overline{\overline{x}・(\overline{y\overline{z}})} \\ &= \overline{\overline{x}・(\overline{\overline{\overline{y\overline{z}}}})} \\ &= \overline{\overline{x}・(\overline{\overline{\overline{y}+z}})} \\ &=x+(\overline{\overline{y}+z}) \\ &= \overline{\overline{x+(\overline{\overline{y}+z}) }} \\ &= \overline{\overline{x+(\overline{\overline{y+y}+z}) }}\end{aligned}
このように、NOR回路4つを用いて下記の論理回路を実装できる。
最後に
院試で論理回路を出題するときは、下記の順番で問われることが多いです。
- 問題文で与えられた論理関数に対する真理値表を作成する。
- カルノー図などを用い、論理関数の積和最簡形を求める。
- 論理関数を論理回路として表す。 ←本記事の紹介部分
本問の内容まで理解できれば、完答を狙うことができます。
得点源にするため、是非内容をマスターしましょう。