「論理回路とその設計」 演習問題【3】
A.4人(A,B,C,D) の投票者が可"1"か否"0"を各1票ずつ投票する.ただし,Aの1票は5票分の重み(Aが可"1"なら5票が可,否"0"なら5票が否),同様にBの1票は3票分の重み,Cの1票は2票分の重み,Dの1票は1票分の重み,がそれぞれあるとする(したがって,4人の総投票数はのべ11票).
この投票結果(票決で可"1"か否"0"の1ビット)を判定する多数決関数を組み合わせ論理回路として実現したい.次の(1)〜(6)の各問に答えよ.なお,投票に際しては棄権や白票は無いものとする.
(1) のべ11票分の投票のうち,可が6票以上の場合の票決を可"1",5票以下の場合の票決を否"0"とする多数決関数をf
(A, B, C, D)とする.このとき,
A, B, C, D と f の論理関係を真理値表として示せ.(下記の表を埋めよ.)
(2) (1)で求めた真理値表をもとに,カルノー図を用いて,A,
B, C, D を論理変数とする論理関数 f を最簡積和形論理式として求めよ.(下記のカルノー図上にマップし,それを用いて求めよ.)
(3) (2)で求めた積和形論理関数 f (A,B,C,D)
を,A, B, C, D を入力,f を出力とする,AND/OR回路(AND/OR/NOTの3種類の基本論理ゲートだけから構成される回路;ただし,ANDゲートとORゲートは3以上の多入力も許す)として示せ.
(4) (3)で求めたAND/OR回路は時間最適化された回路といえる.ただし,NOTゲートはゲート総数,段数のいずれにもカウントしない,また,1個のn入力基本論理ゲートは(n−1)個,
段の2入力基本論理ゲートとして換算する(
,
は切り上げ関数,
),ものとする.それでは,このAND/OR回路よりもさらに空間最適化された(ゲートの総数がより少ない)AND/OR回路はあるか?
もし,あるのなら,(2)で求めた論理式を変形することによって求め,その論理式とそのAND/OR回路を示せ.ないのなら,その理由を示せ.
(5) 今度は,可が7票以上の場合の票決を可"1",4票以下の場合の票決を否"0",5票または6票の場合の票決をドントケア"−"とする多数決関数をg
(A, B, C, D)とする.このとき, A,
B, C, D と g の論理関係を真理値表として示せ.(下記の表を埋めよ.)
(6) (2)と同様にして,論理関数g を最簡積和形論理式として求めよ.(下記のカルノー図上にマップし,それを用いて求めよ.)
B.4個のDフリップフロップ(D-FF)を用いて,図のような三叉路の信号機A,Bを制御する(同期式)順序回路を作ろう.この三叉路は,道路X(図の方向への一方通行)と道路Y,Z(いずれも双方通行可)とが交差している.従って,信号機Aは道路Yのa地点での信号(停止×/右折→/左折←)を,信号機Bは道路Zのb地点での信号(停止×/右折→/左折←)を,それぞれ指示する.信号機A,Bはそれぞれ3状態(停止×/右折→/左折←)を持つので表1に示すようにそれぞれ2ビット(A2,A1及びB2,B1の計4ビット)のFFで信号機A,Bの指示状態を表すことにする.また,表2の通り,信号機A,Bの組み合わせは{1}〜{7}(注意:"{1}"は図では「丸囲みの1」.以下同様)の7状態で,これ以外の組み合わせはすべてドントケア(組み合わせ禁止)“−”である.信号機A,Bは{1}〜{7}の7状態を,この順{1}→{2}→{3}→{4}→{5}→{6}→{7}→{1}→…(以下同じ繰り返し)で繰り返す.信号機Aの信号状態(出力)A2,A1を示すD-FFのD入力をそれぞれDA2
, DA1,信号機Bの信号状態(出力)B2,B1を示すD-FFのD入力をそれぞれDB2
, DB1とする
(1) まず,表4左側の状態遷移表を埋めて完成せよ.
(2) 次に,表3のD-FFの入力要求表(Qから Q+
へ状態遷移させるために必要なD入力信号の論理値を示す表)を用いて,(1)で作った表4の状態遷移表の右側に,4個のD-FFのD入力DA2
, DA1 , DB2
, DB1 の拡大入力要求表を連結・完成せよ.
(3) (2)で作った拡大入力要求表を下記のカルノー図にマップすることによって,各D-FFのD入力
DA2 , DA1 ,
DB2 , DB1
すべてについて,各FFの出力 A2 A1
B2 B1 びその否定出力
を論理変数とする最簡積和形論理式として示せ.
(4) (3)で求めた4個の論理式に対応するD入力信号の論理回路のうち,空間規模(基本論理ゲートの総数,3入力以上のゲートは問題Aで注釈した換算方法によって2入力ゲート個数に換算するものとする)がさらに小さくなるものがあるか?
あるなら,それを論理式の変形によって示せ.ないなら,その理由を示せ.