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

表1

10進数 BCD符号
0 0 0 0 0
1 0 0 0 1
2 0 0 1 0
3 0 0 1 1
4 0 1 0 0
5 0 1 0 1
6 0 1 1 0
7 0 1 1 1
8 1 0 0 0
9 1 0 0 1
[A] 1桁の10進数("0","1",…,"8","9")を4ビットの2進数(各ビットの重み:最上位から最下位へ10進数で8-4-2-1)を自然に用いて表す符号表現を「BCD(Binary Coded Decimal; 2進符号化10進数)符号」という.表1は10進数とBCD符号との対応表である.また,1桁の10進数をNとするとき,上位への桁上げを無視した1桁の10進数(10−N)を「Nの10の補数」(N'と表す,N'=10−N)という.表2はNN'との対応表である.ここで,Nを4ビットのBCD符号 ABCDAが最上位ビット,Dが最下位ビット) で,各Nに対応するN'を4ビットのBCD符号 WXYZWが最上位ビット,Zが最下位ビット)で,それぞれ表す.ABCD を入力,WXYZ を出力とする4入力4出力の組み合わせ回路を設計してみよう.ただし,入力 ABCD が"1010","1011","1100","1101","1110","1111"の6通り(BCD符号ではない)のそれぞれでは,いずれも出力WXYZ は4ビットともすべてドントケア"−−−−"とする. 次の問すべてに答えなさい.論理積(AND)記号"・"は省略可.
表2

N N'
0 0
1 9
2 8
3 7
4 6
5 5
6 4
7 3
8 2
9 1

表3
  X Y Z
p 0 0 0
q 0 0 1
r 0 1 0
s 0 1 1
t 1 0 0

[B] 1ビット入力 I をクロック(ビットタイム)ごとにチェックして,"0"か"1"が3ビット以上引き続いて入力している((1→)0→0→0→…あるいは(0→)1→1→1→…,→は入力の時間順序「入力→後入力」を示す)状態を検出する同期式順序回路を設計してみよう.この順序回路の状態は, p初期(リセット)状態; q:初期状態の次に"0"が1ビットだけ入力した状態; r:初期状態の次に"1"が1ビットだけ入力した状態; s:初期状態の次から"0"が2ビット以上引き続いて入力している(0→0→…)状態; t:初期状態の次から"1"が2ビット以上引き続いて入力している(1→1→…)状態;の5状態とする.【たとえば,q 状態で,次に"0"が入力されると s 状態に,"1"が入力されると初期状態 p に,それぞれ遷移する.また,t 状態で,次に"0"が入力されると初期状態 p に,"1"が入力されると同じ t 状態に,それぞれ遷移する.】さらに, q,r,s,t の4状態では,直前の入力が"0"か"1"かが決まっている(分かっている)ので,それと異なる論理値が入力されると初期状態 p へ戻る(リセットである,リセットを引き起こした入力は以降の状態遷移に何ら影響しない).設計する順序回路では,出力は省略し,状態遷移すなわちフリップフロップ(FF)の入力条件式だけを考える.同期式順序回路であるので,状態遷移(カウントダウン)はクロックに同期することを前提とするが,解答(論理式や回路図)では,クロックは無視し省略しなさい.次の問すべてに答えなさい. 論理積記号"・"は省略可

状態

状態
I=0 I=1
p    
q s p
r    
s    
t p t