本文へスキップ

技術士試験(情報工学部門)・情報技術者試験。ファーストマクロ。


Since 2016.4.19

平成20年度 技術士第一次試験問題【専門科目】

W−8

下記の論理回路の2つの入力INとGATEに選択肢のタイミングチャートに示す信号を与えたときに、OUTに出力される信号として最も適切なものを@〜Dの中から選べ。


正解

B


解説

三角の先に丸印がついている回路は 否定である。
長方形と楕円を組み合わせた図形の楕円の先に丸印がついている回路はNANDで入力値が両方とも1の場合に0となり、他のパターンはすべて1である。

問題では、論理回路はNANDが8個ある。
便宜上、左側の4個で構成される回路をとし、右側の4個で構成される回路をで表すこととする。(回路の出力信号は OUTn である。)

初期状態を (IN0, GATE0, OUT0) と表記し、の回路の出力信号の初期状態は不明であるため a0 とする。

初期状態は (0, 0, 0) であるから の回路の出力信号は
a1 = NAND(NAND(0, NOT(0)), NAND(a0, NAND(NOT(0), NOT(0)))) 、
の回路の出力信号は
OUT1 = NAND(NAND(a1, 0), NAND(0, NAND(0, NOT(a1))))
である。

従って、
a1 = NAND(NAND(0, NOT(0)), NAND(a0, NAND(NOT(0), NOT(0))))
= NAND(NAND(0, 1), NAND(a0, NAND(1, 1)))
= NAND(NAND(0, 1), NAND(a0, 0))
a1 が 0 でも 1 でも、NAND(a0, 0) = 1 だから、
NAND(NAND(0, 1), NAND(a0, 0))
= NAND(1, 1) = 0
OUT1
= NAND(NAND(a1, 0), NAND(0), NAND(0, NOT(a1))))
= NAND(NAND(0, 0), NAND(0, NAND(0, NOT(0))))
= NAND(NAND(0, 0), NAND(0, NAND(0, 1)))
= NAND(NAND(0, 0), NAND(0, 1))
= NAND(1, 1) = 0

この状態で IN = 1 となった時、すなわち (1, 0, 0) の時、
a2 = NAND(NAND(1, NOT(0)), NAND(a1, NAND(NOT(0), NOT(1))))
= NAND(NAND(1, 1), NAND(0, NAND(1, 0)))
= NAND(NAND(1, 1), NAND(0, 1))
= NAND(0, 1) = 1
OUT2
= NAND(NAND(a2, 0), NAND(0, NAND(0, NOT(a2))))
= NAND(NAND(1, 0), NAND(0, NAND(0, NOT(1))))
= NAND(NAND(1, 0), NAND(0, NAND(0, 0)))
= NAND(NAND(1, 0), NAND(0, 1))
= NAND(1, 1) = 0

次に GATE = 1 となった時、すなわち (1, 1, 0) の時、
a3 = NAND(NAND(1, NOT(1)), NAND(a2, NAND(NOT(1), NOT(1))))
= NAND(NAND(1, 0), NAND(1, NAND(0, 0)))
= NAND(NAND(1, 0), NAND(1, 1))
= NAND(1, 0) = 1
OUT3
= NAND(NAND(a3, 1), NAND(0, NAND(1, NOT(a3))))
= NAND(NAND(1, 1), NAND(0, NAND(1, NOT(1))))
= NAND(NAND(1, 1), NAND(0, NAND(1, 0)))
= NAND(NAND(1, 1), NAND(0, 1))
= NAND(0, 1) = 1

次に GATE = 0 となった時、すなわち (1, 0, 1) の時、
a4 = NAND(NAND(1, NOT(0)), NAND(a3, NAND(NOT(0), NOT(1))))
= NAND(NAND(1, 1), NAND(1, NAND(1, 0)))
= NAND(NAND(1, 1), NAND(1, 1))
= NAND(0, 0) = 1
OUT4
= NAND(NAND(a4, 0), NAND(1, NAND(0, NOT(a4))))
= NAND(NAND(1, 0), NAND(1, NAND(0, NOT(1))))
= NAND(NAND(1, 0), NAND(1, NAND(0, 0)))
= NAND(NAND(1, 0), NAND(1, 1))
= NAND(1, 0) = 1

次に IN = 0 となった時、すなわち (0, 0, 1) の時、
a5 = NAND(NAND(0, NOT(0)), NAND(a4, NAND(NOT(0), NOT(0))))
= NAND(NAND(0, 1), NAND(1, NAND(1, 1)))
= NAND(NAND(0, 1), NAND(1, 0))
= NAND(1, 1) = 0
OUT5
= NAND(NAND(a5, 0), NAND(1, NAND(0, NOT(a5))))
= NAND(NAND(0, 0), NAND(1, NAND(0, NOT(0))))
= NAND(NAND(0, 0), NAND(1, NAND(0, 1)))
= NAND(NAND(0, 0), NAND(1, 1))
= NAND(1, 0) = 1

次に GATE = 1 となった時、すなわち (0, 1, 1) の時、
a6 = NAND(NAND(0, NOT(1)), NAND(a5, NAND(NOT(1), NOT(0))))
= NAND(NAND(0, 0), NAND(0, NAND(0, 1)))
= NAND(NAND(0, 0), NAND(0, 1))
= NAND(1, 1) = 0
OUT6
= NAND(NAND(a6, 1), NAND(1, NAND(1, NOT(a6))))
= NAND(NAND(0, 1), NAND(1, NAND(1, NOT(0))))
= NAND(NAND(0, 1), NAND(1, NAND(1, 1)))
= NAND(NAND(0, 1), NAND(1, 0))
= NAND(1, 1) = 0

OUTに出力される信号として最も適切なものはBである。
かなり面倒な問題である。

W−7 目次 W−9