「カウンタ (電子回路)」の版間の差分

削除された内容 追加された内容
rv/v, Undo revision 17081956 by 221.31.251.155 (会話)
Ceimur (会話 | 投稿記録)
編集の要約なし
1行目:
'''カウンタ'''とは、クロックパルスを数えることにより数値の処理を行うための[[論理回路]]([[デジタル回路]])である。カウンタにより計数された[[二進法|2進数]]、あるいは[[二進化十進表現|2進化10進数]]を、[[デコーダ]]を通して7セグメント[[発光ダイオード|LED]]などで表示される数字に変換することにより、人間が認識できる情報となる。また、情報を[[エンコーダ]]により2進数などに変換することで、カウンタによる計数処理を行うことができる。
 
[[水晶振動子]]を用いた[[発振回路]]によって発生された非常に高い[[周波数]](例えば32,768[[Hz]])の電気信号を、低い周波数(例えば1Hz)の信号に変換するためにも用いられる。このための回路を'''分周器(プリスケーラ)'''と呼ぶ。分周器は[[1926年]]、[[日本人]]の[[古賀逸策]]によって発明された。
 
==カウンタの形式==
必要とする出力・対雑音特性・速度などに応じて各種カウンタが使用される。
 
各ビットの重み付けがあり変化の周期が違うものを'''ウェイティング・カウンタ''' (weighting) と呼び、バイナリ・カウンタ、グレイ・コード・カウンタはこれに含まれる。対して、各ビットに重み付けがないものを'''ノンウェイティング・カウンタ''' (nonweighting) と呼び、リング・カウンタ、ジョンソン・カウンタ、ワンホット・ステート・カウンタはこれに含まれる。リニア・フィードバック・シフト・レジスタ (Linear feedback Shift Register) と呼ばれ、任意のビット列をクロック・パルスごとに隣りのフリップフロップへ移動していく機能を持つレジスタがあり、ノンウェイティング・カウンタにはこれがよく用いられる。
===ウェイティング・カウンタ===
ウェイティング・カウンタ (weighting) とは、各ビットの重み付けがあり変化の周期が違うものである。
 
また、ビット列の組み合わせを全て使用するものを'''フィルド・コード・カウンタ''' (filled code) と呼ぶ。ビット列を全て使用するため、大きな数のカウントに適するが、デコーダは複雑になる。バイナリ・カウンタ、グレイ・コード・カウンタ、2ビットのジョンソン・カウンタはこれに含まれる。対して、ビット列の組み合わせを制限したものを'''アンフィルド・コード・カウンタ''' (unfilled code) と呼ぶ。使用していない組み合わせになった場合の回復回路が必要だが、デコード回路が小さく高速化が可能である。リニア・フィードバック・シフト・レジスタ、リング・カウンタ、3ビット以上のジョンソン・カウンタ、ワンホット・ステート・カウンタはこれに含まれる。
====バイナリー・カウンタ====
'''バイナリー・カウンタ'''とは、2進数を出力するカウンタである。D型[[フリップフロップ]]の<math>\bar{Q}</math>出力をD入力および次段のCLK入力に接続し、各段からのQ出力を設けた回路である。このような接続により、初段に入力されたクロックパルスの立ち上がりが1個増えるごとに、Q出力の0と1が反転を繰り返すため、初段からの出力は入力されたクロックパルスの数を2進数表示した場合の最下位の桁、2段目は下から2番目の桁…というように、2進数による出力を行うことができる。
 
===ウェティングナリ・カウンタ===
n段のバイナリー・カウンタは、クロックの周波数を1/2<sup>n</sup>に変換すると見ることもできる。[[2進化10進数]]でカウンタ動作を行うには、各桁の出力が1010(10進数の『10』)に達した場合に0000に[[リセット]]する回路を設ける。同様に、数値を検出してリセットすることにより、クロックパルスの周波数を 1/(任意の数) に変換できる。
'''バイナリ・カウンタ''' (binary) とは、2進数を出力するカウンタである。D型[[フリップフロップ]]の<math>\bar{Q}</math>出力をD入力および次段のCLK入力に接続し、各段からのQ出力を設けた回路である。このような接続により、初段に入力されたクロックパルスの立ち上がりが1個増えるごとに、Q出力の0と1が反転を繰り返すため、初段からの出力は入力されたクロックパルスの数を2進数表示した場合の最下位の桁、2段目は下から2番目の桁…というように、2進数による出力を行うことができる。
 
