コンテンツにスキップ

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

出典: フリー百科事典『ウィキペディア(Wikipedia)』
削除された内容 追加された内容
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進数などに変換することで、カウンタによる計数処理を行うことができる。


[[水晶振子]]を用いた[[発振回路]]によって発生された非常に高い[[周波数]](例えば32,768[[Hz]])の電気信号を、低い周波数(例えば1Hz)の信号に変換するためにも用いられる。このための回路を'''分周器'''と呼ぶ。
[[水晶振子]]を用いた[[発振回路]]によって発生された非常に高い[[周波数]](例えば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ビット以上のジョンソン・カウンタ、ワンホット・ステート・カウンタはこれに含まれる。
====バイナリ・カウンタ====
'''バイナリ・カウンタ'''とは、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/(任意の数) に変換できる。
[[ファイル:4BitSynchronousCounterWithDFlipFlop.svg|サムネイル|360px|D型フリップフロップによる4ビット同期型カウンタ]]
バイナリ・カウンタ ({{lang|en|binary counter}}) とは、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
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>0011001100110011
Q<sub>1</sub>0110011001100110
Q<sub>2</sub>0111100001111000
Q<sub>2</sub>0011110000111100
Q<sub>3</sub>1110000000011111
Q<sub>3</sub>0000111111110000
Q<sub>4</sub>1111111000000001
Q<sub>4</sub>0000000011111111


===ノン・ウェイティング・カウンタ===
===ング・カウンタ===
ン・ウェイティング・カウンタ (nonweighting) とは、各ビット重み付けがないものである。リニア・フィードバック・シフト・レジスター (Linear feedback Shift Register) と呼ばれる任意の値をロードしたフリップフロップのビット列をクロック・パルスごとに隣りのフリップフロップへ移動して行く回路基本となる。
[[リグカウンタ#ストレートリングカンタ|リング・カウンタ]] ({{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


===ワンホットステートカウンタ===
===ワンホットステートカウンタ===
ワンホットステートカウンタとは、デコード不要とするため、クロックパルスの数に一致したフリップフロップの出力のみを1、他は0とするもの。数える数だけフリップフロップが必要なためカウンタ本体の回路規模最も大きくなる。
[[リングカウンタ#ワンホットカウンタ|ワンホットステートカウンタ]] ({{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以外の初期値をあらかじめセットしておき、その値から計数を行う機能。
:0以外の初期値をあらかじめセットしておき、その値から計数を行う機能。


==関連項目==
==関連項目==
{{Commons|Category:Counter circuits}}
*[[プログラマブル・カウンタ]]
*[[プログラマブル・カウンタ]]
*[[デジタル回路]] - [[論理回路]] - [[ハードウェア記述言語]]
* [[デジタル回路]] - [[論理回路]] - [[ハードウェア記述言語]]
*[[標準ロジックIC]]
* [[汎用ロジックIC]]
*[[2]] - [[2進化10]]
* [[]] - [[進化表現]]
*[[フリップフロップ]]
* [[フリップフロップ]]
* [[シフトレジスタ]]
* [[ウォッチドッグタイマー]]
* [[リングカウンタ]]


{{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ビット以上のジョンソン・カウンタ、ワンホット・ステート・カウンタはこれに含まれる。

バイナリ・カウンタ

[編集]
D型フリップフロップによる4ビット同期型カウンタ

バイナリ・カウンタ (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以外の初期値をあらかじめセットしておき、その値から計数を行う機能。

関連項目

[編集]