論理回路2
第4章 順序回路の基礎(その3)
−カウンタ回路(非同期式)−
井澤 裕司
1 はじめに
- 代表的な
順序回路
に
カウンタ
があります。
- カウンタとは、入力となるクロックや信号の数を計測する回路であり、
コンピュータをはじめ、様々なICやLSIに数多く用いられています。
- 例えば、ディジタル時計では、1秒に1回のパルス信号を60回計測して、1分を計測します。
- 同様に、1分を60回、1時間を24回、1日を30回(あるいは29、31回)
計測するカウンタ群が内蔵されています。
- このカウンタには、クロックに同期して動作する
- 同期式カウンタ
と、そうではない
非同期式カウンタ
があります。
- 本章では、比較的簡単に実現できる
非同期式カウンタ
の構成法について解説します。
2 非同期式カウンタの構成法
2.1 1ビットカウンタの従属接続
- 第3章で説明した
1ビットの2進カウンタを n 個
用い、これらを
従属接続
すれば nビットのバイナリーカウンタを
構成することができます。
- 例えば、最も単純な
エッジトリガーの T-FF
を3個用いて、
- 1段目の出力を2段目の入力
- 2段目の出力を3段目の入力
- のように接続すれば、3ビットのカウンタが構成されます。
- このカウンタは、
(0→1→2→3→4→5→6→7→0→1)
というように、1クロックごとに
カウントアップ
します。
- 出力は3ビットの
2進数(000〜111)
です。
- ここで、カウンタの出力は、
T-FFの反転出力
であることに注意して下さい。
- なお、各フリップフロップのQを直接出力すれば、(7→6→5)というように、
カウントダウン
するカウンタとなります。
- その回路図とタイムチャートは、以下のようになります。
- 原理的には、このT-FFを n 個従属接続すれば、
n ビットの2進カウンタを構成することが可能です。
2.2 非同期式カウンタの遅延について
- はじめに
非同期式と呼ばれる理由
について説明します。
- 2.1で示した
非同期式カウンタのタイムチャート
を拡大したものを、以下に示します。
- 例えば、入力 x の立上り後、時間 td でだけ遅延して出力 Q0 が変化します。
- また、出力 Q1 は出力 Q0 の立下り後 Td で変化し、
- さらに、出力 Q2 は Q1 の立下り後td で変化します。
- したがって、入力 x の立上りから計測すると、出力の Q2 には
3段分の遅延
が含まれることになります。
- このように、非同期式で
nビットのカウンタ
を構成する場合、
- 遅延時間も n倍
されることを考慮しなければなりません。
3 非同期式バイナリーカウンタ
3.1 JK-FFを用いた4進カウンタ
- 以下にJK-FFを2個用いた
2ビット4進カウンタ
を示します。
- このJK-FFは、
クロック入力のあるDC型
です。
- なお入力J=1、k=1となっているため、
クロックの立ち下りで出力 Q が反転
し、
- (0→1→2→3→0→1)のようにカウントします。
3.2 D-FFを用いた4進カウンタ
- D-FFを用いた2ビット4進カウンタは、下の図のようになります。
- この
D-FFはエッジトリガータイプ
であり、D-FFの反転出力が入力Dに接続しているため、
- クロックの立ち上りで出力Qが反転
します。
4 非同期クリアによるn進カウンタ
- 前章では、様々なフリップフロップを用いた
バイナリーカウンタの構成法を示しました。
- これにより、(0→3)や(0→7)のように、
(2のべき乗−1)までの数を繰り返し計測することができます。
- しかし、10(9)や24(23)のように、2のべき乗ではない数値をカウントするためには、
- どのようにすればよいでしょうか?
- このような場合、クロック入力の状態にかかわらず、
無条件に出力Qを 0 にリセットする
- クリア入力(非同期クリア入力)
のあるフリップフロップを用います。
- これから、具体的な例を用いてその方法を説明しましょう。
4.1 JK-FFを用いた5進カウンタ
- JK-FFを用いた5進カウンタ
を設計してみましょう。
- JK-FFの中に、クロック入力の状態にかかわらず無条件に
- 出力 Q を 0 にクリアする入力 C
が備わっている種類があります。
- クロック入力の状態に依存しないので、
非同期クリア
と呼ぶことがあります。
- 負論理(0 のときクリア)を明示的に表すため、図の入力部に○が付いています。
- このような非同期クリア入力をもつJK-FFを、図のように3個従属接続します。
- 3個のFF出力が2進数の(101)になった直後、
3入力NAND回路を用いて、クリア入力 C を 0 にします。
- 3個のフリップフロップの出力が 0 にクリアされると、
NAND回路のクリア信号 C は 1に戻るため、
- フリップフロップのクリアは解除されますが、
FF出力はすべて 0 の状態を保ちます。
- そして、再び(0→1→2→)のように、カウントを開始します。
- この非同期式カウンタは
- (0→1→2→3→4→5→0→1)
- のように動作しますが、
5の状態はきわめて短く、
すぐ 0 となるので、実質的には、
- (0→1→2→3→4→0→1)
- の5進カウンタとみなすことができます。
- 下の図を用いて、FF出力が5→0となる瞬間について詳しく調べてみましょう。
- @ クロックの立ち下りにより、Q0 が 0 から 1 に変化する。
- A Q0が 1 になったため、NAND回路によりクリア信号(負論理)が 0 となる。
- B Q0 と Q2 がクリアされ 0 となる。(Q1は 0 で変わらず)
- C Q0 と Q2が変化したため、クリアが解除される(1となる)。
- この回路では、3個のFFの出力が(101)以外の値になるまで、
クリア信号を出し続けます。
- したがって、FFの特性に大きなバラツキがない限り、安定に動作します。
- 一方、3個のFFの中に極端に応答速度が遅いものが含まれていると、
- どのようになるでしょうか?
- 例えば、初段のFFが遅いものとして、下の図を用いて説明しましょう。
- @ クロックの立ち下りにより、Q0 はが 0 から 1 に変化する。
- A Q0が 1 になったため、NAND回路によりクリア信号(負論理)が 0 となる。
- B Q2 がクリアされ 0 となる。
- (1段目FFはクリア入力されるが応答速度が遅いため、Q0は依然として 1 の状態)
- C Q2が変化したため、クリアが解除される(1となる)。
- D クリア解除後に速度が遅いQ0が 0 となり、
- 2段目のFFはこれをカウントして、Q1 が 0 から 1 に変化する。
- このように、本来(000)という状態にクリアされるカウンタが、
(010)という誤った状態にセットされてしまいました。
- これが、いわゆる
ハザードによる誤動作
です。
- クロック周波数が高くなると、配線長による遅延時間などにより、
ハザードが発生する可能性があります。
- 論理回路の設計では、このようなハザードが絶対に生じないよう、
配慮しなければなりません。
4.2 D-FFを用いた5進カウンタ
- 非同期クリア入力のあるエッジトリガーD-FFを3個用いて、
5進カウンタを構成します。
- その回路を以下に示します。
- クロックの立ち上りで、D-FF出力を反転させますが、動作自体は、
- 4.1で説明したJK-FFによる5進カウンタと変わりありません。
- 上記回路でも、遅延時間の異なるFFを組み合せた場合には、
- ハザードによる誤動作を生じさせる可能性があるので、注意が必要です。
5 まとめ
- 本章では、代表的な順序回路である
非同期式カウンタ
について解説しました。
- 段数が多い非同期式カウンタは、クロック周波数が高くなると、
遅延時間が無視できなくなり、
- ハザードを含む様々な問題が発生する可能性があります。
- このため、一般には同期式のカウンタが使用されています。
- 次章では、この同期式カウンタの構成法について説明します。
論理回路2のトップページに戻る