What is a Shift Register?, Different Types, Counters and Applications

 We know that FF or Flip-Flop can be used to store the data in the form of 1 or 0. However, if we need to store up several data bits, we need many flip-flops. A register is a device in digital electronics which is used for storing the data. Flip-flops play a vital role in designing the most popular shift registers. The set of Flip-flops is nothing but a register, used to store numerous data bits. For example, if a PC is used to store 16-bit of data, subsequently it requires a set of 16-FFs. And, the inputs, as well as outputs of a register, are serial otherwise parallel depending on the requirement. This article discusses what is a shift register, types, and applications.

__________________________________________________________________

What is a Shift Register?

A register can be defined as when a set of FFs can be connected within the series, the definition of the shift register is when the stored data can be moved in the registers. It is a sequential circuit, mainly used to store the data, & moves it to the output on each CLK (clock) cycle.

Types of Shift Registers

Basically, these registers are classified into four types and working of shift registers are discussed below.

  • Serial in Serial out (SISO) Shift Register
  • Serial in parallel out (SIPO) Shift Register
  • Parallel in Serial out (PISO) Shift Register
  • Parallel in Parallel out (PIPO) Shift Register

Serial in – Serial out Shift Register (SISO)

This shift register allows serial input & generates a serial output, so this is named as SISO (Serial in Serial out) shift register. Because there is just one output, and at a time the data leaves the register one bit in a serial manner.

_________________________________________________________________

Serial in – Serial out Shift Register (SISO)
Serial in – Serial out Shift Register (SISO) Image  by elprocus.com

The Serial in Serial out (SISO) logic circuit is shown above. This circuit can be built with four D-Flip Flops in serially. Once these Flip flops connected with each other then the equal CLK signal is given to every flip flop.

In this circuit, the serial data input can be taken from the left side of the FF (flip flop). The main application of a SISO is to operate as a delay element.

Serial in-Parallel out (SIPO) Shift Register

This shift register allows serial input and generates a parallel output, so this is known as serial in parallel out (SIPO) shift register.

The serial in parallel out (SIPO) shift register circuit is shown above. The circuit can be built with four D-Flip Flops, and in addition, a CLR signal is connected to CLK signal as well as flips flops in order to rearrange them. The first FF output is connected to the next FF input. Once the same CLK signal is given to every flip flop, then all the flip flops will be synchronous with each other.

Serial in-Parallel out (SIPO) Shift Register
Serial in-Parallel out (SIPO) Shift Register Image by elprocus.com

In this type of register, serial data input can be taken from the left side of the FF & generates an equivalent output. The applications of these registers include communication lines because the main function of the SIPO register is to change serial information into parallel information.

Parallel in-Serial out (PISO) Shift Register

This shift register allows parallel input and generates a serial output, so this is known as Parallel in Serial out (PISO) Shift Register.

The Parallel in Serial out (PISO) Shift Register circuit is shown above. This circuit can be built with four D-flip-flops, where the CLK signal is connected directly to all the FFs. However, the input data is connected separately to every FF using a multiplexer at every FF’s input.

Parallel in-Serial out (PISO) Shift Register
Parallel in-Serial out (PISO) Shift Register Image by elprocus.com

The earlier FF output, as well as parallel data input, is connected toward the multiplexer’s input & multiplexer’s output can be connected to the second flip flop. Once the same CLK signal is given to every flip flop, then all the flip flops will be synchronous with each other. The applications of these registers include converting parallel data to the serial data.

Parallel in-Parallel out (PIPO) Shift Register

The shift register, which allows parallel input (data is given separately to each flip flop and in a simultaneous manner) and also produces a parallel output is known as Parallel-In parallel-Out shift register.

The logic circuit given below shows a parallel in parallel out shift register. The circuit consists of four D flip-flops which are connected. The clear (CLR) signal and clock signals are connected to all the 4 flip flops. In this type of register, there is no interconnection between the individual flip-flops as no data serial shifting is necessary. Here the data is given as input individually for every flip-flop, as well as the output is also received separately from every flip flop.

Parallel in-Parallel out (PIPO) Shift Register
Parallel in-Parallel out (PIPO) Shift Register Image by elprocus.com

A PIPO (Parallel in Parallel out) shift register can be utilized like a temporary storage device, similar to SISO Shift register, and it performs like a delay element.

Bidirectional Shift Register

In this type of shift register, if we move a binary number toward the left with one place, it is equal to multiplying the digit with two & if we move a binary number toward the right with one place it is equal to separating the digit with two. These operations can be performed with a register to move the data in any direction.

These registers are capable of moving the data in the right side otherwise left side based on the selection of mode (high or low). If the high mode is chosen then the data will be moved to the right side, as well as if the low mode is chosen then the data will be moved to the left side.

The logic circuit of this register is shown above, and the circuit can be built with 4-D flip-flops. The input data connection can be done at two last part of the circuit & based on the selected mode only the gate will be in the active state.

Counters in Shift Registers

Basically, counters in shift registers are classified into two types such as ring counter as well as Johnson counter.

Ring Counter

Basically, this is a shift register counter in which the first FF output can be connected to the second FF and so on The last FF output is once more fed back to the first flip flop input, that is ring counter.

Ring Counter
Ring Counter Image by elprocus.com

The data model in the shift register will move until the CLK pulses are applied. The circuit diagram of the ring counter is shown above. This circuit can be designed with 4-FFs, so the data model will do again after each 4- CLK pulses as shown in the following truth table. Generally, this counter is used for self-decoding, there is no additional decoding is not necessary to decide the status of the counter.

CLK PulseQ1Q2Q3

Q4

0

100

1

1

110

0

2

011

0

3001

1

Johnson Counter

Basically, this is a shift register counter in which the first FF output can be allied to the second FF and so on and the last flip flop’s inverted output can be once more fed back to the first flip flop’s input.

Johnson Counter
Johnson Counter by  elprocus.com

The circuit diagram of the Johnson Counter is shown above, and this circuit can be designed with 4-D flip-flops. A Johnson counter with n-stage defers a calculate series of 2n dissimilar states. Because this circuit can be built with 4-FFs, and the data model will do again each 8-CLK pulses as shown in the following truth table.

CLK Pulse

Q1Q2Q3Q4

0

000

1

1000

0

2

1000
3110

0

4

1110
5111

1

6

0111
7001

1

The main benefit of this counter is, it requires n-number of FFs evaluated to the ring counter to move a given data for producing a series of 2n states.

Applications of Shift Registers

The shift register applications include the following.

  • The main benefit of this counter is, it requires n-number of FFs evaluated to the ring counter to move a given data for producing a series of 2n states.
  • A PISO shift register is used for converting parallel to serial data.
  • The SISO and PIPO shift registers are used for generating time delay toward digital circuits.
  • These registers are used for data transfer, manipulation and data storage.
  • The SIPO register is used for converting serial to parallel data therefore in communication lines

Thus, this is all about the most widely used shift registers. Thus, this is all about the most widely used shift registers, and these are sequential logic circuits, used to storage as well as transfer the data. These registers can be built with Flip Flops and the connection of these can be done in such a way that the one FF (flip flop) o/p can be connected to the input of the next flip-flop, based on the kind of registers being formed. Here is a question for you, what are universal shift registers?