Skip to content
DenseChip
Learn
PracticeCode labInterview

DenseChip

Navigate

Menu

LearnPracticeCode labInterview

Tools

All toolsSV editorCode repoResume
DenseChip

Practice, courses, and chip-design tools in one focused workspace.

LearnPracticeCode labInterviewToolsLearning paths

© 2026 DenseChip

AboutContactPrivacyTerms
Skip to lesson

Course contents

  • RTL Foundations36
  • Combinational Design25
  • Sequential Design27
  • FSM & Control27
  • Timing & Clocking39
  • Reset & CDC34
  • Memory & Buses57
  • Advanced RTL28
  • Senior & Interview76
    • Low-Power RTL Hub
    • DFT and Scan Hub
    • Physical Awareness Hub
    • Waveform Debug Hub
    • STA and ECO Hub
    • RTL-to-Implementation Closure
    • DFT-Ready RTL
      • Scan-Ready Coding
      • Test Clocks, Resets, and Modes
      • Memory, JTAG, Compression, and Handoff
    • Capstone: Resilient Streaming Peripheral
    • Principal Design Review
    • Senior RTL Interview Questions & Model Answers
  • Glossary and Notation
Loading lesson

‹DFT-Ready RTL
  1. Topics
  2. RTL Design
  3. Senior & Interview
  4. DFT-Ready RTL
  5. Test Clocks, Resets, and Modes

Part 9 · Senior · Senior

Test Clocks, Resets, and Modes

Support slow shift, at-speed capture, reset control, cross-domain chain stitching, and safe functional/test transitions.

