「論理回路とその設計」 演習問題【17】

[A] 4人(A,B,C,D) の各投票者が可"1"か否"0"を投票し,この投票による可"1"票の総数を p (p=0,1,2,3,4) とする.このとき,fn (n=1,2,3,4) を,「 pn の場合はその値を"1",それ以外(pn)の場合はその値を"0"とする」(投票結果を定量的に判定する)論理関数(「しきい値関数」という)とする.この論理関数を「 A,B,C,D を入力, fn (n=1,2,3,4) を出力とする組み合わせ(論理)回路(4出力)」として最適化設計してみよう.次の(1)〜(6)の各問に答えなさい.なお,4人の投票に際しては棄権や白票は無いものとする. また,「4人(A,B,C,D) それぞれの投票(1票)は互いに独立してかつ論理的に等価値であるので,(1)〜(6)の解答となる論理式においては,A,B,C,D についてどんな相互入れ替え(交換)をしても,元の論理式と同一(同値)となる(交換則が成立する)はずである」(ヒント1)ことを解答のチェック(誤りの発見)に利用しなさい.

fn は「可"1"をカウント(計数)する,あるいは,可"1"だけに関わる」論理関数であるから,fn に関する解答としての論理式はいずれも肯定形リテラルのみで表せて,それらの論理式には否定形リテラルは出現しないはずである.(ヒント2;ただし,問題文中及び試験時には不明示) )

さて,任意の論理関数 f双対関数 f d は,f (の論理式あるいは論理関係)の「双対をとる」操作,すなわち,「(a) "・"⇔"+"という論理演算記号の入れ替え;(b) "0"⇔"1"という論理定数の入れ替え;の2操作」によって,得られる. この定義によると,実は,f1 f4 は互いに双対関数,すなわち,f1f4d ( f4f1d ),であることが自明である((1)の解答で確かめなさい).

[B] 図1は,ある製品に対して,(a) 「在庫」は3個まで(0,1,2,3個のいずれか)保管可能;(b) 「生産」は在庫+1個する(1個増やす)操作;(c) 「消費」は在庫−1個する(1個減らす)操作;を管理する「生産-消費操作モデル」である. ただし,(a)の制約の下で,在庫が3個の状態では,(b)の生産操作は無操作(在庫の増はなく3個を保持)となり,在庫が0個の状態では,(c)の消費操作は無操作(在庫の減はなく0個を保持)となる.この生産-消費操作モデルを,図2で示すような,「在庫管理装置」,すなわち,「2入力 C, P 及び2個(FF-X, FF-Y)の状態保持用フリップフロップ(FF)(FF-X,Yの状態及び出力は X, Y )を備え,ビットタイムごとに入力 C, P とFF状態(出力) X, Y を論理値("0"か"1")としてチェック(決定)する同期式順序(論理)回路」として実現(設計)してみよう.この順序回路(装置)では,「在庫(数)=0, 1, 2, 3 個(10進数表現)」を,この順で,FF-X,Yの各状態(出力) XY00 (X0, Y0,以下同様), 01, 10, 11 (自然な2進数表現)で表す(状態割り当て).また,入力 P 生産(Produce)操作,すなわち,P =1(CP01)で上記モデルでの(b)(在庫+1)操作を示す.一方,入力 C 消費(Consume)操作,すなわち,C =1(CP10)で上記モデルでの(c)(在庫−1)操作を示す.C P が同時に"0"(CP00)のときは無操作(在庫状態は不変)である.C P が同時に"1"(CP11)のときの(次)在庫状態はドントケア""とする.次の(1)〜(8)の各問に答えなさい.