移位暫存器在數位系統中非常有用,因為它能控制資料的儲存與傳輸方式。其中,序列輸入平行輸出(SIPO)移位暫存器提供了一種將序列輸入轉換為平行輸出的高效方法。本文說明其結構、訊號層級操作及時序行為。

什麼是SIPO班次登記冊?
串列輸入平行輸出(SIPO)移位暫存器是一種數位電路,透過單一序列輸入接收一比一的二進位資料,並將每個位元儲存在觸發器鏈中。儲存後,所有位元可透過多個平行輸出同時讀取。其主要功能是將序列資料轉換為平行資料。
SIPO 移位暫存器的工作原理與資料轉換

SIPO 移位暫存器透過時脈控制的轉換,透過一系列觸發器移動資料,允許連續輸入位元被儲存,並可同時在輸出端存取。
序列輸入(SI)
序列輸入每次只提供一個位元給暫存器中的第一個觸發器。在主動時脈邊緣出現之前,輸入位元必須穩定,才能正確捕捉。當時鐘邊緣到達時,新位元進入第一階段,而已儲存的位元則進入下一階段。這會讓資料逐步透過暫存器傳輸。
平行輸出(Q0、Q1、Q2 等)
每個觸發器都有一個輸出,持續反映該階段儲存的位元。這些輸出代表不同的位元位置,使儲存的資料能以平行方式讀取。每隔一個時脈邊緣後,輸出會反映更新後的值,經過短暫的傳播延遲,使所有位元能同時被存取。
時鐘訊號(CLK)
時鐘訊號控制資料何時通過暫存器。資料僅在定義的時鐘邊緣(上升或下降,視設計而定)上移位。由於所有觸發器共用相同的時鐘,因此它們對相同的時序事件有反應。在時脈邊緣之間,儲存的值保持不變。
運作模式

雖然基本的 SIPO 暫存器是透過序列移位操作,但有些設計包含額外的控制功能,可以修改資料的載入或更新方式。
換檔模式
在移位模式下,資料會透過序列輸入一個位元進入暫存器。每當時鐘脈衝時,儲存的位元會逐步從一個觸發器移動到下一個,同時保持其順序。這種持續移位讓資料能依序儲存與傳輸。
平行負載能力(依裝置而定)
標準 SIPO 移位暫存器通常不包含平行負載。然而,某些擴展或混合設計(如通用移位暫存器)允許資料同時載入所有觸發器。當此功能存在時,控制訊號能在單一時鐘事件中捕捉所有位元,提供無需多次移位週期即可即時存取完整資料集。
逐步範例與資料傳輸行為
考慮一個從 0000 開始的 4 位元 SIPO 移位暫存器。序列輸入序列 1011 是一次一個位元的套用。在此範例中,位元會向最重要位置移動,而最低有效位置則是最近輸入的資料。
| 時鐘脈衝 | 輸入位元 | 登記州 |
|---|---|---|
| 首字母 | — | 0000 |
| 1 | 1 | 0001 |
| 2 | 0 | 0010 |
| 3 | 1 | 0101 |
| 4 | 1 | 1011 |
每次時鐘脈衝後:
新的輸入位元進入第一階段
先前儲存的位元會向前移動一個位置
較早的位元會朝向最終輸出階段移動
經過四次脈衝後,完整的 4 位元資料可平行取得
持續時鐘會用新的輸入資料取代舊有儲存的位元
經過四個時鐘脈衝後,暫存器會儲存 10¹⁻,並由平行輸出端提供所有四個位元。
時間限制與時間相關問題
時間參數
| 參數 | 說明 | |
|---|---|---|
| 設置時間 | 輸入必須在時鐘邊緣 | |
| 等待時間 | 輸入必須在時脈邊緣 | 之後保持穩定 |
| 傳播延遲 | 輸出更新所需時間 | |
| 時鐘週期 | 必須允許完全訊號穩定 |
時間違規的影響
| 子嗣 | 結果 |
|---|---|
| 設定違規 | 資料擷取錯誤 |
| 按鍵違規 | 不穩定輸出 |
| 時脈過高 | 不完全移位 |
常見的時機錯誤
| 錯誤 | 影響 |
|---|---|
| 忽略設置/保持要求 | 操作不可靠 |
| 使用過快的時鐘訊號 | 時間違規 |
| 時鐘抖動 | 非預期觸發 |
良好的時間控制習慣
| 練習 | 福利 |
|---|---|
| 使用穩定的時鐘來源 | 一致的時序行為 |
| 尊重設置/保留限制 | 防止資料錯誤 |
| 保持時鐘頻率在安全範圍內 | 可靠運作 |
| 最小化路徑延遲 | 改進的時序穩定性 |
輸出鎖存與級聯
輸出鎖存器(改良控制)

