# What's the difference between a hardware register and a shift register?

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 shift register is comprised of a number of (hardware) registers in series. Both use a clock. – Oldfart Jan 11 '19 at 21:16
• You should post links to the two articles in question. @Oldfart's answer is correct, except that he uses "register" where I would use "latch" or "flip-flop". A shift register is a hardware register (unless it's on paper), but not all hardware registers are shift registers. – TimWescott Jan 11 '19 at 21:19
• The difference is as between "car" and "Ford Focus". Shift register is a type of a hardware register. – Eugene Sh. Jan 11 '19 at 21:23
• I disagree @EugeneSh , in general a shift register is MADE of registers, not a SPECIFIC register – johnnymopo Jan 12 '19 at 0:24
• @johnnymopo It is called "register". So it is register. – Eugene Sh. Jan 12 '19 at 0:37

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.

simulate this circuit – Schematic created using CircuitLab

• 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.
• Your first bullet says "Shift Registers are memory"..."They do not use a clock". The second bullet says "All shift registers need a clock". Your statements are not consistent, Tony. – Elliot Alderson Jan 11 '19 at 21:47