What are Registers
In the digital domain, we know that a flip flop can act as a memory element for the storage of a single bit. A register is nothing but a combination of flip flops that is used for the storage of multiple bits of data.Generally 4 bit and 8 bit registers are available in the market as off the shelf componenets.In a register, basically the data is fed to the input lines of the flip flops and obtained at the output lines at the next clock pulse which is common to all the flip flops. But once the data is stored at the output lines, any fluctuation in the input lines shall not effect this data at the consecutive clock pulses unless desired by the user. Therefore a register always comes with a Loading feature, the data gets loaded in a register only when this Load signal is high.
The loading signal discussed above can be asynchronous or synchronous. If asynchronous, the data gets loaded in to the register as soon as the loading signal becomes high. But if synchronous, the date gets loaded in to the register only at the next clock pulse after the loading signal has become high.
Besides the loading feature, the registers can also come with a shift feature. This shift feature enables the data bits to be shifted between flip flops so that they can be used for serial data input streams. More precisely this category of registers with the data shifting feature are are known as Shift Registers. This configuration is obtained by connection the input lines of the flip flops to the output lines of the proceeding flip-flops in the cascade configuration. Each clock pulse shifts the data by one bit and thus n-clock pulses are required to feed n-bits of serial data in to an n-bit register. If this data is to be obtained back as serial output, then n-more clock pulses are required to completely shift this data out of the register and in to the output pin. Also the shifting feature discussed can be a right shift or a left shift.
With the above discussed features, there are four types of registers that are available:-
Parallel in Parallel out (PIPO) register. This is mainly used for data storage. Parallel in Serial Out (PISO) register. This is mainly used for parallel to serial data conversion. Serial In Parallel Out (SIPO ) register. This is mainly used for serial to parallel data conversion.
Serial In Serial Out (SISO) register. Its main application is in introducting delays in a data bit stream.