Digital-circuits-shift-registers

提供:Dev Guides
移動先:案内検索

デジタル回路-シフトレジスタ

1つのフリップフロップで1ビットの情報を保存できることがわかっています。 複数ビットの情報を保存するには、複数のフリップフロップが必要です。 バイナリデータを保持(格納)するために使用されるフリップフロップのグループは、*レジスタ*と呼ばれます。

レジスタがビットを右側または左側にシフトできる場合、*シフトレジスタ*と呼ばれます。 「N」ビットシフトレジスタには「N」個のフリップフロップが含まれます。 以下は、入力の適用と出力のアクセスに基づいた4種類のシフトレジスタです。

  • シリアル入力-シリアル出力シフトレジスタ
  • シリアル入力-パラレル出力シフトレジスタ
  • パラレル入力-シリアル出力シフトレジスタ
  • パラレル入力-パラレル出力シフトレジスタ

シリアル入力-シリアル出力(SISO)シフトレジスタ

シリアル入力を可能にし、シリアル出力を生成するシフトレジスタは、シリアル入力-シリアル出力*(SISO)*シフトレジスタとして知られています。 3ビットSISOシフトレジスタの*ブロック図*を次の図に示します。

SISO

このブロック図は、カスケード接続された3つのDフリップフロップで構成されています。 つまり、1つのDフリップフロップの出力が次のDフリップフロップの入力として接続されます。 同じクロック信号が各フリップフロップに適用されるため、これらのフリップフロップはすべて互いに同期しています。

このシフトレジスタでは、左端のDフリップフロップの入力からビットをシリアルに送信できます。 したがって、この入力は serial input とも呼ばれます。 クロック信号のポジティブエッジトリガーごとに、データはあるステージから次のステージにシフトします。 したがって、右端のDフリップフロップの出力からビットをシリアルに受信できます。 したがって、この出力は「シリアル出力」とも呼ばれます。

入力でLSBからMSBにバイナリ情報*“ 011” *をシリアルに送信して、3ビットSISOシフトレジスタの動作を見てみましょう。

Dフリップフロップの左端から右端への初期状態が$ Q _ \ {2} Q _ \ {1} Q _ \ {0} = 000 $であると仮定します。 次の表から、3ビットSISOシフトレジスタの動作を理解できます。

No of positive edge of Clock Serial Input Q2 Q1 Q0
0 - 0 0 0
1 1(LSB) 1 0 0
2 1 1 1 0
3 0(MSB) 0 1 1(LSB)
4 - - 0 1
5 - - - 0(MSB)

クロック信号がない場合のDフリップフロップの初期状態は、$ Q _ \ {2} Q _ \ {1} Q _ \ {0} = 000 $です。 ここで、シリアル出力は$ Q _ \ {0} $からのものです。 したがって、LSB(1)はクロックの3 ^ rd ^の正のエッジで受信され、MSB(0)はクロックの5 ^ th ^の正のエッジで受信されます。

したがって、3ビットSISOシフトレジスタは、有効な出力を生成するために5つのクロックパルスを必要とします。 同様に、* NビットSISOシフトレジスタ*は、「N」ビット情報をシフトするために 2N-1 クロックパルスを必要とします。

シリアル入力-パラレル出力(SIPO)シフトレジスタ

シリアル入力を可能にし、パラレル出力を生成するシフトレジスタは、シリアル入力-パラレル出力*(SIPO)*シフトレジスタとして知られています。 3ビットSIPOシフトレジスタの*ブロック図*を次の図に示します。

SIPO

この回路は、カスケード接続された3つのDフリップフロップで構成されています。 つまり、1つのDフリップフロップの出力が次のDフリップフロップの入力として接続されます。 同じクロック信号が各フリップフロップに適用されるため、これらのフリップフロップはすべて互いに同期しています。

このシフトレジスタでは、左端のDフリップフロップの入力からビットをシリアルに送信できます。 したがって、この入力は serial input とも呼ばれます。 クロック信号のポジティブエッジトリガーごとに、データはあるステージから次のステージにシフトします。 この場合、各Dフリップフロップの出力に並行してアクセスできます。 したがって、このシフトレジスタから*パラレル出力*を取得します。

入力でLSBからMSBにバイナリ情報*“ 011” *をシリアル送信することにより、3ビットSIPOシフトレジスタの動作を見てみましょう。

Dフリップフロップの左端から右端への初期状態が$ Q _ \ {2} Q _ \ {1} Q _ \ {0} = 000 $であると仮定します。 ここで、$ Q _ \ {2} $と$ Q _ \ {0} $はそれぞれMSBとLSBです。 次の表から、* 3ビットSIPOシフトレジスタの動作*を理解できます。

