「論理回路とその設計」 演習問題【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符号)はいずれもドントケア"−−−−"である.次の問すべてに答えなさい.

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状態をクロック(ビットタイム)ごとに必ず遷移(すなわち,循環カウントアップ(+)または循環カウントダウン(−)のいずれか)する.また,このカウンタは SE との2ビット(本)の制御入力を備えており,次のようなカウント制御を行う. S はカウント方向の切り替えを制御し,[ S=0 のときは,カウントアップ(+)][ S=1 のときは,カウントダウン(−)]をそれぞれ指定する.E は特別(余分)(extra)カウントの有無を制御し,[E=0 のときは,特別カウント無しで(通常の)±1 カウント][E=1 のときは,+1の特別カウント有りで,カウントアップ時は+2 カウント,カウントダウン時は±0(無動作)]をそれぞれ指定する.(制御入力によるカウント動作については,右表のまとめを参照のこと) ただし,同期式順序回路であるので,入力と状態遷移はクロックによってビットタイムごとに同期する.
次の問すべてに答えなさい.