top of page

# Shift Registers

Updated: Aug 12, 2023

You might be familiar with what a flip-flop is and know that it is used for storing binary data. But to store multiple data bits, we need a Register to store such multiple information.

A register has multiple flip-flops connected together. But when the data can be moved to the right or left, it is known as a Shift Register.

There are mainly four types of shift registers and they are as follows:

1. SISO

2. SIPO

3. PISO

4. PIPO

Got confused hearing these acronyms? Don’t worry, let us understand more and take a deeper look into what the real deal is.

### Serial-In-Serial-Out Shift Register (SISO)

A shift register that can take input one bit at a time and produce corresponding output. There is a serial pattern that is followed while the data is entered and leaves the output which thus gives it the name SISO.

The circuit given below will give better clarity into understanding SISO. As seen in the diagram, the data enters and leaves in a serial manner and acts synchronously with a clock signal. They are mainly used as a delay and for such purposes.

### Serial-In-Parallel-Out (SIPO)

This shift register allows taking serial input from a single data line and produce parallel outputs to the user.

This kind of circuitry mainly consists of four flip-flops and a clock signal to RESET them. The major application of this kind of shift registers is when communication lines are multiplexed into multiple parallel lines.

Here, the output of the first is connected to the input of the second and so on. All these are synchronous to each other due to the clock signal applied in each.

From the below circuit, it could be easily understood how the serial input produces a parallel output.

### Parallel-In-Serial-Out (PIPO)

This kind of shift register allows input of data parallelly through multiple inputs to produce serial output. The circuit below shows four D flip-flops connected together connected through a multiplexer at every flip-flop input. The previous flip-flop output and data input is given into an output MUX wherein all these flip-flops are synchronous to each other.

A PISO allows us to modify parallel data as a serial one.

### Parallel-In-Parallel-Out (PIPO)

This shift register allows parallel input and output of data bits. The circuit given below shows four D flip-flops along with clear and clock signals connected. There is no interconnection between the flip-flops in this, therefore no serial-shifting is needed. Separate data input and output collection are needed and are used as temporary storage.

## Shift Register Counters

Particular sequences according to the user’s wish can be generated using shift registers. Let us take a look at some of the most common counters.

1. Ring Counter: This is a simple counter where the output of one flip-flop is fed into the output of the next and the last one is given back into the input. The circuit below shows a D flip-flop that repeats after every clock-pulse according to the truth table shown. This counter circuit is used as it is self-decoding.

2. Johnson Counter: In this shift register, the output of the first flip-flop is connected to the second and the last flip-flop’s converted output is fed into the first one. Hence it is also called a twisted ring counter. An n-stage Johnson Counter can yield 2n different states thereby giving it the name of the mod-2n counter.

## Applications

• They can be really useful while storing temporary data.

• Data transfer and manipulation is easily done in a shift register.

• Delay in timer circuits is commonly done using SISO and PIPO.

• PISO can convert parallel data into serial data.

See All