On this page

    Why this matters

    A reset that asserts during scan shift destroys the loaded state. Shift stresses minimum delay while capture stresses maximum delay, so each mode needs its own clock and reset policy.

    After this lesson you can: plan entry and exit sequences for test mode, set a reset policy for shift and capture, and say where lockup latches belong.

    Test mode is a sequence

    Scan test walks the design through a fixed order of modes: load the chains, capture one functional response, unload it while loading the next pattern, and finally exit. Each mode needs its own clock and reset policy.

    State diagram: 1 Functional, enter test to 2 Shift load, scan_enable 0 to 3 Capture, scan_enable 1 to 4 Shift unload and load next, which returns to Capture for the next pattern or goes to 5 Exit after the last pattern, then reset and restore back to Functional.
    The five steps of a scan session. Capture and shift alternate once per pattern; entry and exit are the only ways in and out of functional mode.

    The peripheral's two clock domains become separate scan domains. The test clock controller supplies slow shift pulses and controlled at-speed capture, while lockup latches handle chain crossings selected by the DFT stitching flow.

    Functional and tester clocks feeding scan domains through a test clock controller.
    Test control must produce legal shift and capture pulses in every scan domain.

    Shift and capture on the clock

    Each slot shows the values just after one test-clock edge; chain is the three cells as one number, cell 2 first.

    • Slots 0 to 3 (shift): se is 1 and si supplies 1, 0, 1, so the chain fills to 101 one cell per pulse.

    • Slot 3: se falls before the next edge. It must settle with setup margin, because the next pulse is the capture.

    • Slot 4 (capture): the chain takes the functional value d = 011 in one pulse.

    • Slots 4 to 6 (unload): so shows 0, 1, 1: the captured word leaves, cell 2 first, while new si bits enter behind it.

    Shift moves data cell to cell with almost no logic between them, so it stresses minimum delay (hold). Capture runs the functional paths, so at-speed capture stresses maximum delay (setup).

    The four scan modes

    Mode

    sample / bus clocks; scan_enable

    Reset, clamp and memory policy

    Dominant risk

    Functional

    Independent PLL / bus clocks; 0

    Functional reset owners; analog clamp off; functional SRAM owners

    Test controls must stay inactive and nonintrusive

    Shift

    Many low-frequency ATE pulses through both approved wrappers; 1

    Test resets inactive and stable; ICG shift overrides on; analog clamp on; SRAM read outputs masked

    Hold, chain crossing, lockup-latch placement

    Stuck-at capture

    One controlled sample pulse, then one bus pulse; 0

    Resets inactive; clamp on; cross-domain capture inputs held by reviewed test constraints

    Functional-mode setup and reset constraints

    At-speed capture

    Selected domain's OCC supplies a launch/capture pair at functional rate; other domain parked; 0

    Resets inactive; clamp on; no uncontrolled asynchronous launch/capture relationship

    PLL/OCC sequence and setup timing

    Two more modes use the same peripheral without scan shifting:

    • MBIST: the selected macro's approved test clock runs with scan shifting off. The wrapper owns the selected SRAM exclusively, functional clients are parked, and the macro's own initialization and latency protocol applies.

    • Boundary access: TCK drives the TAP while functional and OCC clocks are parked. The pin safe-state mux is owned by TAP/AON, and resets and output enables are held per pin policy.

    Entering and leaving test mode

    The numbers match the states in the diagram above.

    1. Enter (1 to 2): authorize test; stop new traffic and drain or explicitly cancel pending work; park external output enables and clamp the analog input before observing scan responses. Stop functional clocks through acknowledged glitchless wrappers, assert domain resets, transfer clock/reset ownership to AON test control, and program stable mode controls while clocks are stopped.

    2. Shift (2): supply legal test clocks to release domain resets synchronously, then hold resets inactive. Assert scan_enable and ICG shift overrides before the first shift edge; load each separate chain completely.

    3. Capture (3): stop shift pulses low, deassert scan_enable with required setup, configure the selected OCC and capture clamps, then issue only the approved pulse sequence.

    4. Shift again (4): return to shift while clocks are stopped and controls settle; unload the response while loading the next pattern.

    5. Exit (5 to 1): stop test pulses low, assert domain resets to discard scan/MBIST state, restore functional clock/reset and SRAM ownership through acknowledged wrappers, restart clocks and initialize state. Release resets synchronously; release clamps/pin parking only after domain readiness, then resume traffic.

    Chains that cross domains

    Lockup latches absorb phase and skew risk where a scan chain crosses between related, synchronous clock domains or between opposite clock edges; asynchronous domains get separate chains, as above. DFT tools usually insert them, but RTL and clock architecture must expose correct domain relationships.

    Common pitfall

    A reset that asserts during scan shift destroys loaded state. Test mode needs an explicit reset policy: held inactive, independently controlled, or intentionally tested.

    Warning

    Limits. Entry/exit acknowledgements need bounded watchdogs and a safe parked error state, never forced traffic resumption on timeout. Digital sequencing checks do not establish mux pulse integrity, clock skew, reset recovery/removal or at-speed timing; DFT/STA/physical owners must close those implementation obligations.

    Check yourself Why can scan shift be hold-dominated while at-speed capture is setup-dominated?

    Shift moves data through adjacent scan cells with little combinational delay, stressing minimum delay. Capture exercises functional paths at speed, stressing maximum delay.

    Check yourself In the waveform, what would go wrong if se fell after the slot 4 edge instead of before it?

    That edge would shift again instead of capturing, so the functional value 011 would never enter the chain and the unload would show shifted pattern bits instead of the response.

    Remember

    • Take ownership of clocks and resets only with clocks stopped and reset asserted, then release resets with legal test clocks.

    • Asynchronous clock domains get separate chains; lockup latches serve related domains and opposite edges.

    • Entry and exit acknowledgements need bounded watchdogs and a safe parked error state.

    Keep going

    • Interview: run a mock interview on this topic

    Related topics

    • DFT shift/capture timing

    • Memory, JTAG, compression, and handoff

    Previous

    301 / 350

    Next: Memory, JTAG, Compression, and Handoff

    Up next

    Up nextMemory, JTAG, Compression, and Handoff

    Sign in to save progress

    Practice this lessonReport an error
    clksesid3chain01253640so
    A three-cell scan chain loads 101, captures the functional value 011 on one pulse with scan_enable low, then shifts it out on so