解答編 完全な解答ではありません。 各自途中の文章

解答編
可変長符号デコーダ
非同期リセット端子を持つD-FFを使用した場合
井口幸洋
明治大学理工学部情報科学科
[email protected]
2015/9/30
1
可変長符号デコーダ
表1 受信符号と出力
文字
符号
charsig
charsig[3]
A
0
0001
charsig[2]
reset_N
charsig[1]
B
10
0010
C
110
0100
charsig[0]
D
111
その
他
その
他
1000
0000
sdata
clock
図1 端子
2015/9/30
2
可変長符号デコーダの状態図
•
ムーア型で作成
reset_N
1
1
S0/0000
0
SA/0001
0
2015/9/30
S1/0000
1
0
1
1
0
1
SB/0010
S2/0000
1
0
SD/1000
0
SC/0100
図2 状態図
3
状態割り当て
• 状態数 7
• ワンホット・エンコーディング
–
–
–
–
–
–
–
2015/9/30
S0
S1
S2
SA
SB
SC
SD
7’b0000001
7’b0000010
7’b0000100
7’b0001000
7’b0010000
7’b0100000
7’b1000000
状態数が7なのでワンホット・
エンコーディングを用いると、
7個のD-FFで実現できる.
4
可変長符号デコーダ
state[6:0]
sdata
D6
Q6
D5
Q5
D4
組
Q4 合
Q3 せ
回
Q2
路
Q1
Q0
D3
[6]
charsig[3]
[5]
charsig[2]
[4]
charsig[1]
[3]
charsig[0]
D2
[2]
D1
[1]
D0
[0]
clock
PRESET
D
Q
Q
CK
reset_N
2015/9/30
非同期リセット・プリセット端子
付きエッジトリガD-Flip Flop
+5V
図3 可変長符号デコーダの回路図
RESET
5
遷移表
次状態
sdata = 0
Q
6
Q
5
Q
4
Q
3
Q
2
Q
1
Q
0
S
0
0
0
0
0
0
0
1
S
1
0
0
0
0
0
1
S
2
0
0
0
0
1
S
A
0
0
0
1
S
B
0
0
1
S
C
0
1
S
D
1
0
sdata = 1
D
6
D
5
D
4
D
3
D
2
D
1
D
0
S
A
0
0
0
1
0
0
0
0
S
B
0
0
1
0
0
0
0
0
S
C
0
1
0
0
0
0
0
0
S
A
0
0
0
1
0
0
0
0
S
A
0
0
0
0
0
0
0
0
S
A
0
0
0
0
0
0
0
S
A
0
0
2015/9/30
D
6
D
5
D
4
D
3
D
2
D
1
D
0
S
1
0
0
0
0
0
1
0
0
S
2
0
0
0
0
1
0
0
0
0
S
D
1
0
0
0
0
0
0
0
0
0
S
1
0
0
0
0
0
1
0
1
0
0
0
S
1
0
0
0
0
0
1
0
0
1
0
0
0
S
1
0
0
0
0
0
1
0
0
1
0
0
0
S
1
0
0
0
0
0
1
0
6
機能表より得られる論理式(D0)
まず D0を考えてみよう。表か
らつねに0であること
がわかる。
D0 0
が得られる。
つまり、 S0の状態になるのは reset _ N信号が0になった時だ け
である。
2015/9/30
7
機能表より得られる論理式(D1)
D1を考えてみよう。
D1  1になるのは、 sdata  1 かつ 現在の状態がS 0, SA, SB, SC, SDの時、つまり、
Q0  1, Q3  1, Q 4  1, Q5  1, Q6  1のどれかであればよい 。
これより
D1  sdata Q0  Q3  Q 4  Q5  Q6
または
D1  sdata (Q1  Q 2)
でもよい。
2015/9/30
8
機能表より得られる論理式(全部)
D0  0,
D1  sdata Q0  Q3  Q 4  Q5  Q6  sdata Q1  Q 2 ,
D 2  sdata Q1,
D3  sdata Q0  Q3  Q 4  Q5  Q6   sdata Q1  Q 2 ,
D 4  sdata Q1,
D5  sdata Q 2,
D6  sdata Q 2.
バグはあるかもしれません。各自確かめてみてください。
論理回路図は省略します。各自で書けるようにしておくこと。
2015/9/30
9