移位寄存器(shift register)的工作原理是在若干相同時間脈衝下工作、以觸發器為基礎的器件,數據以並行或串行的方式輸入到該器件中,然後每個時間脈衝依次向左或右移動一個比特,在輸出端進行輸出。
這種移位寄存器是一維的,事實上還有多維的移位寄存器,即輸入、輸出的數據本身就是一些列位。實現這種多維移位寄存器的方法可以是將幾個具有相同位數的移位寄存器並聯起來。移位寄存器中的數據可以在移位脈衝作用下依次逐位右移或左移,數據既可以並行輸入、並行輸出,也可以串行輸入、串行輸出,還可以並行輸入、串行輸出,串行輸入、並行輸出,十分靈活,用途也很廣。
桶形移位寄存器即循環移位寄存器,在浮點加減運算、壓縮/解壓縮和圖像處理算法中有應用。
例如設計一個8位桶形移位器:
8位桶形移位器是有8個數據輸入位,8個數據輸出位和3個控制輸入位的組合邏輯電路,其輸出字等於輸入字的循環移位,循環移位的次數由控制輸入位指定。
比如,如果輸入字等於ABCDEFGH(每個字母表示一位),且輸入控制位為101(5),則輸出字為FGHABCDE。