A reader named Anand suggested diagrams for the scan test basics article. I’m happy to oblige.

This is a scan flop. It’s really just a wrapper surrounding a regular flop and a 2:1 mux, connected as shown. The result has two extra input pins, Scan Enable (SE) and Scan In (SI).

Form a scan chain by substituting the scan flop for the regular flop, daisy-chaining the Q pin to the SI of the next flop in the chain, and connect all the SE pins to one external pin (scan-enable). The SI of the first flop in the chain and the Q of the last flop in the chain are also connected to external pins, (scan-in and scan-out, respectively).

This gives all the flops in the chain complete controllability and observability.