No of positive edge of Clock Serial Input Q2(MSB) Q1 Q0(LSB)
0 - 0 0 0
1 1(LSB) 1 0 0
2 1 1 1 0
3 0(MSB) 0 1 1

クロック信号がない場合のDフリップフロップの初期状態は、$ Q _ \ {2} Q _ \ {1} Q _ \ {0} = 000 $です。 バイナリ情報*「011」*は、クロックの3番目の正のエッジのDフリップフロップの出力で並列に取得されます。

したがって、3ビットのSIPOシフトレジスタは、有効な出力を生成するために3つのクロックパルスを必要とします。 同様に、* NビットSIPOシフトレジスタ*は、「N」ビット情報をシフトするために N クロックパルスを必要とします。

パラレル入力-シリアル出力(PISO)シフトレジスタ

パラレル入力を可能にし、シリアル出力を生成するシフトレジスタは、Parallel In-Serial Out *(PISO)*シフトレジスタとして知られています。 3ビットPISOシフトレジスタの*ブロック図*を次の図に示します。

PISO

この回路は、カスケード接続された3つのDフリップフロップで構成されています。 つまり、1つのDフリップフロップの出力が次のDフリップフロップの入力として接続されます。 同じクロック信号が各フリップフロップに適用されるため、これらのフリップフロップはすべて互いに同期しています。

このシフトレジスタでは、プリセットイネーブルを1にすることで、各Dフリップフロップに*パラレル入力*を適用できます。 クロック信号のポジティブエッジトリガーごとに、データはあるステージから次のステージにシフトします。 したがって、右端のDフリップフロップから*シリアル出力*を取得します。

プリセット情報を介してバイナリ情報*“ 011” *を並列に適用して、3ビットPISOシフトレジスタの動作を見てみましょう。

クロックのポジティブエッジの前にプリセット入力が適用されるため、左端から右端へのDフリップフロップの初期ステータスは$ Q _ \ {2} Q _ \ {1} Q _ \ {0} = 011 $になります。 次の表から、3ビットPISOシフトレジスタの動作を理解できます。

No of positive edge of Clock Q2 Q1 Q0
0 0 1 1(LSB)
1 - 0 1
2 - - 0(LSB)

ここで、シリアル出力は$ Q _ \ {0} $からのものです。 そのため、クロックのポジティブエッジを適用する前にLSB(1)を受信し、クロックの2 ^ nd ^ポジティブエッジでMSB(0)を受信します。

したがって、3ビットPISOシフトレジスタは、有効な出力を生成するために2つのクロックパルスを必要とします。 同様に、* NビットPISOシフトレジスタ*は、「N」ビット情報をシフトするために N-1 クロックパルスを必要とします。

並列入力-並列出力(PIPO)シフトレジスタ

パラレル入力を可能にし、パラレル出力を生成するシフトレジスタは、Parallel In-Parallel Out *(PIPO)*シフトレジスタとして知られています。 3ビットPIPOシフトレジスタの*ブロック図*を次の図に示します。

PIPO

この回路は、カスケード接続された3つのDフリップフロップで構成されています。 つまり、1つのDフリップフロップの出力が次のDフリップフロップの入力として接続されます。 同じクロック信号が各フリップフロップに適用されるため、これらのフリップフロップはすべて互いに同期しています。

このシフトレジスタでは、プリセットイネーブルを1にすることで、各Dフリップフロップに*パラレル入力*を適用できます。 プリセットまたはクリアを通じてパラレル入力を適用できます。 これら2つは非同期入力です。 つまり、フリップフロップは非同期入力の値に基づいて、対応する出力を生成します。 この場合、出力の影響はクロック遷移とは無関係です。 したがって、各Dフリップフロップから*パラレル出力*を取得します。

プリセット情報を介して並列にバイナリ情報*“ 011” *を適用して、3ビットPIPOシフトレジスタの動作を見てみましょう。

クロックのポジティブエッジの前にプリセット入力が適用されるため、左端から右端へのDフリップフロップの初期ステータスは$ Q _ \ {2} Q _ \ {1} Q _ \ {0} = 011 $になります。 そのため、クロックのポジティブエッジを適用する前に、Dフリップフロップの出力でバイナリ情報*“ 011” *が並列に取得されます。

したがって、3ビットPIPOシフトレジスタは、有効な出力を生成するためにゼロクロックパルスを必要とします。 同様に、* NビットPIPOシフトレジスタ*は、「N」ビット情報をシフトするためにクロックパルスを必要としません。