9. カウンタ

1
論理回路学
9. カウンタ
佐藤証 ⻄9-613
[email protected]
2
2進数カウンタ
T-FF(Trigger)はクロック
Tが⼊るごとに出⼒が反転
周波数が1/2になる分周
これを数珠つなぎにすると
分周
Q3Q2Q1を3ビットの2進数と
考えるとTが1になるごとに
+1/-1するカウンタになる
分周
分周
分周
分周
分周
10進 0
Q3 0
Q2 0
Q1 0
10進 7
Q3 1
Q2 1
Q1 1
1
0
0
1
6
1
1
0
2
0
1
0
5
1
0
1
3
0
1
1
4
1
0
0
4
1
0
0
3
0
1
1
5
1
0
1
2
0
1
0
6
1
1
0
1
0
0
1
7
1
1
1
0
0
0
0
0
0
0
0
7
1
1
1
1
0
0
1
6
1
1
0
2
0
1
0
5
1
0
1
3
演習1(解答)
 次のカウンタのタイムチャートと表を完成させなさい
ここから
10進 7
Q3 1
Q2 1
Q1 1
10進 0
Q3 0
Q2 0
Q1 0
6
1
1
0
1
0
0
1
5
1
0
1
2
0
1
0
4
1
0
0
3
0
1
1
3
0
1
1
4
1
0
0
2
0
1
0
5
1
0
1
1
0
0
1
6
1
1
0
0
0
0
0
7
1
1
1
7
1
1
1
0
0
0
0
6
1
1
0
1
0
0
1
非同期式と同期式
JK-FFはJ/Kが変化するとすぐにQ/Qが変化する →⾮同期式
クロック付JK-FFは、クロックTの⽴上りのときのJ/Kの値でQ/Qが変化する
→クロック同期式
前出のアップ/ダウンカウンタはバタバタと変化が隣に伝搬するので⾮同期式
シフトレジスタは同期式
J
J
0
0
1
1
K
0
1
0
1
Q
Q
0
1
Q
Q
Q
1
0
Q
動作
保持
Reset
Set
反転
K
Q
JかKが変化するとすぐにQが変化する
T
Q
クロックの⽴上りのJとKの状態で変化する
⾮同期式
同期式
4
非同期式と同期式
 演習でクロックTに同期しているT-FFは左の⼀つだけ
 Tの⽴ち上りから他のT-FFの⽴ち上り/⽴下りはどんどん遅れる
詳しく
描くと
5
6
非同期式カウンタ
2n周期で出⼒パターンが⼀周して値が00…0に戻るカウンタはT-FFの
カスケード接続で簡単に作れる
T
T1
Q1
Q1
T2
Q2
Q2
T
T1
Q1
Q1
T2
Q2
Q2
T3
Q3
Q3
前はQを⼊れていたが
図を簡単にするため
Qの反転を⼊れている
T-FFが使えない時はD-FFで代⽤できる
信号が少し
遅れて戻る
教科書はD-FFでカウンタを作っているが、簡単なのでここではT-FFを使う
7
非同期式3進カウンタ
2n進カウンタは2n 周期でFFの値が⾃動的に00…0に戻るが、その他の
カウンタは決めた値で強制的にFFをリセットする必要がある
3進ならばQ2Q1の値が3(=112) になる瞬間にリセットをかける
パルス Q2
0
1
0
2
1
3
1
4
0
Q1
0
1
0
1
0
11で
リセット
1
リセット⼊⼒
1
⼊⼒が11でリセット
パルス Q2
0
1
0
2
1
3
0
4
0
Q1
0
1
0
0
1
Tを反転したので⽴下り
で0になるとアクティブ
になることに注意!
1
1
1
1
リセット
8
非同期式5進カウンタ
Q3Q2Q1が5(=1012)になる瞬間にリセットをかける
Q3Q2Q1が7(=1112)になることはないので、実はQ2は無視(Donʼt Care)できる
Q1
T
T1
R
Q1 1
T2
R
Q2
Q2
0
T3
R
Q3
Q3
1
1
T
T1
R
Q1
Q1
T2
R
1
Q2
⼊⼒が111
で出⼒が1
Q2
T3
R
Q3
Q3
1
1
1
0
0
1
1
パルス Q3
0
1 0
2 0
3 0
4 1
5 0
6 0
7 0
Q2
0
0
1
1
0
0
0
1
Q1
0
1
0
1
0
0
1
0
101で
リセット
非同期式5進カウンタ
Q1
T
T1
R
Q1 1
T2
R
Q2
Q2
0
T3
R
Q3
Q3
1
1
⼊⼒が111
でリセット
こう描くとわかりやすい
1
0
1
⼊⼒が101
でリセット
9
10
演習2 (解答)
 ⾮同期式7進カウンタを作りなさい
