There are two different wikipedia articles but they don't articulate the difference very clearly. Is the main difference that the shift registry uses a clock?
A SR (Shift Register) comes in the form of:
- SISO = Serial In, Serial Out
- SIPO = Serial In, Parallel Out
- PISO = Parallel In, Serial Out
- PIPO = Parallel In, Parallel Out
If a SR is used as SIPO or PISO then they are converting bits to form words or words to form bits. A word is a collection of bits of some length. Typically 16 but it's not really a standard, you decide it. I believe it has to be more than 1.
SIPO and PISO takes two clocks, one for the bits (the serial data) and one for the words (the parallel data which comes from or to registers).
If a SR is used as a SISO or PIPO then they are only holding information as a buffer for later use.
PIPO is your typical hardware register. But in essence a hardware register is just a memory of a word which can be connected to anything else in any arbitrary way. It doesn't matter how many clocks you use, or in what manner you use the clocks. A hardware register is still a memory, even if it has 0 clocks, 1 clock or 2 clocks or 300 clocks.
The SR type describes how the data is flowing into and out of a hardware register. They are both describing a word-sized memory.
All hardware "registers" or latches AND Shift Registers are memory devices
- e.g. the simplest register above is the RS flip flop.
- They do not use a clock and therefore "Asynchronous" or "level" or "state" defined.
- In this case, active high on Reset-Set inputs.
All Shift Registers need a clock to shift.
- All Synchronous latches use a clock.
- Some latches are ALSO shift registers, with parallel input, some are FIFO's (first In First out) then FILOs, bus Buffers etc.