Skip to main content...
S0 · CMOS Fundamentals + Digital Logic
25 min

Day 23: Sequential logic II: registers and shift registers

A register is just flip-flops side by side; a shift register moves data one bit per clock — which is exactly how a UART sends a byte down one wire.

From one flip-flop to useful storage

Put n D flip-flops side by side, all on the same clock, and you have an n-bit register — the storage element behind every CPU register (ChipX has 32 of them) and pipeline stage. Wire the flip-flops in a chain — each one's Q feeding the next one's D — and you get a shift register, which moves its contents one position every clock edge.

Shift registers convert between serial and parallel: a SIPO (serial-in, parallel-out) collects a bit stream into a word; a PISO (parallel-in, serial-out) sends a word out one bit at a time. Add a parallel load and you can snapshot a value, then shift it out. That serial↔parallel conversion is the core of nearly every communication peripheral.

A UART is a shift register at heart

ChipX's UART (Stage 2) transmits a byte by parallel-loading it into a shift register and clocking it out one bit per baud interval (a PISO); the receiver shifts incoming bits in (a SIPO) and reassembles the byte. When you build that peripheral, remember it's this humble chain of flip-flops with framing bits bolted on.

Key terms

Register
n D flip-flops sharing a clock, storing an n-bit word — the basic CPU/pipeline storage element.
Shift register
Flip-flops chained Q→D so data shifts one position per clock.
SIPO / PISO
Serial-in-parallel-out / parallel-in-serial-out — the two serial↔parallel conversion directions.
Parallel load
Loading all flip-flops with an input word in one clock, bypassing the shift path.

Before moving on, you should be able to

To send a parallel byte out over a single serial wire, which shift-register configuration do you use?

We use cookies

We use cookies to enhance your browsing experience, serve personalized content, and analyze our traffic. By clicking "Accept All", you consent to our use of cookies. Learn more

    Day 23: Sequential logic II: registers and shift registers | RBTechIconX