

It can be seen that if data were to be continued to input, it would get exactly what was put in (10110000), but offset by four "data advance" cycles. So the serial output of the entire register is 00010110. The right hand column corresponds to the right-most flip-flop's output pin, and so on. As "data in" presents 1,0,1,1,0,0,0,0 (in that order, with a pulse at "data advance" each time-this is called clocking or strobing) to the register, this is the result. To give an idea of the shifting pattern, imagine that the register holds 0000 (so all storage slots are empty). The data is stored after each flip-flop on the "Q" output, so there are four storage "slots" available in this arrangement, hence it is a 4-bit register. "data in") is shifted into the first flip-flop's output. At each advance, the bit on the far left (i.e. The data string is presented at "data in" and is shifted right one stage each time "data advance" is brought high. These are the simplest kind of shift registers. Serial-in serial-out (SISO) Destructive readout Sample usage of a 4-bit shift register. A "universal" shift register provides bidirectional serial-in and serial-out, as well as parallel-in and parallel-out.

A PIPO register (parallel in, parallel out) is simply a D-type register and is not a shift register, but is very fast – an output is given within a single clock pulse. The serial input and last output of a shift register can also be connected to create a "circular shift register". There are also "bidirectional" shift registers, which allow shifting in both directions: L → R or R → L. There are also types that have both serial and parallel input and types with serial and parallel output. These are often configured as "serial-in, parallel-out" (SIPO) or as "parallel-in, serial-out" (PISO). Shift registers can have both parallel and serial inputs and outputs. There is an inherent trade-off in the design of bit arrays putting more flip-flops in a row allows a single shifter to store more bits, but requires more clock cycles to push the data through all of the shifters before the data can be read back out again. Data was stored into the array and read back out in parallel, often as a computer word, while each bit was stored serially in the shift registers. In most cases, several parallel shift registers would be used to build a larger memory pool known as a " bit array". By connecting the last flip-flop back to the first, the data can cycle within the shifters for extended periods, and in this configuration they were used as computer memory, displacing delay-line memory systems in the late 1960s and early 1970s. They share a single clock signal, which causes the data stored in the system to shift from one location to the next. Computer memory unit using cascaded flip-flopsĪ shift register is a type of digital circuit using a cascade of flip-flops where the output of one flip-flop is connected to the input of the next.
