「論理回路とその設計」 演習問題【12】
表1 |
10 |
BCD符号 |
2421符号 |
進 |
A |
B |
C |
D |
W |
X |
Y |
Z |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
2 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
3 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
4 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
5 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
6 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
7 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
8 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
9 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
[A] 1桁の10進数("0","1",…,"8","9")を4ビット(列)符号で表現する方法は種々ある.表1の左は,4ビットの2進数(各ビットの重み:最上位から最下位へ10進数で8-4-2-1)を自然に用いる4ビット符号表現で,「BCD (Binary Coded Decimal; 2進符号化10進数)符号」という.表1の右は,各ビットの重みを最上位から最下位へ10進数で2-4-2-1とする4ビット符号表現で,「2421符号」という.4ビットのBCD符号 ABCD ( A が最上位ビット,D が最下位ビット)と,4ビットの2421符号 WXYZ ( W が最上位ビット,Z が最下位ビット)との,「10進数符号の相互変換器」を4入力4出力の組み合わせ回路(2個)として最適化設計してみよう.ただし,BCD符号⇔2421符号のいずれの符号変換器においても,"0"〜"9"の10進数を表す符号ではない(すなわち,表1に現れない)入力(組み合わせ)に対する変換出力は4ビットともすべてドントケア"−−−−"とする.たとえば,入力 ABCD (BCD符号)が"1010","1011","1100","1101","1110","1111" (これらはいずれもBCD符号ではない)のそれぞれに対する出力 WXYZ (2421符号)はいずれもドントケア"−−−−"である.次の問すべてに答えなさい.
(1) まず,4ビットのBCD符号 ABCD を入力とし, 4ビットの2421符号 WXYZ を出力とする「BCD→2421符号変換器」を設計する.下記の真理値表のW,X,Y,Z列の空白部分を埋めて,真理値表を完成しなさい.
(2) (1)の真理値表から出力W,X,Y,Zのそれぞれを下記の対応するカルノー図に移して,それを用いて出力W,X,Y,Zのそれぞれを2段論理最小化し,それぞれ最小積和形論理式で示しなさい.カルノー図による操作はすべて解答として明記しなさい.
(3) (2)を4入力4出力組み合わせ回路として1回路にまとめると,共有(共用)ゲートの存在によってさらなる空間最適化ができるかどうかについて,(2)の解答である論理式を引用することによって具体的に説明しなさい.
(4) (2)で求めた出力W,X,Y,Zの各最小積和形のうちで,ファクタリングを用いて多段論理最小化できるものがあれば,それらすべて(の結果)を論理式で示しなさい.
(5) 次に,4ビットの2421符号 WXYZ を入力とし, 4ビットのBCD符号 ABCD を出力とする「2421→BCD符号変換器」を設計する.下記の真理値表のA,B,C,D列の空白部分を埋めて,真理値表を完成しなさい.
(6) (5)の真理値表から出力A,B,C,Dのそれぞれを下記の対応するカルノー図に移して,それを用いて出力A,B,C,Dのそれぞれを2段論理最小化し,それぞれ最小積和形論理式で示しなさい.カルノー図による操作はすべて解答として明記しなさい.
(7) (2)で設計した「BCD→2421符号変換器」と(6)で設計した「2421→BCD符号変換器」(いずれも,(2)(6)の解答として,対応する論理式表現で与えている)とを,4入力4出力組み合わせ回路としての空間規模の観点で,定量的に比較することによって,BCD→2421変換と2421→BCD変換の機能の複雑度について比較し論じなさい.
S |
E |
動作 |
0 |
0 |
+1 |
0 |
1 |
+2 |
1 |
0 |
−1 |
1 |
1 |
±0 |
[B] 「2ビットのアップダウン2進(binary)カウンタ」を2個のフリップフロップ( FF2, FF1 とし,その状態をそれぞれ Q2, Q1 とする)を用いる同期式順序回路として最適化設計してみよう.このアップダウンカウンタは,10進数で"0","1","2","3"(2進数すなわち FF2, FF1 の状態として,この順で,Q2Q1 = "00","01","10","11")の4状態をクロック(ビットタイム)ごとに必ず遷移(すなわち,循環カウントアップ(+)または循環カウントダウン(−)のいずれか)する.また,このカウンタは S と E との2ビット(本)の制御入力を備えており,次のようなカウント制御を行う. S はカウント方向の切り替えを制御し,[ S=0 のときは,カウントアップ(+)][ S=1 のときは,カウントダウン(−)]をそれぞれ指定する.E は特別(余分)(extra)カウントの有無を制御し,[E=0 のときは,特別カウント無しで(通常の)±1 カウント][E=1 のときは,+1の特別カウント有りで,カウントアップ時は+2 カウント,カウントダウン時は±0(無動作)]をそれぞれ指定する.(制御入力によるカウント動作については,右表のまとめを参照のこと) ただし,同期式順序回路であるので,入力と状態遷移はクロックによってビットタイムごとに同期する.
次の問すべてに答えなさい.
(1) このカウンタの拡大状態遷移表(下記)のQ2+とQ1+の各列を埋めて,完成しなさい.
(2) このカウンタをJKフリップフロップ(JK-FF)によって構成する.(1)で作った拡大状態遷移表の右側に連結してあるJ2,K2,J1,K1列を埋めて拡大入力要求表を完成しなさい.JK-FFの入力要求表は右記を参照しなさい.
(3) (2)を下記の対応するカルノー図に写し,J2,K2,J1,K1の各最小積和形論理式を求めなさい.
(4) (3)を1個の順序回路としてまとめた(設計した)とき,共有(共用)ゲートの存在によってさらなる空間最適化ができるかどうかについて,(3)の解答である論理式を引用することによって具体的に説明しなさい.
(5) (3)で求めたJ2,K2,J1,K1の各最小積和形のうちで,ファクタリングを用いて多段論理最小化できるものがあれば,それらすべて(の結果)を論理式で示しなさい.
(6) 今度は,このカウンタをDフリップフロップ(D-FF)によって構成する.右記のD-FFの入力要求表に従うと,拡大入力要求表(下記)のD2,D1列はそれぞれそのQ2+,Q1+列と同じである.これを下記の対応するカルノー図に写し,D2,D1の各最小積和形論理式を求めなさい.
(7) (6)を1個の順序回路としてまとめた(設計した)とき,共有(共用)ゲートの存在によってさらなる空間最適化ができるかどうかについて,(6)の解答である論理式を引用することによって具体的に説明しなさい.
(8) (4)や(7)をカルノー図上で行う方法(*)について,(3)や(6)で使ったカルノー図を例にとって具体的に説明しなさい.また,この方法(*)の限界について具体的に論じなさい.