$$\text{Fig. 3-bit Bi-directional Shift Registers}$$
- The above diagram shows 3-bit Bi-directional Shift register, this type of register allows shifting of data either to the left side or to the right side.
- It is implemented by using logic gate circuitry that enables the transfer of data from one stage to the next stage to left or to the right, depending on the level of a control line.
- The $RIGHT/\underline{LEFT}$ is the control input signal which allows data shifting either towards right or towards left. A high on this line enables the shifting of data towards right and a low enables it towards left.
- When $RIGHT/\underline{LEFT}$ signal is high, out of the pair of each 2 AND gates the first AND gate from each of the pair is enabled.
- The state of the Q output of each Flip Flop is passed through the input of the following flip flop. When the clock pulse arrives, the data are shifted one place to the right.
- When $RIGHT/\underline{LEFT}$ signal is low, out of the pair of each 2 AND gates the second AND gate from each of the pair is enabled.
- The state of the Q output of each Flip Flop is passed through the input of the preceding flip flop. When the clock pulse arrives, the data are shifted one place to the left.
- Waveform: