# What is SIPO Shift Register : Circuit, Working, Truth Table & Its Applications

Generally, a register can be defined as a device used to store the binary data but if you want to store multiple data bits then a set of Flip flops are used which are connected in series. The data which is stored in the registers can be shifted by using shift registers on either the right side or left side by providing CLK pulses. Shift Register is a group of flip flops used to store multiple bits of data. Similarly, a shift register with n-bits can be formed by simply connecting n flip-flops wherever every flip-flop simply stores a single data bit. Once the register shifts the bits to the right side it is the right shift register whereas if it shifts to the left side then it is known as a left shift register. This article discusses an overview of one of the types of shift register namely serial in parallel out shift register or SIPO shift register.

## What is SIPO Shift Register?

The shift register which allows serial input parallel output is known as the SIPO shift register. In the SIPO register, the term SIPO stands for serial input parallel output. In this type of shift register, the input data is given bit by bit serially. For each clock pulse, the input data at all the FFs can be shifted by a single position. The o/p at every flip-flop can be received parallel.

## Circuit Diagram

The SISO shift register circuit diagram is shown below. This circuit can be built with 4 D flip-flops which are connected as shown in the diagram where the CLR signal is given additionally to the CLK signal to all FFs o RESET them. In the above circuit, the first FF output is given to the second FFs input. All these four D flip-flops are connected with each other serially because the same CLK signal is given to every flip-flop.

### Working of SIPO Shift Register

The working of the SIPO shift register is; that it takes the serial data input from the first flip flop of the left side and generates a parallel data output. The 4-bit SIPO shift register circuit is shown below. The operation of this shift register is, first all the flip flops from the circuit from FF1 to FF4 have to RESET so that all the outputs of FFs like QA to QD will be at logic zero level so there is no parallel data output.

The construction of the SIPO shift register is shown above. In the diagram, the first flip flop output ‘QA’ is connected to the second flip flop input ‘DB’. The second flip flops output ‘QB’ is connected to the third flip flops input DC, and the third flip flops output ‘QC’ is connected to the fourth flip flops input ‘DD. Here, QA, QB, QC, and QD are data outputs.

Initially, all the output will become zero so without CLK pulse; all the data will become zero. Let’s take a 4-bit data input example like 1101. If we apply the first clock pulse ‘1’ to the first flip flop, the data to be entered into the FF and QA becomes ‘1’, and remaining all the outputs like QB, QC and QD will become zero. So the first data output is ‘1000’

If we apply the second clock pulse as ‘0’ to the first flip flop then QA becomes ‘0’, QB becomes ‘0’, QC becomes ‘0’ and QD becomes ‘0’. So the second data output will become ‘0100’ due to the shift right process.

If we apply the third clock pulse as ‘1’ to the first flip flop then QA becomes ‘1’, QB becomes ‘0’, QC becomes ‘1’ and QD becomes ‘0’. So the third data output will become ‘1011’ due to the shift right process.
If we apply the fourth clock pulse as ‘1’ to the first flip flop then QA becomes ‘1’, QB becomes ‘1’, QC becomes ‘0’ and QD becomes ‘1’. So the third data output will become ‘1101’ due to the shift right process.

## SIPO Shift Register Truth Table

The truth table of the SIPO shift register is shown below.

#### Timing Diagram

The timing diagram of the SIPO shift register is shown below.

Here we are using a positive edge CLK i/p signal. In a first clock pulse the input data becomes QA = ‘1’ and all other values like QB, QC, and QD become ‘0’. So the output will become ‘1000’. In the second clock pulse, the output will become ‘0101’. In the third clock pulse, the output will become ‘1010’ and in the fourth clock pulse, the output will become ‘1101’.

## SIPO Shift Register Verilog Code

The Verilog code for the SIPO shift register is shown below.

module sipomod(clk,clear, si, po);
input clk, si,clear;
output [3:0] po;
reg [3:0] tmp;
reg [3:0] po;
always @(posedge clk)
begin
if (clear)
tmp <= 4’b0000;
else
tmp <= tmp << 1;
tmp[0] <= si;
po = tmp;
end
endmodule

### 74HC595 IC SIPO Shift Register Circuit & Its Working

A 74HC595 IC is an 8-bit serial in parallel out shift register, so it uses inputs serially and provides parallel outputs. This IC includes 16-pins and is available in different packages like SOIC, DIP, TSSOP & SSOP.

The pin Configuration of 74HC595 is shown below where each pin is discussed below.

