Digital-circuits-application-of-shift-registers
デジタル回路-シフトレジスタの適用
前の章では、4種類のシフトレジスタについて説明しました。 要件に基づいて、これらのシフトレジスタのいずれかを使用できます。 以下は、シフトレジスタのアプリケーションです。
- シフトレジスタは、パラレルデータをシリアルデータに変換する Parallel to Serial Converter として使用されます。 これは、A/Dコンバータ(ADC)ブロックの後のトランスミッタセクションで使用されます。
- シフトレジスタは、シリアルデータをパラレルデータに変換する Serial to parallel converter として使用されます。 これは、D/Aコンバーター(DAC)ブロックの前の受信機セクションで使用されます。
- シフトレジスタといくつかの追加ゲートにより、ゼロと1のシーケンスが生成されます。 したがって、それは sequence generator として使用されます。
- シフトレジスタは*カウンター*としても使用されます。 右端のDフリップフロップからの出力のタイプに基づいて2つのタイプのカウンターがあり、シリアル入力に接続されています。 それらは、リングカウンターとジョンソンリングカウンターです。
この章では、これら2つのカウンタについて1つずつ説明します。
リングカウンター
前の章で、シリアル入力-パラレル出力*(SIPO)*シフトレジスタの動作について説明しました。 シリアル形式で外部からデータを受け入れ、「N」ビットデータをシフトするには「N」クロックパルスが必要です。
同様に、* 'N’ビットリングカウンター*も同様の操作を実行します。 ただし、唯一の違いは、外部からデータを適用する代わりに、右端のDフリップフロップの出力が左端のDフリップフロップの入力として与えられることです。 したがって、リングカウンターは一連の状態(0と1のパターン)を生成し、* 'N’クロックサイクルごとに繰り返します*。
3ビットリングカウンターの*ブロック図*を次の図に示します。
3ビットリングカウンターには、3ビットSIPOシフトレジスタのみが含まれます。 右端のDフリップフロップの出力は、左端のDフリップフロップのシリアル入力に接続されます。
Dフリップフロップの左端から右端への初期状態は$ Q _ \ {2} Q _ \ {1} Q _ \ {0} = 001 $であるとします。 ここで、$ Q _ \ {2} $と$ Q _ \ {0} $はそれぞれMSBとLSBです。 次の表から「リングカウンターの動作」を理解できます。
No of positive edge of Clock | Serial Input = Q0 | Q2(MSB) | Q1 | Q0(LSB) |
---|---|---|---|---|
0 | - | 0 | 0 | 1 |
1 | 1 | 1 | 0 | 0 |
2 | 0 | 0 | 1 | 0 |
3 | 0 | 0 | 0 | 1 |
クロック信号がない場合のDフリップフロップの初期ステータスは、$ Q _ \ {2} Q _ \ {1} Q _ \ {0} = 001 $です。 このステータスは、クロック信号の3つの正のエッジ遷移ごとに繰り返されます。
したがって、クロック信号のすべてのポジティブエッジに対して次の*操作*が実行されます。
- 最初のDフリップフロップのシリアル入力は、3番目のフリップフロップの前の出力を取得します。 したがって、最初のDフリップフロップの現在の出力は、3番目のフリップフロップの前の出力と等しくなります。
- 1番目と2番目のDフリップフロップの前の出力は、1ビット右にシフトされます。 つまり、2番目と3番目のDフリップフロップの現在の出力は、1番目と2番目のDフリップフロップの前の出力と等しくなります。
ジョンソンリングカウンター
ジョンソンリングカウンター*の操作は、リングカウンターの操作に似ています。 ただし、唯一の違いは、右端のDフリップフロップの補完された出力が、通常の出力ではなく、左端のDフリップフロップの入力として与えられることです。 したがって、「N」ビットのジョンソンリングカウンターは一連の状態(0と1のパターン)を生成し、「2N」クロックサイクルごとに繰り返します。
ジョンソンリングカウンターは、*ツイストリングカウンター*およびスイッチテールリングカウンターとも呼ばれます。 3ビットのジョンソンリングカウンターの*ブロック図*を次の図に示します。
3ビットのJohnson Ringカウンターには、3ビットのSIPOシフトレジスタのみが含まれています。 右端のDフリップフロップの補数出力は、左端のDフリップフロップのシリアル入力に接続されます。
最初に、すべてのDフリップフロップがクリアされたと仮定します。 したがって、$ Q _ \ {2} Q _ \ {1} Q _ \ {0} = 000 $です。 ここで、$ Q _ \ {2} $と$ Q _ \ {0} $はそれぞれMSBとLSBです。 次の表から、ジョンソンリングカウンターの*動作*を理解できます。
No of positive edge of Clock | Serial Input = Q0 | Q2(MSB) | Q1 | Q0(LSB) |
---|---|---|---|---|
0 | - | 0 | 0 | 0 |
1 | 1 | 1 | 0 | 0 |
2 | 1 | 1 | 1 | 0 |
3 | 1 | 1 | 1 | 1 |
4 | 0 | 0 | 1 | 1 |
5 | 0 | 0 | 0 | 1 |
6 | 0 | 0 | 0 | 0 |
クロック信号がない場合のDフリップフロップの初期状態は、$ Q _ \ {2} Q _ \ {1} Q _ \ {0} = 000 $です。 この状態は、クロック信号の6つの正のエッジ遷移ごとに繰り返されます。
したがって、クロック信号のすべてのポジティブエッジに対して次の*操作*が実行されます。
- 最初のDフリップフロップのシリアル入力は、3番目のフリップフロップの以前の補完された出力を取得します。 したがって、最初のDフリップフロップの現在の出力は、3番目のフリップフロップの以前の補完された出力と等しくなります。
- 1番目と2番目のDフリップフロップの前の出力は、1ビット右にシフトされます。 つまり、2番目と3番目のDフリップフロップの現在の出力は、1番目と2番目のDフリップフロップの前の出力と等しくなります。