Shift Registers in Digital Logic (original) (raw)

Last Updated : 10 Oct, 2025

A shift register is a group of flip-flops connected in series to store and shift multiple bits of data either left or right with clock pulses.

Serial-In Serial-Out Shift Register (SISO)

A Serial-In Serial-Out (SISO) shift register accepts data one bit at a time through a single input line and outputs data serially, using a series of flip-flops all triggered by the same clock. The main use of a SISO is to act as a delay element.

Serial-In Serial-Out Shift Register (SISO)

Serial-In Serial-Out Shift Register (SISO)

Serial-In Parallel-Out Shift Register (SIPO)

A Serial-In Parallel-Out (SIPO) shift register accepts data serially through a single input line and produces all bits simultaneously as a parallel output, using multiple synchronized flip-flops. The main use of the SIPO register is to convert serial data into parallel data.

Serial-In Parallel-Out shift Register (SIPO)

Serial-In Parallel-Out shift Register (SIPO)

Parallel-In Serial-Out Shift Register (PISO)

A Parallel-In Serial-Out (PISO) shift register accepts parallel data simultaneously into each flip-flop and shifts it out serially through a single output line using synchronized flip-flops and multiplexers. It is used to convert parallel data to serial data.

Parallel-In Serial-Out Shift Register (PISO)

Parallel-In Serial-Out Shift Register (PISO)

Parallel-In Parallel-Out Shift Register (PIPO)

A Parallel-In Parallel-Out (PIPO) shift register accepts and outputs data simultaneously across all flip-flops without any serial shifting, using synchronized control signals. It is used as a temporary storage device and also acts as a delay element.

Parallel-In Parallel-Out Shift Register (PIPO)

Parallel-In Parallel-Out Shift Register (PIPO)

Bidirectional Shift Register

A Bidirectional Shift Register can shift binary data either to the left or right, enabling multiplication or division by 2 based on the selected mode.

Bidirectional Shift Register

Bidirectional Shift Register

Universal Shift Register

A Universal Shift Register is an N-bit register that supports both left and right shifting as well as parallel loading, using N flip-flops and N multiplexers with shared select lines to control the data flow.

Universal Shift Register

Universal Shift Register

Shift Register Counter

Shift Register Counters are the shift registers in which the outputs are connected back to the inputs in order to produce particular sequences. There are basically two types:

Ring Counter

A ring counter is basically a shift register counter in which the output of the first flip-flop is connected to the next flip-flop and so on and the output of the last flip-flop is again fed back to the input of the first flip-flop. The data pattern within the shift register will circulate as long as clock pulses are applied.

Ring Counter Truth Table

Ring Counter Truth Table

The circuit consists of four D flip-flops which are connected. The data pattern will repeat after every four clock pulses as shown in the truth table. A Ring counter is generally used because it is self-decoding.

Ring Counter

Ring Counter

Johnson Counter

A Johnson counter is basically a shift register counter in which the output of the first flip flop is connected to the next flip flop and so on and the inverted output of the last flip flop is again fed back to the input of the first flip flop. They are also known as twisted ring counters.

Johnson Counter Truth Table

Johnson Counter Truth Table

An n-stage Johnson counter yields a count sequence of 2n different states, thus also known as a mod-2n counter. The circuit consists of four D flip-flops which are connected, the data pattern will repeat every eight clock pulses. It only needs n number of flip-flops to generate a sequence of 2n states.

Johnson Counter

Johnson Counter