シフトレジスタは、データの保存や転送方法を制御することでデジタルシステムで有用です。その中でも、シリアル入力パラレル出力(SIPO)シフトレジスタは、シリアル入力をパラレル出力に効率的に変換する方法を提供します。この記事では、その構造、信号レベルの動作、タイミング挙動について説明します。

SIPOシフトレジスターとは何か?
シリアル入力パラレルアウト(SIPO)シフトレジスタは、1ビットずつの2進データを単一のシリアル入力で受け取り、各ビットをフリップフロップの連鎖として保存するデジタル回路です。一度保存されると、すべてのビットは複数の並列出力を通じて一括で読み取ることができます。主な機能はシリアルデータを並列データに変換することです。
SIPOシフトレジスタの動作原理とデータ変換

SIPOシフトレジスタは、クロック制御の遷移を用いて一連のフリップフロップを通過させ、逐次入力ビットを同時に保存し、後に出力で同時にアクセスできるようにします。
シリアル入力(SI)
シリアル入力はレジスタの最初のフリップフロップに1ビットずつ供給します。アクティブクロックエッジが発生する前に、入力ビットが安定していなければ正しくキャプチャされません。クロックエッジが到達すると、新しいビットが第1段階に入り、すでに保存されたビットは次の段階に移動します。これによりレジスタを通じた段階的なデータ転送が実現します。
並列出力(Q0、Q1、Q2など)
各フリップフロップは、その段に保存されたビットを連続的に反射する出力を持っています。これらの出力は異なるビット位置を表し、保存されたデータを並列に読み取ることを可能にします。各クロックエッジの後、出力は短い伝播遅延の後に更新された値を反映し、すべてのビットに同時にアクセスできるようにします。
クロック信号(CLK)
クロック信号はデータがレジスタを通過するタイミングを制御します。データは定義されたクロックエッジ(設計によって上昇または下降)でのみシフトします。すべてのフリップフロップは同じ時計を共有しているため、同じタイミングイベントに反応します。クロックエッジ間では、保存値は変更されません。
動作モード

基本的なSIPOレジスタはシリアルシフトで動作しますが、一部の設計にはデータの読み込みや更新方法を変更する追加の制御機能が含まれています。
シフトモード
シフトモードでは、データはシリアル入力を通って1ビットずつレジスタに入ります。各クロックパルスごとに、保存されたビットはその順序を維持しつつ、フリップフロップからフリップフロップへとステップバイステップに移動します。この連続的なシフトにより、順番データを順番に保存・転送することが可能になります。
並列負荷能力(デバイス依存)
標準的なSIPOシフトレジスタには、通常パラレルロードは含まれていません。しかし、拡張型やハイブリッド型設計(ユニバーサルシフトレジスタなど)では、すべてのフリップフロップに同時にデータをロードすることが可能です。この機能がある場合、制御信号によりすべてのビットを単一のクロックイベントでキャプチャでき、複数のシフトサイクルなしで全データセットへの即時アクセスが可能になります。
ステップバイステップの例とデータ転送動作
0000から始まる4ビットのSIPOシフトレジスタを考えます。シリアル入力シーケンス1011は1ビットずつ適用されます。この例では、ビットは最重要位置にシフトし、最も重要な位置は最も最近入力されたデータを持ちます。
| クロックパルス | 入力ビット | 登録州 |
|---|---|---|
| イニシャル | — | 0000 |
| 1 | 1 | 0001 |
| 2 | 0 | 0010 |
| 3 | 1 | 0101 |
| 4 | 1 | 1011 |
各クロックパルスの後:
新しい入力ビットは第1段階に入ります
以前に保存されたビットは1ポジション前進します
前のビットは最終出力段階に向かって進みます
4パルス後、4ビットの完全なデータが並列で利用可能になります
継続クロックは古い保存ビットを新しい入力データに置き換えます
4回のクロックパルスの後、レジスタは1011を格納し、4ビットすべてが並列出力で利用可能になります。
タイミング制約とタイミング関連の問題
タイミングパラメータ
| パラメータ | 説明 | |
|---|---|---|
| 準備時間 | 入力はクロックエッジ | |
| ホールドタイム | 入力はクロックエッジ | の後も安定でなければなりません。 |
| 伝搬遅延 | 出力が更新されるために必要な時間 | |
| 時計周期 | 完全な信号安定を許可しなければならない |
タイミング違反の影響
| 問題 | 結果 |
|---|---|
| セットアップ違反 | 誤ったデータ取得 |
| ホールド違反 | 不安定出力 |
| 過剰なクロック速度 | 不完全なシフト |
よくあるタイミングミス
| 間違い | 影響 |
|---|---|
| セットアップ/ホールドの要件を無視する | 信頼性の低い動作 |
| 過度に高速なクロック信号の使用 | タイミング違反 |
| 時計のジッター | 意図しないトリガー |
良いタイミングの実践
| 練習 | メリット |
|---|---|
| 安定したクロックソースを使う | 一貫したタイミング動作 |
| セットアップ/ホールドリミットの尊重 | データエラーの防止 |
| クロック周波数を安全な範囲内に保つ | 信頼性の高い運用 |
| 経路遅延の最小化 | タイミング安定性の向上 |
出力ラッチとカスケード
出力ラッチ(制御改善)

一部のSIPOシフトレジスタには、出力の制御更新を可能にする独立した出力ラッチステージが含まれています。
| 操作 | 信号 | 効果/利益 |
|---|---|---|
| 内部フリップフロップを通じたデータシフト | シフトクロック(SH_CP) | 出力に影響を与えずにデータを段階ごとに移動させる |
| 出力段階に転送された保存データ | ラッチクロック(ST_CP) | すべての出力を同時に更新 |
| シリアルデータ入力 | データ入力(SER) | 入力ビットストリーム |
この構造により、中間データが出力に現れるのを防ぎ、同期更新を可能にします。
カスケード式の複数SIPOレジスタ

カスケードは複数のレジスタを接続することで出力数を増やします。
| アスペクト | 行動 | 設計上の考慮事項 | 応用 |
|---|---|---|---|
| シリアルチェイン | 1つの出力が次の入力に | タイミングがより重要になります | 出力ピンの拡張 |
| 共有時計 | すべてのレジスタは同じクロック | 伝搬遅延の増加 | LEDアレイまたはディスプレイ |
| 逐次充填 | データは段階ごとに満たされます | より多くのクロックサイクルが必要 | 多線制御システム |
SIPO対シリアル入力直列輸出(SISO)

| 特徴 | SIPO | SISO |
|---|---|---|
| 入力タイプ | 連続 | 連続 |
| 出力タイプ | 並列 | 連続 |
| データアクセス | すべての保存ビットが同時に利用可能 | 一歩ずつ進めていきましょう |
| データ移動 | シフトイン、並列読み込み | 単一出力を通り抜けるシフト |
| 典型的な使用方法 | データ変換 | データ遅延または転送 |
| 出力タイミング | 読み込み後に利用可能 | フルシフト後に登場 |
SIPOシフトレジスタの応用

SIPOシフトレジスタは、シリアルデータを同時に保存、変換、または複数の出力ラインに送る必要がある場合に使用されます。
• 並列使用前のシリアルデータの一時保存 – 完全なデータワードが利用可能になるまで、着信シリアルビットを保持します。
・シリアルからパラレルへのデータ変換 – 1ビット単位の入力をマルチビットの並列出力に変換します。
・デジタル制御信号の出力拡張 – これにより、システムがより少ない入力ピンで複数の出力ラインを制御できます。
• アドレスデコードのサポート – メモリの位置、デバイス、回路セクションの選択のための並列アドレスビットや制御ビットの提供に役立ちます。
一般的なSIPOシフトレジスタデバイス

• SN74ALS164A – 出力ラッチなしの基本SIPOシフトレジスタ;即時出力更新

• SN74AHC594 – 制御更新のための出力ラッチ機能

• SN74AHC595 – ストレージレジスタとトライステート出力を備えた人気のシフトレジスタ

• CD4094 – ラッチおよびカスケード対応を備えたCMOSベースのデバイス
よくある質問 [FAQ]
伝播遅延は複数のSIPOシフトレジスタの連鎖的な影響を?
伝搬遅延はカスケード段階間で蓄積され、シリアルデータとクロック間のタイミングのずれを引き起こすことがあります。チェーン長が長くなるにつれて、設計者は正しいデータシフトと安定した出力同期を確保するために、クロック周波数を下げたりタイミングマージンを追加したりする必要があります。
なぜ一部のSIPOシフトレジスタには出力ラッチが含まれているのか、そしていつ必要となるのか?
出力ラッチは内部シフトを外部出力から隔離し、クロック遷移時に中間データが現れるのを防ぎます。LED制御やディスプレイ駆動のように、すべての出力が同時に更新されなければ不具合が起こる用途で必要です。
GPIOエクスパンダの代わりにSIPOシフトレジスタを使う主な制限は何ですか?
SIPOシフトレジスタは連続的なクロックと逐次データロードを必要とし、出力幅が大きくなるにつれて遅延が増加します。また、アドレス可能性や読み書き能力を欠いているため、I²CやSPIを用いたGPIOエクスパンダに比べて複雑制御や双方向制御には適していません。
セットアップ時間とホールド時間の制約は、SIPOシフトレジスタの信頼性にどのように影響しますか?
セットアップ時間やホールド時間の要件が違反すると、入力データがクロックエッジで正しくキャプチャされず、ビットエラーや不安定な出力が発生することがあります。信頼性の高い動作には、クロック遷移の前後に安定した入力信号と、完全な信号安定を許容するクロック周波数が必要です。
設計者はデジタルシステムでSIPOシフトレジスタの使用を避けるべき場合?
出力への高速ランダムアクセスが必要な場合、双方向通信が必要な場合、またはタイミング制約が厳しい場合には、SIPOシフトレジスタは避けるべきです。そのような場合、並列インターフェースや通信ベースのエキスパンダーがより良い性能と柔軟性を提供します。