カウンタ
続いて順序回路も用いた例です。 図2-3のカウンタ回路は0x0から0xF(0000~1111b)までを繰り返しカウントアップするものです。一番下に入力端子が一つあり、立ち上がりのときにカウンタが+1されます。 4つのDフリップフロップを挟んでI0~I3の4つの出力があり、7セグデコーダと7セグLEDで結果が表示されるようになっています。 一番下のDフリップフロップに着目すると、出力Qからインバータを介して元に戻る回路があり、これにより0→1→0→1…が繰り返されるようになります。 また出力が次のDフリップフロップのクロック入力に繋がることにより、桁上げが起こるようになっています。 同じ回路を上へつなげて行けば何桁でも増やすことができます。
フリップフロップ回路のように、同じ入力値でも出力値が変わる順序回路を作るときはチャタリングに注意する必要があります。 チャタリングとは、自分で回路を工作し、入力をそのまま物理的なスイッチにした場合に問題になる現象で、入力を切り替える瞬間に 何度もオンオフを繰り返す現象です。 物理スイッチの場合必ず起こる現象で、カウンター回路でも同じことが言え、一度オンにしただけなのに(ごく短時間に何度もオンオフが繰り返され)、 出力表示が思った通りにならないということが起こります。クロック入力に物理スイッチを使う場合は、チャタリング防止回路を入れたり、 On/Offを分ける回路を入れるなどの工夫が必要になります。
図2-3の回路は回路自体はシンプルですが、クロックが順々にフリップフロップを伝わる方式のため、 後ろにいくほど信号の伝達が遅くなるという欠点があります。シミュレータのSimulation Speedのスライダーを左側に移動して 速度を遅くすると顕著に分かると思いますが、特に8とか0に戻るときに正しい表示が出るまでに時間が掛かります。