「カウンタ (電子回路)」の版間の差分
Revert to 2005年5月24日 (火) 01:23の版 (いたずら書き) |
→関連項目: 項目追加 |
||
(32人の利用者による、間の44版が非表示) | |||
1行目: | 1行目: | ||
'''カウンタ'''とは、クロックパルスを数えることにより数値の処理を行うための[[論理回路]]([[デジタル回路]])である。カウンタにより計数された[[2進数]]、あるいは[[2進化10進数]]を、[[デコーダ]]を通して7セグメント[[発光ダイオード|LED]]などで表示される数字に変換することにより、人間が認識できる情報となる。また、情報を[[エンコーダ]]により2進数などに変換することで、カウンタによる計数処理を行うことができる。 |
'''カウンタ''' ({{lang-en-short|counter}})とは、クロックパルスを数えることにより数値の処理を行うための[[論理回路]]([[デジタル回路]])である。カウンタにより計数された[[二進法|2進数]]、あるいは[[二進化十進表現|2進化10進数]]を、[[デコーダ]]を通して[[7セグメントディスプレイ|7セグメント]][[発光ダイオード|LED]]などで表示される数字に変換することにより、人間が認識できる情報となる。また、情報を[[エンコーダ]]により2進数などに変換することで、カウンタによる計数処理を行うことができる。 |
||
[[水晶 |
[[水晶振動子]]を用いた[[発振回路]]によって発生された非常に高い[[周波数]](例えば2<sup>15</sup>=32,768[[ヘルツ|Hz]])の電気信号を、低い周波数(例えば1Hz)の信号に変換するためにも用いられる。このための回路を'''分周器(プリスケーラ)'''と呼ぶ。分周器は[[1926年]]、[[日本人]]の[[古賀逸策]]によって発明された。 |
||
==カウンタの形式== |
==カウンタの形式== |
||
必要とする出力・対雑音特性・速度などに応じて各種カウンタが使用される。 |
必要とする出力・対雑音特性・速度などに応じて各種のカウンタが使用される。 |
||
各ビットの重み付けがあり変化の周期が違うものを'''ウェイティング・カウンタ''' ({{lang|en|weighting counter}}) と呼び、バイナリ・カウンタ、グレイ・コード・カウンタはこれに含まれる。対して、各ビットに重み付けがないものを'''ノンウェイティング・カウンタ''' ({{lang|en|nonweighting counter}}) と呼び、リング・カウンタ、ジョンソン・カウンタ、ワンホット・ステート・カウンタはこれに含まれる。[[線形帰還シフトレジスタ]] ({{lang|en|Linear feedback Shift Register}}) と呼ばれ、任意のビット列をクロック・パルスごとに隣りのフリップフロップへ移動していく機能を持つレジスタがあり、ノンウェイティング・カウンタにはこれがよく用いられる。 |
|||
⚫ | |||
ウェイティング・カウンタ (weighting) とは、各ビットの重み付けがあり変化の周期が違うものである。 |
|||
また、ビット列の組み合わせを全て使用するものを'''フィルド・コード・カウンタ''' ({{lang|en|filled code counter}}) と呼ぶ。ビット列を全て使用するため、大きな数のカウントに適するが、デコーダは複雑になる。バイナリ・カウンタ、グレイ・コード・カウンタ、2ビットのジョンソン・カウンタはこれに含まれる。対して、ビット列の組み合わせを制限したものを'''アンフィルド・コード・カウンタ''' ({{lang|en|unfilled code counter}}) と呼ぶ。使用していない組み合わせになった場合の回復回路が必要だが、デコード回路が小さく高速化が可能である。リニア・フィードバック・シフト・レジスタ、リング・カウンタ、3ビット以上のジョンソン・カウンタ、ワンホット・ステート・カウンタはこれに含まれる。 |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
[[ファイル:4BitSynchronousCounterWithDFlipFlop.svg|サムネイル|360px|D型フリップフロップによる4ビット同期型カウンタ]] |
|||
⚫ | |||
⚫ | |||
4段バイナリー・カウンタの出力 |
|||
⚫ | |||
0123456789ABCDEF |
0123456789ABCDEF |
||
Q<sub>1</sub>0101010101010101 |
Q<sub>1</sub>0101010101010101 |
||
21行目: | 23行目: | ||
Q<sub>4</sub>0000000011111111 |
Q<sub>4</sub>0000000011111111 |
||
===グレイ・コード・カウンタ=== |
|||
グレイ・コード・カウンタとは、同時に1つのビットしか変化しないようにコードを割り当て、デコード時のスタティック・ハザード(短時間のスパイク状のノイズ)を防止したものである。 |
グレイ・コード・カウンタ ({{lang|en|Gray code counter}}) とは、同時に1つのビットしか変化しないよう、数値に[[グレイ・コード]]を割り当て、デコード時の[[ハザード (論理回路)#静的ハザード|スタティック・ハザード]](短時間のスパイク状のノイズ)を防止したものである。 |
||
4段グレイ・コード・カウンタの |
4段グレイ・コード・カウンタの動作 |
||
0123456789ABCDEF |
0123456789ABCDEF |
||
Q<sub>1</sub> |
Q<sub>1</sub>0110011001100110 |
||
Q<sub>2</sub> |
Q<sub>2</sub>0011110000111100 |
||
Q<sub>3</sub> |
Q<sub>3</sub>0000111111110000 |
||
Q<sub>4</sub> |
Q<sub>4</sub>0000000011111111 |
||
=== |
===リング・カウンタ=== |
||
[[リングカウンタ#ストレート・リングカウンタ|リング・カウンタ]] ({{lang|en|ring counter}}) とは、最終段の出力を1段目の入力に接続したもので、特定の初期値をフリップフロップにロードしておき、そのビット列をクロック・パルスごとに隣りのフリップフロップへ移動して行くもの。[[シフトレジスタ]]に似ているが、すべてのビット列をシフトし終えた(以下の例では太字の列)次のステップで初期値にリセットされる点が異なる。 |
|||
初期値を0011とした4ビットのリング・カウンタの動作(Q1が[[最上位ビット]]、Q4が[[最下位ビット]]である) |
|||
⚫ | |||
012'''3'''4 |
|||
リング・カウンタとは、特定の初期値をフリップフロップにロードしておき、フリップフロップのビット列をクロック・パルスごとに隣りのフリップフロップへ移動して行くもの。 |
|||
Q<sub>1</sub>100'''1'''1 |
|||
Q<sub>2</sub>110'''0'''1 |
|||
Q<sub>3</sub>011'''0'''0 |
|||
Q<sub>4</sub>001'''1'''0 |
|||
===ジョンソン・カウンタ=== |
|||
ジョンソン・カウンタとは、2つのビットをデコードするだけで、任意の信号を取り出せるようにコードを割り当てたもの。"1"と"0"の期間が同じ対称形のものと、不均一な非対称型とがある。 |
[[リングカウンタ#ジョンソンカウンタ|ジョンソン・カウンタ]] ({{lang|en|Johnson counter}}) とは、2つのビットをデコードするだけで、任意の信号を取り出せるようにコードを割り当てたもの。"1"と"0"の期間が同じ対称形のものと、不均一な非対称型とがあるが、いずれも[[ハザード (論理回路)#静的ハザード|スタティック・ハザード]]はない。 |
||
4ビットの対称形ジョンソン・カウンタの |
4ビットの対称形ジョンソン・カウンタの動作 |
||
01234567 |
01234567 |
||
Q<sub>1</sub>01111000 |
Q<sub>1</sub>01111000 |
||
47行目: | 53行目: | ||
Q<sub>4</sub>00001111 |
Q<sub>4</sub>00001111 |
||
===ワンホットステートカウンタ=== |
===ワンホット・ステート・カウンタ=== |
||
ワンホットステートカウンタとは、 |
[[リングカウンタ#ワンホットカウンタ|ワンホット・ステート・カウンタ]] ({{lang|en|one-hot state counter}}) とは、計数に対応するフリップフロップのみを1とし、他は0としてデコードを不要としたものである。数える数だけフリップフロップが必要なためカウンタ本体の回路規模は最も大きくなる、外来ノイズなどによって動作が化けたなどの場合の検出は複雑である、といった点が不利である。一方、デコーダが不要ないし極く単純、次の状態を決定する論理をそのまま埋め込むことができる、以上によりカウンタ本体も総合的にも高速、といった点が有利である。 |
||
4ビットのワンホットステートカウンタの |
4ビットのワンホット・ステート・カウンタの動作 |
||
0123 |
0123 |
||
Q<sub>1</sub>1000 |
Q<sub>1</sub>1000 |
||
56行目: | 62行目: | ||
Q<sub>3</sub>0010 |
Q<sub>3</sub>0010 |
||
Q<sub>4</sub>0001 |
Q<sub>4</sub>0001 |
||
===フィルド・コード・カウンタ=== |
|||
フィルド・コード・カウンタ (filled code) とは、ビット列の組み合わせを全て使用するもの。ビット列を全て使用するためカウンタ本体のゲート規模が小さい。 |
|||
*バイナリー・カウンタ |
|||
*グレイ・コード・カウンタ |
|||
*2ビット・ジョンソン・カウンタ |
|||
===アン・フィルド・コード・カウンタ=== |
|||
アン・フィルド・コード・カウンタ (unfilled code) とは、ビット列の組み合わせの一部のみを使用するもの。使用していない組み合わせになった場合の回復回路が必要である。カウンタ本体のゲート規模が大きくなるが、デコード回路が小さく高速化が可能である。 |
|||
⚫ | |||
*リング・カウンタ |
|||
*3ビット以上のジョンソン・カウンタ |
|||
*ワンホットステートカウンタ |
|||
==各種機能== |
==各種機能== |
||
次のような機能を持つカウンタもある。 |
|||
;アップ・ダウン機能 |
|||
:通常の、数値を順に加算して計数する機能に加えて、数値を減算して計数したり、またこれらの機能を切り替えできる機能。 |
|||
;プリセット機能 |
|||
:0以外の初期値をあらかじめセットしておき、その値から計数を行う機能。 |
|||
==関連項目== |
==関連項目== |
||
{{Commons|Category:Counter circuits}} |
|||
*[[プログラマブル・カウンタ]] |
*[[プログラマブル・カウンタ]] |
||
*[[デジタル回路]] - [[論理回路]] - [[ハードウェア記述言語]] |
* [[デジタル回路]] - [[論理回路]] - [[ハードウェア記述言語]] |
||
*[[ |
* [[汎用ロジックIC]] |
||
*[[ |
* [[二進法]] - [[二進化十進表現]] |
||
*[[フリップフロップ]] |
* [[フリップフロップ]] |
||
⚫ | |||
* [[ウォッチドッグタイマー]] |
|||
⚫ | |||
{{Normdaten}} |
|||
[[Category:デジタル回路|かうんた]] |
[[Category:デジタル回路|かうんた]] |
2023年2月12日 (日) 15:06時点における最新版
カウンタ (英: counter)とは、クロックパルスを数えることにより数値の処理を行うための論理回路(デジタル回路)である。カウンタにより計数された2進数、あるいは2進化10進数を、デコーダを通して7セグメントLEDなどで表示される数字に変換することにより、人間が認識できる情報となる。また、情報をエンコーダにより2進数などに変換することで、カウンタによる計数処理を行うことができる。
水晶振動子を用いた発振回路によって発生された非常に高い周波数(例えば215=32,768Hz)の電気信号を、低い周波数(例えば1Hz)の信号に変換するためにも用いられる。このための回路を分周器(プリスケーラ)と呼ぶ。分周器は1926年、日本人の古賀逸策によって発明された。
カウンタの形式
[編集]必要とする出力・対雑音特性・速度などに応じて各種のカウンタが使用される。
各ビットの重み付けがあり変化の周期が違うものをウェイティング・カウンタ (weighting counter) と呼び、バイナリ・カウンタ、グレイ・コード・カウンタはこれに含まれる。対して、各ビットに重み付けがないものをノンウェイティング・カウンタ (nonweighting counter) と呼び、リング・カウンタ、ジョンソン・カウンタ、ワンホット・ステート・カウンタはこれに含まれる。線形帰還シフトレジスタ (Linear feedback Shift Register) と呼ばれ、任意のビット列をクロック・パルスごとに隣りのフリップフロップへ移動していく機能を持つレジスタがあり、ノンウェイティング・カウンタにはこれがよく用いられる。
また、ビット列の組み合わせを全て使用するものをフィルド・コード・カウンタ (filled code counter) と呼ぶ。ビット列を全て使用するため、大きな数のカウントに適するが、デコーダは複雑になる。バイナリ・カウンタ、グレイ・コード・カウンタ、2ビットのジョンソン・カウンタはこれに含まれる。対して、ビット列の組み合わせを制限したものをアンフィルド・コード・カウンタ (unfilled code counter) と呼ぶ。使用していない組み合わせになった場合の回復回路が必要だが、デコード回路が小さく高速化が可能である。リニア・フィードバック・シフト・レジスタ、リング・カウンタ、3ビット以上のジョンソン・カウンタ、ワンホット・ステート・カウンタはこれに含まれる。
バイナリ・カウンタ
[編集]![](http://upload.wikimedia.org/wikipedia/commons/thumb/b/b7/4BitSynchronousCounterWithDFlipFlop.svg/360px-4BitSynchronousCounterWithDFlipFlop.svg.png)
バイナリ・カウンタ (binary counter) とは、2進数を出力するカウンタである。D型フリップフロップの出力をD入力および次段のCLK入力に接続し、各段からのQ出力を設けた回路である。このような接続により、初段に入力されたクロックパルスの立ち上がりが1個増えるごとに、Q出力の0と1が反転を繰り返すため、初段からの出力は入力されたクロックパルスの数を2進数表示した場合の最下位の桁、2段目は下から2番目の桁…というように、2進数による出力を行うことができる。
n段のバイナリ・カウンタは、クロックの周波数を1/2nに変換すると見ることもできる。2進化10進数でカウンタ動作を行うには、各桁の出力が1010(10進数の『10』)に達した場合に0000にリセットする回路を設ける。同様に、数値を検出してリセットすることにより、クロックパルスの周波数を 1/(任意の数) に変換できる。
4段バイナリ・カウンタの動作
0123456789ABCDEF Q10101010101010101 Q20011001100110011 Q30000111100001111 Q40000000011111111
グレイ・コード・カウンタ
[編集]グレイ・コード・カウンタ (Gray code counter) とは、同時に1つのビットしか変化しないよう、数値にグレイ・コードを割り当て、デコード時のスタティック・ハザード(短時間のスパイク状のノイズ)を防止したものである。
4段グレイ・コード・カウンタの動作
0123456789ABCDEF Q10110011001100110 Q20011110000111100 Q30000111111110000 Q40000000011111111
リング・カウンタ
[編集]リング・カウンタ (ring counter) とは、最終段の出力を1段目の入力に接続したもので、特定の初期値をフリップフロップにロードしておき、そのビット列をクロック・パルスごとに隣りのフリップフロップへ移動して行くもの。シフトレジスタに似ているが、すべてのビット列をシフトし終えた(以下の例では太字の列)次のステップで初期値にリセットされる点が異なる。
初期値を0011とした4ビットのリング・カウンタの動作(Q1が最上位ビット、Q4が最下位ビットである)
01234 Q110011 Q211001 Q301100 Q400110
ジョンソン・カウンタ
[編集]ジョンソン・カウンタ (Johnson counter) とは、2つのビットをデコードするだけで、任意の信号を取り出せるようにコードを割り当てたもの。"1"と"0"の期間が同じ対称形のものと、不均一な非対称型とがあるが、いずれもスタティック・ハザードはない。
4ビットの対称形ジョンソン・カウンタの動作
01234567 Q101111000 Q200111100 Q300011110 Q400001111
ワンホット・ステート・カウンタ
[編集]ワンホット・ステート・カウンタ (one-hot state counter) とは、計数に対応するフリップフロップのみを1とし、他は0としてデコードを不要としたものである。数える数だけフリップフロップが必要なためカウンタ本体の回路規模は最も大きくなる、外来ノイズなどによって動作が化けたなどの場合の検出は複雑である、といった点が不利である。一方、デコーダが不要ないし極く単純、次の状態を決定する論理をそのまま埋め込むことができる、以上によりカウンタ本体も総合的にも高速、といった点が有利である。
4ビットのワンホット・ステート・カウンタの動作
0123 Q11000 Q20100 Q30010 Q40001
各種機能
[編集]次のような機能を持つカウンタもある。
- アップ・ダウン機能
- 通常の、数値を順に加算して計数する機能に加えて、数値を減算して計数したり、またこれらの機能を切り替えできる機能。
- プリセット機能
- 0以外の初期値をあらかじめセットしておき、その値から計数を行う機能。