39. Shift Registers: Serial In - Serial Out (SISO)
A Shift Register is a specialized register that can shift the stored data left or right by one position upon each clock pulse.
Serial Data Transfer
Shift registers are fundamental in handling serial data communication, where data is transferred one bit at a time over a single line (like USB or SPI).
SISO Structure
- An N-bit SISO register consists of N D Flip-Flops connected in a simple cascade chain.
- The output ($Q_i$) of one FF becomes the input ($D_{i+1}$) of the next FF.
- Data is entered sequentially (Serial Input, $D_{in}$) into the first FF.
- Data exits sequentially from the last FF (Serial Output, $Q_{out}$).
Operation
To load an N-bit word, it takes N clock pulses. On each clock pulse, the first bit is loaded, and all existing bits shift one position down the chain.
Example: To load 1011 (4 bits):
| Clock Pulse | Input | $Q_3 Q_2 Q_1 Q_0$ |
|---|---|---|
| Start | - | 0000 |
| 1 | 1 | 1000 |
| 2 | 1 | 1100 |
| 3 | 0 | 0110 |
| 4 | 1 | 1011 |
The data is available at $Q_0$ after 4 clock cycles.