A shift register moves one bit per clock through a chain of flip-flops. It underlies serial links, serializers and the LFSR.
3 lessons, about 14 min
8 clock cycles (one bit per cycle) and at least 8 flip-flops for the shift register, plus a small bit counter to know when the byte is complete.
The whole topic on one page, taken from each lesson's Remember box. Read it before an interview, or print it.
Serial and Parallel Data Movement
This page uses LSB-first order, as UART does; I2C data bytes go MSB-first.
The first bit sent lands in bit 0 of the receiver after W shifts.
A real link adds framing and a bit counter so the receiver knows where a byte begins.
Rule of thumb: agree bit order and shift direction in writing, and check each wire bit against the source byte.
Universal Shift Register
Each flop picks its own output, a neighbour or the parallel input.
Make the hold mode explicit, and use unique case so all four modes are covered.
It shifts one position per clock; a barrel shifter shifts any amount in one cycle.
LFSR for PRBS Generation
A primitive polynomial makes every nonzero seed visit all 2^n - 1 states before repeating.
The all-zero state never leaves with XOR feedback, so the seed must be nonzero.
Tap numbering, shift direction and the sampling point change the stream phase; agree on them before connecting a checker.
Rule of thumb: an LFSR suits test and scrambling, never secrets.
Mini project: a programmable timer with prescaler, compare and interrupt
Practice question: Shift register with parameterised depth and parallel load
Code lab: 8-bit shift register
Code lab: PRBS generator
Interview: run a mock interview on this topic