Pins 1 to 7 & 15 (QB to QH & QA): These are the o/p Pins that are used to connect output devices like 7-segment displays and LEDs.

Pin8 (GND): This GND pin is simply connected to the GND pin of the power supply ot microcontroller.

Pin9 (QH): This Pin is used to connect to the SER pin of a different IC & give the same CLK signal to both ICs so that they perform like a single IC including 16-outputs.

Pin16 (Vcc): This pin is used to connect to the microcontroller otherwise Power supply because it is a 5V logic level IC.

Pin14 (SER): It is the Serial i/p Pin where the data is serially entered throughout this pin.

Pin11 (SRCLK): It is the Shift Register CLK Pin that works like the CLK for the Shift Register because the CLK signal is given throughout this pin.

Pin12 (RCLK): It is the Register CLK pin that is used to observe o/ps on the devices which are connected to these ICs.

Pin10 (SRCLR): It is the Shift Register CLR Pin. This pin is mainly used when we need to clear the register’s storage.

Pin13 (OE): It is the o/p Enable Pin. Once this pin is set to HIGH then the shift register is set to a high Impedance condition & o/ps are not transmitted. If we set this pin to low, we can get the o/ps.

#### 74HC595 IC  Working

The circuit diagram of 74HC595 IC for controlling LEDs is shown below. The 3- pins of the shift register are needed to be connected to Arduino like pins 11, 12 & 14. All the eight LEDs will be simply connected to this shift register IC.

The required components to design this circuit mainly include a 74HC595 Shift Register IC, Arduino UNO, 5V Power Supply, Breadboard, 8 LEDs, 1KΩ Resistors – 8, and connecting wires.

First, the Serial i/p Pin of the Shift Register needs to connect to the Pin-4 of Arduino Uno. After that, connect both the CLK & latch pins like pins 11 & 12 of IC to pins 5 & 6 of Arduino Uno respectively. The LEDs are connected by using 1KΩ current limiting resistors to the 8-o/p pins of the IC. A separate 5V power supply is used for 74HC595 IC with common GND to Arduino before supplying 5V from Arduino.

#### Code

The simple code for activating 8 LEDs ON in a series is shown below.

int latchPin = 5;
int clkPin = 6;
int dataPin = 4;
byte LED = 0;
void setup()
{
Serial.begin(9600);
pinMode(latchPin, OUTPUT);
pinMode(dataPin, OUTPUT);
pinMode(clkPin, OUTPUT);
}
void loop()
{
int i=0;
LED = 0;
shiftLED();
delay(500);
for (i = 0; i < 8; i++)
{
bitSet(LED, i);
Serial.println(LED);
shiftLED();
delay(500);
}
}
void shiftLED()
{
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clkPin, MSBFIRST, LED);
digitalWrite(latchPin, HIGH);
}

The working of this shift register circuit is, at first all the 8 LEDs will be turned OFF because the byte variable LED is set to zero. Now, every bit is set to 1 with the “bitSet” function & is shifted out with the “shiftOut” function. Likewise, every LED will be turned ON in the same series. If you want to turn off the LED, then you can utilize the “bitClear” function.

The 74HC595 Shift Register IC is used in different applications like servers, LED control, industrial control, electronic appliances, network switches, etc.

### Applications

The applications of serial input parallel output shift register is shown below.

• Generally, the shift register is used for storing temporary data, used as a ring & Johnson Ring counter.
• These are used for transferring data & manipulation.
• These flip flops are mainly used within communication lines wherever a data line de-multiplexing into numerous parallel lines is necessary because this shift register is used to change the data from serial to parallel.
• These are used for data encryption & decryption.
• This shift register is utilized within CDMA for generating PN code or Pseudo Noise Sequence Number.
• We can use them to track our data!
• The SIPO shift register is used in various digital applications for data conversion.
• Sometimes, this type of shift register is simply connected to the microprocessor once more GPIO pins are necessary.
• The practical application of this SIPO shift register is to give the microprocessor’s output data to a remote panel indicator.

Thus, this is an overview of the SIPO shift register – circuit, working, truth table, and timing diagram with applications. The most frequently used SIPO shift register components are 74HC595, 74LS164, 74HC164/74164, SN74ALS164A, SN74AHC594, SN74AHC595, and CD4094. These registers are very fast in use, the data can be converted very easily from serial to parallel, and its design is simple. Here is a question for you, what is the PISO shift register.