部分 SIPO 移位暫存器包含獨立的輸出鎖存階段,允許對輸出進行受控更新。
| 運作 | 訊號 | 效果/效益 |
|---|---|---|
| 資料透過內部觸發器移動 | 時鐘(SH_CP) | 逐階段移動資料而不影響輸出 |
| 儲存資料傳輸至輸出階段 | 鎖扣時鐘(ST_CP) | 同時更新所有輸出 |
| 串列資料輸入 | 資料輸入(SER) | 提供輸入位元流 |
此結構防止中間資料出現在輸出端,並允許同步更新。
多重 SIPO 暫存器級聯

串聯透過連接多個暫存器來擴充輸出數量。
| 相位 | 行為 | 設計考量 | 應用 |
|---|---|---|---|
| 串列鏈 | 一個輸出輸入下一個輸入 | 時機變得更加關鍵 | 擴展輸出腳位 |
| 共享時鐘 | 所有暫存器使用相同的時鐘 | 傳播延遲增加 | LED 陣列或顯示器 |
| 序列填充 | 資料逐步填充 | 需要更多時脈週期 | 多線控制系統 |
SIPO 與串行輸入串行輸出(SISO)

| 特色 | SIPO | SISO |
|---|---|---|
| 輸入類型 | 連續劇 | 連續劇 |
| 輸出類型 | 平行 | 連續劇 |
| 資料存取 | 所有儲存位元同時可用 | 一點一點來 |
| 資料移動 | 移入,並行讀取 | 單一輸出的移位 |
| 典型用途 | 資料轉換 | 資料延遲或傳輸 |
| 輸出時序 | 載入後可用 | 完整班次後出現 |
SIPO 移位暫存器的應用

SIPO 移位暫存器用於需要同時儲存、轉換或傳送多條輸出線的序列資料。
• 序列資料的暫時儲存,然後再平行使用——它們會暫時保留輸入序列位元,直到完整的資料字可用。
• 串列轉平行資料轉換 – 將一位元輸入轉換為多位元平行輸出。
• 數位控制信號輸出擴展 – 允許系統以較少輸入腳位控制多條輸出線路。
• 位址解碼支援 – 它們能協助提供平行位址或控制位元,以選擇記憶體位置、裝置或電路區段。
常見的SIPO移位暫存器裝置

• SN74ALS164A – 基本的 SIPO 移位暫存器,無輸出鎖存器;即時輸出更新

• SN74AHC594 – 包含輸出鎖存以供受控更新

• SN74AHC595 – 受歡迎的移位暫存器,具備儲存暫存器與三態輸出

• CD4094 – 基於 CMOS 的裝置,具備鎖存與串聯支援
常見問題 [常見問題]
傳播延遲如何影響多個 SIPO 移位暫存器的級聯?
傳播延遲會在級聯階段累積,可能導致序列資料與時鐘間的時序不對齊。隨著鏈條長度增加,設計者必須降低時脈頻率或增加時序裕度,以確保資料移位正確且輸出同步穩定。
為什麼有些 SIPO 移位暫存器會包含輸出鎖存器?何時需要?
輸出鎖存器可隔離內部移位與外部輸出,防止時鐘轉換期間出現中間資料。在 LED 控制或顯示驅動等應用中,所有輸出必須同時更新且不會有明顯故障,這是必要的。
使用 SIPO 移位暫存器取代 GPIO 擴展器的主要限制是什麼?
SIPO 移位暫存器需要連續時鐘與序列資料載入,隨著輸出寬度增加,延遲會增加。此外,它缺乏尋址性與回讀能力,因此不如使用 I²C 或 SPI 的 GPIO 擴展器,適合複雜或雙向控制。
設置時間與等待時間限制如何影響 SIPO 移位暫存器的可靠性?
若設定時間或保持時間要求被違反,輸入資料可能無法在時脈邊緣正確捕捉,導致位元錯誤或輸出不穩定。可靠運作需要時鐘轉換前後輸入訊號穩定,且時脈頻率允許完全穩定訊號。
設計師何時應避免在數位系統中使用 SIPO 移位暫存器?
當需要快速隨機存取輸出、需要雙向通訊,或時序限制緊繃時,應避免使用 SIPO 移位暫存器。在這種情況下,平行介面或基於通訊的擴展器能提供更好的效能與彈性。