n段のバイナリ・カウンタは、クロックの周波数を1/2<sup>n</sup>に変換すると見ることもできる。[[2進化10進数]]でカウンタ動作を行うには、各桁の出力が1010(10進数の『10』)に達した場合に0000に[[リセット]]する回路を設ける。同様に、数値を検出してリセットすることにより、クロックパルスの周波数を 1/(任意の数) に変換できる。
4段バイナリー・カウンタの出力
 
====4段バイナリ・カウンタ====の動作
0123456789ABCDEF
Q<sub>1</sub>0101010101010101
21 ⟶ 22行目:
Q<sub>4</sub>0000000011111111
 
====グレイ・コード・カウンタ====
グレイ・コード・カウンタ (gray code) とは、同時に1つのビットしか変化しないよう、数値[[グレイ・コード]]を割り当て、デコード時のスタティック・ハザード(短時間のスパイク状のノイズ)を防止したものである。
 
4段グレイ・コード・カウンタの出力動作
0123456789ABCDEF
Q<sub>1</sub>00110011001100110110011001100110
Q<sub>2</sub>01111000011110000011110000111100
Q<sub>3</sub>11100000000111110000111111110000
Q<sub>4</sub>11111110000000010000000011111111
 
===ノン・ウェイティング・カウンタ===
ノン・ウェイティング・カウンタ (nonweightingring) とは、各ビットに重み付けがないものである。リニア・フィードバック・シフト・レジスター (Linear feedback Shift Register) と呼ばれる任意特定初期値をロードしたフリップフロップにロードしておき、そのビット列をクロック・パルスごとに隣りのフリップフロップへ移動して行く回路が基本となるもの
 
====初期値を0011とした4ビットのリング・カウンタ====の動作
0123
リング・カウンタとは、特定の初期値をフリップフロップにロードしておき、フリップフロップのビット列をクロック・パルスごとに隣りのフリップフロップへ移動して行くもの。
Q<sub>1</sub>1001
Q<sub>2</sub>1100
Q<sub>3</sub>0110
Q<sub>4</sub>0011
 
====ジョンソン・カウンタ====
ジョンソン・カウンタ (Johnson) とは、2つのビットをデコードするだけで、任意の信号を取り出せるようにコードを割り当てたもの。"1"と"0"の期間が同じ対称形のものと、不均一な非対称型とがあるが、いずれもスタティック・ハザードはない
 
4ビットの対称形ジョンソン・カウンタの出力動作
01234567
Q<sub>1</sub>01111000
47 ⟶ 52行目:
Q<sub>4</sub>00001111
 
===ワンホットステートカウンタ===
ワンホットステートカウンタ (one-hot state) とは、デコード不要と計数に対応するため、クロックパルスの数に一致したフリップフロップの出力のみを1とし、他は0とするしてデコード不要としたもの。数える数だけフリップフロップが必要なため、カウンタ本体の回路規模最も大きくなる。
 
4ビットのワンホットステートカウンタの出力動作
0123
Q<sub>1</sub>1000
56 ⟶ 61行目:
Q<sub>3</sub>0010
Q<sub>4</sub>0001
 
===フィルド・コード・カウンタ===
フィルド・コード・カウンタ (filled code) とは、ビット列の組み合わせを全て使用するもの。ビット列を全て使用するためカウンタ本体のゲート規模が小さい。
*バイナリー・カウンタ
*グレイ・コード・カウンタ
*2ビット・ジョンソン・カウンタ
 
===アン・フィルド・コード・カウンタ===
アン・フィルド・コード・カウンタ (unfilled code) とは、ビット列の組み合わせの一部のみを使用するもの。使用していない組み合わせになった場合の回復回路が必要である。カウンタ本体のゲート規模が大きくなるが、デコード回路が小さく高速化が可能である。
*リニア・シフト・レジスター
*リング・カウンタ
*3ビット以上のジョンソン・カウンタ
*ワンホットステートカウンタ
 
==各種機能==
カウンタには他にも次のような機能を持つカウンタもある。
;アップ・ダウン機能
:通常のカウンタは、数値を順に加算して計数するものであるが、逆機能加えて、数値を減算して計数するカウンタしたりあるいはまたこれらの機能を切り替えできるカウンタもある機能
;プリセット機能
:0以外の初期値をあらかじめセットしておき、その値から計数を行う機能。
81 ⟶ 73行目:
*[[デジタル回路]] - [[論理回路]] - [[ハードウェア記述言語]]
*[[標準ロジックIC]]
*[[2]] - [[2進化10表現]]
*[[フリップフロップ]]
 
*プリスケーラ→分周器
[[Category:デジタル回路|かうんた]]