戻る カウンタのしくみ

カウンタ は、数を数えるための装置です。

数を数えるためには、数を数えられることと、数えた数を覚えていることが必要です。

下図は最も簡単な、1ビットのカウンタです。

4個の NAND回路が使用されていますが、右側の2個はメモリです。 SRAM で使用されているラッチ (latch) 回路で、 これによって数えた数を記憶します。

左側の2個は数を数えるためのスイッチとして働きます。

"CLOCK ボタン" をクリックしてみて下さい。 入力信号 0 から 1 に変わり、 NAND回路の前の信号も、変わった部分が赤で表示されます。 以後、カウンタの動作を5つのステップに分けて説明します。 ステップの番号が図の左下に表示されます。

"CLOCK ボタン" は "STEP ボタン" に変わっています。 "STEP ボタン" をクリックすると次に進みます。




STEP動       作
1 クロック信号が 0 から 1 に変わります。
2 まず左側の2個の NAND回路が、青色で表示されている入力の条件で動作します。
3 出力されたデータが赤で表示されます。 NAND回路は、2つの入力のいずれもが1の時に0を出力します。
4 ラッチ回路が青色で表示されている入力の条件で動作します。 ラッチは S が 0 だと 1 を、R が 0 だと 0 を記憶して Q に出力します。
5 出力されたデータが赤で表示されます。 また、クロック信号はこのときには 0 に戻っています。


1ビットのカウンタは、このようにして動作します *1

ただこれだけですから面白くも何もありませんが、重要なことは、 「クロック信号が1になる度に出力 Q は反転し、クロック信号を2個数えるともとの状態にもどる」 ということです。

こういうカウンタを2個、1個めのカウンタの Q 出力が2個めのカウンタのクロックになるようにつなぐ *2 と、 2個めのカウンタはクロック信号を4個数える度にもとの状態にもどるようになります。

1ビットのカウンタが3つあれば8まで、4つあれば 16 までのクロック信号を数えることができます。 どんなに大きい数でも、必要なビット数のカウンタを用意すれば、カウントすることができます。
カウンタ のページでは、8ビットのカウンタ (0 から 255 までの、256個の数を数えることができる) の例をあげました。


情報処理概論 に戻る  用語解説 に戻る  カウンタ に戻る  戻る 

このページの Java アプレットでは、RUN ボタンをクリックしておくと、CLOCK ボタンをクリックするだけで ステップが進むようになります。速さは FAST, SLOW ボタンで調節できます。


*1 カウンタの動作を説明するために5つのステップに分けましたが、 実際のカウンタでは、このような動作は一瞬のうち (例えば1億分の1秒) に終わります。
*2 ステップ5で触れていますが、このカウンタではクロック信号はすぐに0にもどらないといけませんから、 そのままつなぐことはできません。 すぐに0にもどるような回路、またはそうでなくてもいいカウンタの回路にしなければならないので、 実際のカウンタはもう少し複雑です。


2000.03.20  ueyama@infonet.co.jp