DFT (Design for Test)
Each card shows a command to explain. A missed card returns later in the round and starts the schedule over. A card answered correctly moves up the schedule and next appears after 1, 3, 7, then 21 days. Keys 1 to 4 choose an option, h shows a hint, and Enter moves on. A hint keeps the card where it is on the schedule. An ordering card is answered by clicking its items in order, and one wrong click ends it. Time values are in nanoseconds. Progress is stored in this browser.
All 6 cards in this section, with answers
-
set_dft_config -max_length 200 -clock_mixing no_mixCaps each scan chain at 200 bits and keeps one clock and edge per chain.
Hint: Two limits on the chains that will be built later: how long, and what may share one.
Chains are shift registers built from scan flops.
no_mixkeeps flops of one clock and edge together, which can leave chains of unequal length;clock_mixallows mixing and stitches falling-edge flops before rising-edge ones.-max_chainstakes priority over the length limit. OpenROAD reference -
scan_replaceSwaps each flip-flop for the scan version of the same cell.
Hint: It changes cells, not connections, and the cells are bigger afterwards.
A scan flop has a second data input and a select, so it can shift instead of capture. The swap changes cell areas, so it is done before placement. OpenROAD reference
-
report_dft_planShows the chains that would be stitched, changing nothing yet.
Hint: Ask which of preview and commit this one is.
It is the iteration point: change the configuration, look at the chains, and repeat until the plan is right. It is run after
scan_replaceand global placement, because the plan depends on where the flops are. OpenROAD reference -
execute_dft_planStitches the scan chains into the netlist, connecting each flop to the next.
Hint: This is the step the preview was previewing.
Each chain's scan output feeds the next flop's scan input, and the ends are connected to the scan-in and scan-out drivers named in the configuration. The netlist changes, so timing must be rechecked. OpenROAD reference
-
report_dft_configPrints the configuration that the plan and the stitching will use.
Hint: It prints inputs, not results.
The settings are sticky, so a long script can lose track of them. Printing them before planning keeps the plan explainable. OpenROAD reference
-
scan_optReorders the flops within a chain so the chain's wiring is shorter.
Hint: It runs after placement, so it knows where the flops are.
A chain stitched in netlist order can wander across the block. Reordering it into a spatial order keeps the same flops and the same test while cutting the wire the chain costs. OpenROAD reference