「論理回路とその設計」 演習問題【5】
[A] 図は2進数4ビットの入力 W X Y Z ( W が最上位で Z が最下位,この順で上位から下位へ)を10進数1桁や16進数1桁で表示する7セグメント表示器である.この表示器の7個のセグメントのうち真ん中の a セグメント(網掛け部分)出力 A の表示回路を組み合わせ回路として設計してみよう.次の問すべてに答えよ.図には,4ビット入力に対応する7セグメントの各表示状態(黒色がオン"1",白色がオフ"0")も示してある.
(1) まず,4ビットの2進数を1桁の16進数に変換して表示する回路を設計する.下記の真理値表の A 列を埋めよ.
(2) (1)で埋めた真理値表の A 列を下記のカルノー図に写し,a セグメントの出力 A を最簡積和形論理式で表せ.また,この論理式が表す論理回路の空間規模はいくらか示せ.空間規模は「2入力基本論理素子(AND素子とOR素子)の総数」で表すものとし,NOT素子は総数に含めないものとする.
(3) (2)で求めた積和形論理式を式変形することによって,対応する論理回路の空間規模が(2)の論理回路よりもさらに小さい(少ない)論理式を求めよ.また,この式を表す論理回路の空間規模はいくらか示せ.
(4) 次に,1桁の10進数に変換して表示する回路を設計する.下記の真理値表の A' 列を埋めよ.ただし,入力 WXYZ = 1010, 1011, 1100, 1101, 1110, 1111 には対応する10進数がないので,これらの入力に対する A' 出力はドントケア("−"で表す)である.
(5) (4)で埋めた真理値表の A'列を下記のカルノー図に写し,a セグメントの出力 A'を最簡積和形論理式で表せ. なお,最簡積和形論理式が複数ある場合はそれらすべてを示せ. また,これらの論理式が表す論理回路の空間規模はいくらか示せ.
(6) (3)と同様にして,(5)で求めた積和形論理式を式変形することによって,対応する論理回路の空間規模が(5)の論理回路よりもさらに小さい(少ない)論理式を求めよ.(5)で求めた最簡積和形論理式が複数ある場合はいずれか1つを選び変形せよ.また,この論理回路の空間規模はいくらか示せ.
(7) (6)で示した論理式に対応する論理回路(AND/OR回路)を2入力基本論理素子で構成し,その回路図を示せ,さらに,それを2入力NAND素子だけで構成する論理回路(NAND回路)に変換し,その回路図を示せ.いずれの回路図とも,NOT素子はAND, OR, NAND素子に変換せずにそのまま使うこと.また,このNAND回路は何個(NOT素子個数も含めて)のNAND素子で構成できるか示せ.
[B] 1ビットの入力をビットタイム(クロック)ごとにチェックし,"0"が2回以上連続して入力された直後に"1"が入力されたときと, "1"が2回以上連続して入力された直後に"0"が入力されたときとの,2つの場合にのみ"1"を出力し,その他の場合には"0"を出力するビット系列チェッカを「同期式順序回路」として構成してみよう.次の問すべてに答えよ.ただし,入力,状態,出力及びそれぞれの制約条件を次のように定めておく. また,ビットタイムごとに,入力,出力,状態遷移がチェックされる(定まる)とする.たとえば," 0 1 1 1 0 1 0 0 1 1 0 0 " という入力系列に対しては," 0 0 0 0 1 0 0 0 1 0 1 0 " という系列(入力系列の下線部に続く太字の入力時に"1")が出力される.
- 入力は1ビットで I とし,ビットタイムごとに定まる(チェックされる).
- 出力は1ビットで O とし,ビットタイムごとの現状態 Q と入力 I によってビットタイムごとに定まる.
- 次状態 Q+ は,ビットタイムごとの現状態 Q と入力 I によってビットタイムごとに定まる(状態遷移する).
- 状態は入力履歴で表し,「そのビットタイムの直前までに2回以上連続して"0"が入力された状態」w ;「直前に"1"が入力され"0"から"1"になった直後の状態」x ;「直前に"0"が入力され"1"から"0"になった直後の状態」y;「直前までに2回以上連続して"1"が入力された状態」z;とラベル付けた4状態とする.
- 状態はQ1 Q0 の2個(ビット)のフリップフロップ(FF)で表し,w:Q1Q0="00";x:Q1Q0="01";y:Q1Q0="10";z:Q1Q0="11";とする.
- 初期状態はドントケアで,第1ビットタイムの入力が"0"ならば状態 y が,"1"ならば状態 x が,それぞれ第1ビットタイムの状態として開始されるものとする.
(1) 入力による4状態間の遷移と出力を下の状態遷移図で表した.この状態遷移図の空欄を埋めて完成せよ.ただし,空欄は下記のように状態(ノード)間に引いた矢印が示す状態遷移時の 「入力 I /出力 O」 (いずれも論理定数の"0"か"1")をその矢印のラベルとして示すものとする.たとえば,1/0,0/0 など.
(2) (1)を写すことによって,下の状態遷移表のQ+ 列を埋めて完成せよ.ただし,この状態遷移表の各欄は,「次状態(ラベル)/出力(定数)」として示せ.たとえば,w/1,z/0 など.
(3) (2)のラベルを定数に変換し,下の定数のみから成る状態遷移表の Q<+(これはラベル), Q1+ Q0+ O の各列を埋めて完成せよ.
(4) (3)を下の対応するカルノー図に写し,出力 O の最簡積和形論理式を求めよ.
(5) まず,Q1 Q0 にD-FFを使用する論理回路を作ろう.Q1 Q0 の各D入力である D1 D0 として,(3)の状態遷移表の右側の D1 D0 の各列を埋めて,拡大入力要求表を作れ.(D-FFの入力要求表は右上参照−省略)
(6) (5)を下の対応するカルノー図に写し,D1 D0 の各最簡積和形論理式を求めよ.
(7) 次に,Q1 Q0 にJK-FFを使用する論理回路を作ろう.Q1 Q0 の各JK入力である J1 K1 及び J0 K0 として,(3)の状態遷移表の右側の J1 K1 J0 K0 の各列を完成して,拡大入力要求表を作れ. (JK-FFの入力要求表は右上参照−省略)
(8) (7)を下の対応するカルノー図に写し,J1 K1 J0 K0 の各最簡積和形論理式を求めよ.
(9) D-FFで作った論理回路(6)とJK-FFで作った論理回路(8)とを空間規模(基本論理素子総数)とFF能力との観点から比較した所,「(6)で十分だ」との結論を得た.「なぜ,このような結論になったか?」について,「JK-FFはD-FFの機能を含み持ち能力は上であるが,FFそのものを構成する論理素子総数は多い」点に注意して説明せよ.