パルス Q3
0
1 0
2 0
3 0
4 1
5 1
6 1
7 0
8 0
9 0
10 0
1
1
1
T
T1
R
Q1
Q1
T2
R
1
Q2
Q2
T3
R
1
Q3
Q3
1
Q2
0
0
1
1
0
0
1
0
0
1
1
Q1
0
1
0
1
0
1
0
0
1
0
1
11
同期式カウンタ
J
0
0
1
1
2n進カウンタはクロック付JK-FF
の⼊⼒JとKを⼀緒にして、保持
(J=K=0)と反転(J=K=1)だけを
使ってT-FFのように使う
1
T
T1
Q1
Q1
T2
Q2
Q2
T3
Q3
Q3
T
K
0
1
0
1
Q
Q
0
1
Q
Q1
J1 Q1
T1
K1
Q
Q
1
0
Q
動作
保持
Reset
Set
反転
ここだけ使う
Q2
J2 Q 2
T2
K2
Q3
J3 Q3
T3
K3
12
同期式8進カウンタ
 Q1は毎クロック反転
 Q2はQ1=1で反転
 Q3はQ2Q1=11で反転
パルス Q3 Q2 Q1
1
2
3
4
5
6
7
8
9
10
0
0
0
0
1
1
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1 11で次に
0 Q3が反転
1
0
1
0 反転
1
0
教科書P89の図3や図4の回路
はクロックTにANDゲートを
⼊れているが、FFの⼊出⼒の
タイミングがずれるのでやっ
てはいけない
1
T
Q1
J1 Q1
T1
K1
1
J2 Q 2
T2
K2
Q2
1
×
1
Q3
J3 Q3
T3
K3
13
同期式8進ダウンカウンタ
 Q1は毎クロック反転
 Q2はQ1=0で反転
 Q3はQ2Q1=00で反転
1
J1 Q 1
T1
K1
パルス Q3 Q2 Q1 パルス Q3 Q2 Q1
1
2
3
4
5
6
7
8
9
10
0
0
0
0
1
1
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
2
3
4
5
6
7
8
9
10
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0 00で次に
1 Q3が反転
0
1
0
1 反転
0
1
Q1
T
1
T
Q2
Q3
J2 Q2
T2
K2
Q1
J1 Q 1
T1
K1
J3 Q3
T3
K3
Q2
Q3
J2 Q2
T2
K2
J3 Q3
T3
K3
0
0
1
1
1
14
演習3(解答例)
 同期式16進アップカウンタを作りなさい
パルス Q4 Q3 Q2 Q1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
反転
反転
反転
反転
15
演習4(解答例)
 同期式16進ダウンカウンタを作りなさい
パルス Q4 Q3 Q2 Q1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
反転
反転
反転
反転
最大動作周波数
 Tの⽴下りからのANDの出⼒遅延はどんどん増えるが次のTの⽴下りまでに安
定していれば正しく動作し、Qの出⼒遅延はANDとは無関係
 FFの⼊⼒に⼊る組合せ回路の遅延時間でその回路の最⼤動作周波数が決まる
16
17
同期式3進カウンタ
3数える毎にJ=0,K=1としてFFをリセット
する
カウントアップしてQ2Q1=10となった次
のクロックでQ2Q1=00にリセットするが
Q2=1だけチェックすればよい
ここからTの⽴ち上りに同期するFFを使う
パルス Q2 Q1
1
2
3
4
5
6
0
0
1
1
0
0
1
0
1
0
1
0
1
0
パルス Q2 Q1
1
2
3
4
5
6
0
0
1
0
0
1
0
0
1
0
0
1
0
0
Q2=1で次を
リセット
ここを使う
J
0
0
1
1
K
0
1
0
1
Q
Q
0
1
Q
Q
Q
1
0
Q
動作
保持
Reset
Set
反転
18
同期式3進ダウンカウンタ
3→2→1→3→2→1と数えるカウンタは簡単
3数える毎にJ=1,K=0としてFFをセットする
カウントダウンしてQ2Q1=00となった次の
クロックでQ2Q1=10にセットする
パルス Q2 Q1 パルス Q2 Q1
1
2
3
4
5
6
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0→1→2
→0→1→2
1
2
3
4
5
6
1
1
0
1
1
0
1
1
0
1
1
0
1
1
3→2→1
→3→2→1
Q2=0で
次をセット
ここを使う
J
0
0
1
1
K
0
1
0
1
Q
Q
0
1
Q
Q
Q
1
0
Q
動作
保持
Reset
Set
反転
演習5(解答)
 次の同期式カウンタのタイムチャートを完成させなさい
