Skip to RTL questions

RTL design interview preparation

Work the real RTL question bank first, then refresh the logic, state, CDC, reset, and flow-control reasoning behind strong interview answers.

Question indexAll RTL interview questions.

Pick a topic and open the exact selected question directly in the practice bank. Premium prompts remain access-gated.

30 practice links shown.

  1. Q473Combinational versus sequential logicCombinational · Easy
  2. Q984Diagnose storage from an incomplete always_comb blockCombinational · Easy
  3. Q578Build a parameterized N-to-1 multiplexerCombinational · Medium
  4. Q817Decode Z wildcards without hiding XCombinational · Easy
  5. Q506Reverse a physical bus at the lane boundaryCombinational · Easy
  6. Q1022Count active lanes in a predicate maskCombinational · Easy
  7. Q913Vote across redundant state monitorsCombinational · Easy
  8. Q700Implement a parameterized binary-to-Gray converterCombinational · Easy
  9. Q247Synchronous rising-edge detectorSequential & FSM · Easy
  10. Q356Build a reloadable countdown timerSequential & FSM · Medium
  11. Q703Count consecutive zeros with saturationSequential & FSM · Easy
  12. Q458Convert a synchronous level into a one-cycle rising pulseSequential & FSM · Easy
  13. Q921Detect overlapping 1011 sequencesSequential & FSM · Medium
  14. Q776Why an FSM infers a latchSequential & FSM · Easy
  15. Q696Detect and recover an upset one-hot FSMSequential & FSM · Medium
  16. Q630Implement a four-requester round-robin arbiterSequential & FSM · Medium
  17. Q291Register a glitch-free decoded enableSequential & FSM · Easy
  18. Q004Choose a safe clock-domain crossing strategyCDC & reset · Medium
  19. Q007Synchronize reset release in each clock domainCDC & reset · Easy
  20. Q608Code an asynchronously reset register with enableCDC & reset · Easy
  21. Q859Compare synchronous and asynchronous resetCDC & reset · Easy
  22. Q003Build a synchronous FIFO and race-free BFMDataflow & storage · Medium
  23. Q952Implement a synchronous FIFO with exact boundary behaviorDataflow & storage · Medium
  24. Q494Absorb ready/valid backpressure with a skid bufferDataflow & storage · Hard
  25. Q723Pipeline a parameterized barrel rotatorDataflow & storage · Hard
  26. Q562Increment a four-digit BCD counterDataflow & storage · Medium
  27. Q1007Search a synchronous calibration ROMDataflow & storage · Hard
  28. Q045Stably sort records in a local cache-line bufferDataflow & storage · Medium
  29. Q646Control a tiny exact-LRU associative cacheDataflow & storage · Medium
  30. Q395Schedule bank commands with accepted-slot cooldownDataflow & storage · Medium

RTL Logic modelsCombinational and sequential intent

Start by locating storage. Then make assignment coverage, clocking, reset, width, and priority explicit.

Concept model

Where the design remembers state

Combinational path

Current inputs determine the result

y = f(x)
Readinputs x
Transformlogic cone
Driveoutput y
Updates
after propagation delay
Storage
none
RTL
always_comb · =
Missing path
latch risk
Sequential path

A clock edge advances state

D = f(q, x) · q⁺ ← D @ ↑clk
Readstate q + inputs
Computenext-state D
SampleDFF → q⁺
Updates
edge + clock-to-Q
Storage
flip-flop q
RTL
always_ff · <=
Missing update
hold / enable

Combinational logic transforms values within a cycle. Sequential logic samples a next value and preserves it across cycles.

RTL State and controlFinite-state machines as timing contracts

Define legal states, sampled transition conditions, outputs, priority, and recovery before choosing an encoding.

Concept model

Join each transition to its sampling edge

Transition contractGuards are evaluated from pre-edge state and inputs
CurrentGuardNextMoore output
IDLEreqWAIT_ACKdone = 0
WAIT_ACK!ackWAIT_ACKdone = 0
WAIT_ACKackDONEdone = 1
DONE1IDLEdone = 0
illegaldefaultIDLEsafe recovery
Five sampled edgesdone = state_q == DONE
After ↑clke0e1e2e3e4
state_qIDLEWAITWAITDONEIDLE
req01000
ack00010
done00010
Sample
pre-edge state + inputsGuards see the old state.
Commit
state_q ← state_dThe register advances after the edge.
Output timing
Moore vs MealyState only, or state plus live inputs.

This example samples request and acknowledge on rising edges. The Moore-style done value follows the registered state entered at that edge.

RTL Clock boundariesCDC and reset strategy selection

Choose a crossing structure from signal semantics, event rate, coherency, latency, and loss tolerance.

Concept model

Match the crossing structure to the signal

SemanticsStructureContract to proveFailure if misused
Level2-FF synchronizerStable through captureShort pulse can be missed
EventToggle / handshakeNo overwrite before ackFast events can coalesce
Word / streamHandshake / async FIFOCoherent ownership + rateBitwise sync tears words
Reset releasePer-domain synchronizerQualified local clocksAsync release violates recovery
2-FF level
≈ 1–2 destination cyclesConsume stage two, never stage one.
Handshake
hold until acknowledgeBackpressure prevents event loss.
Async FIFO
Gray pointers crossPayload stays in dual-port storage.
Reset
deassert per domainRelease follows qualified local edges.

A persistent level, discrete event, coherent word, and reset release have different capture contracts. The structure must also preserve its physical implementation assumptions.

RTL Transfers and storageReady-valid, backpressure, and FIFO boundaries

A correct interface preserves payload, ordering, and occupancy through stalls and simultaneous events.

Concept model

A stall creates a hold obligation

accept = valid && readyevaluated at the active edge
At ↑clkt0t1t2t3
valid0111
ready1001
dataAAA
accept0001
obligationidlehold Ahold Atake A
Stall propertyvalid && !ready |→ valid && $stable(data)

The source holds the same pending beat until an edge accepts it.

Source owns
valid + payloadValid may rise before ready.
Sink owns
readyReady may rise before valid.
Bubble
valid = 0Payload is ignored.
Peak rate
1 beat / cycleAccept on every active edge.

When valid is asserted and ready is low, the source keeps valid and payload stable until an edge accepts the transfer.

RTL Hardware and evidenceSynthesis, timing, and proof

Finish every answer by naming the inferred hardware, implementation pressure, corner cases, and evidence.

Concept model

From behavioral contract to signoff evidence

01 · ContractLatency · II · ordering

Define when inputs are accepted and when results are observable.

02 · RTL structureState · datapath · memory

Make cycle boundaries and resource ownership explicit.

03 · ImplementationWNS · TNS · area · congestion

Read mapped hardware, not only behavioral simulation.

04 · ProofLint · sim · SVA · CDC · STA

Match each claim to the tool that can falsify it.

Evidence ruleEvery claim names its units, operating conditions, and supporting report or property.

Latency
accept → result cyclesTime for one transaction.
Initiation interval
cycles between acceptsSustained acceptance rate.
Throughput
f_clk / IIResults per second.
Implementation
WNS (ns) + areaReport FF, LUT, RAM, or gates.

A strong RTL answer connects the interface contract to state and datapath, then closes the loop with implementation and verification evidence.

Continue preparing