カウンタとは
カウンタは、デジタル回路において、クロックパルスを数えることで数値処理を行うための基本的な構成要素です。この回路は、入力されるクロックパルスを計数し、その結果を2進数または2進化10進数として出力します。計数された数値は、デコーダを介して7セグメントLEDなどの表示装置に表示され、人間が理解できる情報に変換されます。また、エンコーダを使用することで、情報を2進数などに変換し、カウンタによる計数処理を可能にします。
カウンタの応用
カウンタは、単に数を数えるだけでなく、様々な応用があります。例えば、
水晶振動子を用いた
発振回路から生成される高周波信号を、より低い
周波数の信号に変換する分周器としても利用されます。この分周器は、
1926年に
日本人研究者の
古賀逸策によって発明されました。
カウンタの種類
カウンタには、その用途や要求される特性に応じて様々な形式が存在します。大きく分けて、各ビットに重み付けがあるウェイティング・カウンタと、重み付けがないノンウェイティング・カウンタがあります。
ウェイティング・カウンタ
バイナリ・カウンタ: 2進数を出力するカウンタで、各段のフリップフロップの出力を次段の入力に接続することで、クロックパルスの数を2進数で表現します。
グレイ・コード・カウンタ: グレイコードを使用し、デコード時のノイズを抑制します。
ノンウェイティング・カウンタ
リング・カウンタ: 最終段の出力を初段の入力に戻し、ビット列をシフトさせるカウンタです。
ジョンソン・カウンタ: 特定のコードを割り当て、2つのビットをデコードするだけで信号を取り出せるようにしたカウンタです。
ワンホット・ステート・カウンタ: 計数に対応するフリップフロップのみを1とするカウンタで、デコードが不要な点が特徴です。
また、カウンタは、使用するビット列の組み合わせによって、フィルド・コード・カウンタとアンフィルド・コード・カウンタに分類されます。
フィルド・コード・カウンタ: ビット列の組み合わせを全て使用するもので、大きな数のカウントに適していますが、デコーダが複雑になります。
アンフィルド・コード・カウンタ: ビット列の組み合わせを制限したもので、デコード回路が小さく、高速化が可能です。
各カウンタの詳細
バイナリ・カウンタ
バイナリ・カウンタは、D型フリップフロップを直列に接続し、各段の出力がクロックパルスごとに反転する仕組みを利用しています。これにより、入力されたクロックパルスの数を2進数で表現できます。また、n段のバイナリ・カウンタは、クロック周波数を1/2nに変換する分周器としても機能します。
グレイ・コード・カウンタ
グレイ・コード・カウンタは、隣り合う数値間で1つのビットしか変化しないグレイコードを使用することで、デコード時のノイズ(スタティック・ハザード)を抑制します。この特性は、高速なデータ処理や精密な制御が必要な場面で特に有効です。
リング・カウンタ
リング・カウンタは、シフトレジスタの一種で、最終段の出力を初段の入力に接続することで、特定のビットパターンを循環させます。この構造は、シーケンシャルな制御や簡単な状態遷移を実現するのに役立ちます。
ジョンソン・カウンタ
ジョンソン・カウンタは、特定のコードを割り当てることで、少ないデコード処理で複雑な信号を取り出すことができるカウンタです。対称形と非対称形があり、いずれもスタティック・ハザードが発生しないという特徴があります。
ワンホット・ステート・カウンタ
ワンホット・ステート・カウンタは、計数に対応するフリップフロップのみを1にするため、デコーダを必要としません。これにより高速な動作が可能ですが、回路規模が大きくなるという欠点もあります。
カウンタの機能
カウンタには、以下のような機能を持つものもあります。
アップ・ダウン機能: 加算と減算を切り替えて計数する機能です。
*
プリセット機能: 初期値を設定して、その値から計数を開始する機能です。
その他の関連事項
カウンタは、デジタル回路、
論理回路、ハードウェア記述言語など、様々な分野で重要な役割を果たしています。また、
汎用ロジックICやフリップフロップ、
シフトレジスタなどの基本的な電子部品と共に使用されます。特に、ウォッチドッグタイマーやリングカウンタなど、特定の機能を持つカウンタは、電子機器の動作を監視し、安全性を確保するために不可欠です。