教科書P.96 図5はこの線が抜けている
19
20
同期式5進アップ/ダウンカウンタ
Q1
1
T
J1 Q1
T1
K1
Q2
J2 Q2
T2
K2
Q1
J1
T1
K1 Q1
T
Q3
1
J3 Q3
T3
K3
Q2
J2 Q 2
T2
K2 Q2
Q3
J3 Q3
T3
K3 Q3
パルス Q3 Q2 Q1 パルス Q3
0 0 0
1
1 0 0 1
1 0
2 反転
0 1 0
2 0
3 0 1 1
3 0
4 1 反転
0 0
4 0
5 0 0 0
5 1
6 0 0 1
6 0
7 0 1 0
7 0
8 0 1 1
8 0
9 1 0 0
9 0
10 0 0 0
10 1
11 0 0 1
11 0
12 0 1 0
12 0
Q2 Q1
0 0
1 1
1 0
0 1
0 0
反転
0 0
反転
1 1
1 0
0 1
0 0
0 0
1 1
1 0
21
カウンタの組合せ
 複数のカウンタを組合わせて様々なn進カウンタを作ることができる
Q2
Q1
Q
Texas Instruments社の
SN74LS390は2進カウンタ×2個
と5進カウンタ5個を実装している
2進
4進
5進
10進
20進
25進
50進
100進
進組合せ
2進
2進×2進
5進
2進×5進
2進×2進×5進
5進×5進
2進×5進×5進
2進×2進×5進×5進
T
T
R
2進
2進
T
2カウントアッ
プでQ1:0→1
Q
R
5カウントアップで
Q4Q3Q2:000→100
22
ジョンソンカウンタ
 全FFをリセットすると次のクロックでD1=Q4=1が
Q1にセットされる
 nビットの場合2n-1進カウンタとして動作
 出⼒は⼆進数のカウントアップではない
 毎回1ビットしか変化しないので、出⼒Qの遅延にば
らつきがあってもその論理演算結果はバタつかない
D
T
Q
Q
D-FFはクロックが⼊る毎
にDを取り込みQに出⼒
ジョンソンカ
1
2
3
4
5
6
7
8
9
二進数
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
Q4 Q3 Q2 Q1
0 0 0 0
0 0 0 1
0 0 1 1
0 1 1 1
1 1 1 1
1 1 1 0
1 1 0 0
1 0 0 0
0 0 0 0
0 0 0 1
23
リングカウンタ
 FFの1ビットだけに1をセットしてクロック毎に1が
巡回シフト
 nビットの場合n進カウンタとして動作
 ⾃⼰補正型は⾃動的に1ビットだけ1がセットされる
Q1
Q2
Q3
クロック Q4 Q3 Q2 Q1
0 0 0 1
1 0 0 1 0
2 0 1 0 0
3 1 0 0 0
4 0 0 0 1
5 0 0 1 0
Q4
Q1
T
Q2
Q3
Q4
D1 Q1
D2 Q2
D3 Q3
D4 Q4
D1 Q1
D2 Q2
D3 Q3
D4 Q4
T Q1
T Q2
T Q3
T Q4
T Q1
T Q2
T Q3
T Q4
初期設定をミスしても3クロック以内で正しい状態に
T
初期設定ミスがあると正しくカウントしない
24
演習6(解答)
 Q2の出⼒が⼤きく遅れるときの遅延時間を考慮したタイム
チャートを完成させなさい
Q1
ここがどうなるか
T
Q2
Q3
Q4
D1 Q1
D2 Q2
D3 Q3
D4 Q4
T Q1
T Q2
T Q3
T Q4
ハザード
クロックの⽴ち上りで各出⼒は安定しているので動作に問題はない