The Shift Register |
Navigation |
|
|
The Shift Register
The Shift Register is another type of sequential logic circuit that is used for the storage
or transfer of data in the form of binary numbers and then "shifts" the data out once every clock cycle, hence the name "shift
register". It basically consists of several single bit "D-Type Data Latches", one for each bit (0 or 1) connected together in
a serial or daisy-chain arrangement so that the output from one data latch becomes the input of the next latch and so on. The
data bits may be fed in or out of the register serially, i.e. one after the other from either the left or the right direction,
or in parallel, i.e. all together. The number of individual data latches required to make up a single Shift Register
is determined by the number of bits to be stored with the most common being 8-bits wide, i.e. eight individual data latches.
The Shift Register is used for data storage or data movement and are used in calculators or computers to store
data such as two binary numbers before they are added together, or to convert the data from either a serial to parallel or parallel
to serial format. The individual data latches that make up a single shift register are all driven by a common clock
(Clk) signal making them synchronous devices. Shift register IC's are generally provided with
a clear or reset connection so that they can be "SET" or "RESET" as required.
Generally, shift registers operate in one of four different modes with the basic movement of data through
a shift register being:
- Serial-in to Parallel-out (SIPO) -
the register is loaded with serial data, one bit at a time, with the stored data being available in parallel form.
- Serial-in to Serial-out (SISO) -
the data is shifted serially "IN" and "OUT" of the register, one bit at a time in either a left or right direction under clock control.
- Parallel-in to Serial-out (PISO) -
the parallel data is loaded into the register simultaneously and is shifted out of the register serially one bit at a time under clock control.
- Parallel-in to Parallel-out (PIPO) -
the parallel data is loaded simultaneously into the register, and transferred together to their respective outputs by the same clock pulse.
The effect of data movement from left to right through a shift register can be presented graphically as:

