同期式バイナリカウンタとは、バイナリカウンタを構成する各フリップフロップがクロック同期されているバイナリカウンタのことです。
例えば、Dフリップフロップを利用した以下の論理回路があったとします。CLKはクロックです。
___Q___[0]]~___Q___[2]]を入力、___D___[0]]~___D___[2]]を出力として、以下の真理値表となる論理回路を構成し、上記の回路と接続すると、カウントアップ型の3ビットの同期式バイナリカウンタを作れます。
___Q___[2]] | ___Q___[1]] | ___Q___[0]] | ___D___[2]] | ___D___[1]] | ___D___[0]] |
---|---|---|---|---|---|
0 | 0 | 0 | 0 | 0 | 1 |
0 | 0 | 1 | 0 | 1 | 0 |
0 | 1 | 0 | 0 | 1 | 1 |
0 | 1 | 1 | 1 | 0 | 0 |
1 | 0 | 0 | 1 | 0 | 1 |
1 | 0 | 1 | 1 | 1 | 0 |
1 | 1 | 0 | 1 | 1 | 1 |
1 | 1 | 1 | 0 | 0 | 0 |
なお、真理値表は、選言標準形の論理式で表すことができるので、ANDゲートとORゲートとNOTゲートを使って、真理値表に対応した論理回路を作れます。Qは、DフリップフロップのQを利用できます。
タイミング図は、以下です。
例えば、Dフリップフロップを利用した以下の論理回路があったとします。
___Q___[0]]~___Q___[2]]を入力、___D___[0]]~___D___[2]]を出力として、以下の真理値表となる論理回路を構成し、上記の回路と接続すると、カウントダウン型の3ビットの同期式バイナリカウンタを作れます。
___Q___[2]] | ___Q___[1]] | ___Q___[0]] | ___D___[2]] | ___D___[1]] | ___D___[0]] |
---|---|---|---|---|---|
1 | 1 | 1 | 1 | 1 | 0 |
1 | 1 | 0 | 1 | 0 | 1 |
1 | 0 | 1 | 1 | 0 | 0 |
1 | 0 | 0 | 0 | 1 | 1 |
0 | 1 | 1 | 0 | 1 | 0 |
0 | 1 | 0 | 0 | 0 | 1 |
0 | 0 | 1 | 0 | 0 | 0 |
0 | 0 | 0 | 1 | 1 | 1 |
タイミング図は、以下です。
同期式バイナリカウンタは、クロックに同期して各フリップフロップが同時に動作するので、非同期式バイナリカウンタのように遅延が積み上がらず、高速なバイナリカウンタを作れます。
ただし、同期式バイナリカウンタは、非同期式バイナリカウンタと比べて、論理回路の規模が大きくなります。