Also, the directional movement of the data through a shift register can be either to the left, (left shifting)
to the right, (right shifting) left-in but right-out, (rotation) or both left and right shifting within the same register thereby
making it bidirectional. In this tutorial it is assumed that all the data shifts to the right, (right shifting).
Serial-in to Parallel-out (SIPO)
4-bit Serial-in to Parallel-out Shift Register
The operation is as follows. Lets assume that all the flip-flops (FFA
to FFD) have just been RESET (CLEAR input) and that all the outputs QA
to QD are at logic level "0" i.e, no parallel data output. If a logic "1" is connected to the
DATA input pin of FFA then on the first clock pulse the output of
FFA and therefore the resulting QA will be set HIGH to logic
"1" with all the other outputs still remaining LOW at logic "0". Assume now that the DATA input
pin of FFA has returned LOW again to logic "0" giving us one data pulse or 0-1-0.
The second clock pulse will change the output of FFA to logic "0" and
the output of FFB and QB HIGH to logic "1" as its input
D has the logic "1" level on it from QA. The logic "1"
has now moved or been "shifted" one place along the register to the right as it is now at QA.
When the third clock pulse arrives this logic "1" value moves to the output of FFC
(QC) and so on until the arrival of the fifth clock pulse which sets all the
outputs QA to QD back again to logic level
"0" because the input to FFA has remained constant at logic level "0".
The effect of each clock pulse is to shift the data contents of each stage one place to the right,
and this is shown in the following table until the complete data value of 0-0-0-1 is stored
in the register. This data value can now be read directly from the outputs of QA
to QD. Then the data has been converted from a serial data input signal to a
parallel data output. The truth table and following waveforms show the propagation of the logic "1" through the
register from left to right as follows.
Basic Movement of Data through a Shift Register
| Clock Pulse No | QA |
QB | QC | QD |
| 0 | 0 | 0 | 0 | 0 |
| 1 | 1 | 0 | 0 | 0 |
| 2 | 0 | 1 | 0 | 0 |
| 3 | 0 | 0 | 1 | 0 |
| 4 | 0 | 0 | 0 | 1 |
| 5 | 0 | 0 | 0 | 0 |
Note that after the fourth clock pulse has ended the 4-bits of data (0-0-0-1)
are stored in the register and will remain there provided clocking of the register has stopped. In practice the input data
to the register may consist of various combinations of logic "1" and "0". Commonly available SIPO
IC's include the standard 8-bit 74LS164 or the 74LS594.
Serial-in to Serial-out (SISO)
This shift register is very similar to the SIPO above, except were before the data
was read directly in a parallel form from the outputs QA to QD,
this time the data is allowed to flow straight through the register and out of the other end. Since there is only one output,
the DATA leaves the shift register one bit at a time in a serial pattern, hence the name
Serial-in to Serial-Out Shift Register or SISO.
The SISO shift register is one of the simplest of the four configurations as it has only three connections,
the serial input (SI) which determines what enters the left hand flip-flop, the serial output (SO) which is taken from
the output of the right hand flip-flop and the sequencing clock signal (Clk). The logic circuit diagram below shows a
generalized serial-in serial-out shift register.
4-bit Serial-in to Serial-out Shift Register
You may think what's the point of a SISO shift register if the output data is exactly the same
as the input data. Well this type of Shift Register also acts as a temporary storage device or as a time
delay device for the data, with the amount of time delay being controlled by the number of stages in the register, 4, 8,
16 etc or by varying the application of the clock pulses. Commonly available IC's include the 74HC595 8-bit Serial-in/Serial-out
Shift Register all with 3-state outputs.
Parallel-in to Serial-out (PISO)
The Parallel-in to Serial-out shift register acts in the opposite way to the serial-in to parallel-out
one above. The data is loaded into the register in a parallel format i.e. all the data bits enter their inputs simultaneously,
to the parallel input pins PA to PD of the register.
The data is then read out sequentially in the normal shift-right mode from the register at Q representing
the data present at PA to PD. This data is outputted one
bit at a time on each clock cycle in a serial format. It is important to note that with this system a clock pulse is not required
to parallel load the register as it is already present, but four clock pulses are required to unload the data.
4-bit Parallel-in to Serial-out Shift Register
As this type of shift register converts parallel data, such as an 8-bit data word into serial format,
it can be used to multiplex many different input lines into a single serial DATA stream which can be sent directly to a computer
or transmitted over a communications line. Commonly available IC's include the 74HC166 8-bit Parallel-in/Serial-out Shift Registers.
Parallel-in to Parallel-out (PIPO)
The final mode of operation is the Parallel-in to Parallel-out Shift Register. This type of register
also acts as a temporary storage device or as a time delay device similar to the SISO configuration above. The data is
presented in a parallel format to the parallel input pins PA to
PD and then transferred together directly to their respective output pins
QA to QA by the same clock pulse. Then
one clock pulse loads and unloads the register. This arrangement for parallel loading and unloading is shown below.
4-bit Parallel-in to Parallel-out Shift Register
The PIPO shift register is the simplest of the four configurations as it has only three connections,
the parallel input (PI) which determines what enters the flip-flop, the parallel output (PO) and the sequencing clock signal
(Clk).
Similar to the Serial-in to Serial-out shift register, this type of register also acts as a temporary
storage device or as a time delay device, with the amount of time delay being varied by the frequency of the clock pulses.
Also, in this type of register there are no interconnections between the individual flip-flops since no serial shifting
of the data is required.
Universal Shift Register
Today, high speed bi-directional "universal" type Shift Registers such as the TTL 74LS194,
74LS195 or the CMOS 4035 are available as a 4-bit multi-function devices that can be used in either serial-to-serial, left shifting,
right shifting, serial-to-parallel, parallel-to-serial, and as a parallel-to-parallel multifunction data register, hence the name
"Universal". These devices can perform any combination of parallel and serial input to output operations but require additional
inputs to specify desired function and to pre-load and reset the device.
4-bit Universal Shift Register 74LS194
Universal shift registers are very useful digital devices. They can be configured to respond to
operations that require some form of temporary memory, delay information such as the SISO or PIPO configuration modes or
transfer data from one point to another in either a serial or parallel format. Universal shift registers are frequently
used in arithmetic operations to shift data to the left or right for multiplication or division.
Summary of Shift Registers
- Then to summarise.
- A simple Shift Register can be made using only D-type flip-Flops, one flip-Flop for each data bit.
- The output from each flip-Flop is connected to the D input of the flip-flop at its right.
- Shift registers hold the data in their memory which is moved or "shifted" to their required positions on each clock pulse.
- Each clock pulse shifts the contents of the register one bit position to either the left or the right.
- The data bits can be loaded one bit at a time in a series input (SI) configuration or be loaded simultaneously in a parallel configuration (PI).
- Data may be removed from the register one bit at a time for a series output (SO) or removed all at the same time from a parallel output (PO).
- One application of shift registers is converting between serial and parallel data.
- Shift registers are identified as SIPO, SISO, PISO, PIPO, and universal shift registers.
In the next tutorial about Sequential Logic Circuits, we will look at what happens
when the output of the last flip-flop in a shift register is connected directly back to the input of the first flip-flop
producing a closed loop circuit that constantly recirculates the data around the loop. This then produces another type
of sequential logic circuit called a
Ring Counter that are used as decade
counters and dividers.
|
Help us to Share It