FPGA Engineer interview questions
100 real questions with model answers and explanations for Middle candidates.
See a FPGA Engineer resume example →Practice with flashcards
Spaced repetition · Hunter Pass
Questions
Setup slack is the required arrival time at the destination register minus the actual data arrival time.
- Data arrival includes launch-clock delay, clock-to-Q delay, combinational delay, and routing delay from the source register.
- Required time comes from the destination capture edge, capture-clock delay, setup time, and any setup uncertainty.
- Positive slack means the path meets the modeled requirement, while negative slack gives the amount by which it misses.
- The check must pass for every analyzed setup corner and clock relationship, not only the nominal clock period.
Why interviewers ask this: The interviewer is checking whether the candidate can connect a reported setup slack value to the clock and data terms that produce it.
Clock period changes the next-edge setup requirement but normally does not change the same-edge hold requirement.
- A longer period gives maximum-delay data more time to reach the destination before its setup deadline.
- Hold analysis uses the earliest data arrival after the relevant capture edge, so another cycle of period is not added to that check.
- Hold slack is earliest arrival minus required hold time, including minimum clock-path delay and skew.
- A real hold repair adds minimum data delay or changes placement and routing rather than lowering frequency.
Why interviewers ask this: A strong answer distinguishes maximum-delay setup analysis from minimum-delay hold analysis using their actual timing relationships.
WNS describes the single worst slack, while TNS sums the negative slack across all failing endpoints in a path group.
- WNS of -0.20 ns means at least one endpoint misses its requirement by 0.20 ns.
- TNS distinguishes one isolated failure from many smaller failures that may require a broader architectural change.
- The number of failing endpoints adds context because equal TNS values can represent very different violation distributions.
- Setup and hold reports have separate WNS and TNS values and must be reviewed independently.
Why interviewers ask this: The interviewer is evaluating whether the candidate reads timing closure as both worst-case severity and overall violation spread.
The critical path is the constrained path with the lowest slack, not necessarily the one with the most logic levels.
- A short path with long programmable routing or high fanout can be slower than a deeper path using local dedicated connections.
- Carry chains and DSP cascades can traverse several operations faster than equivalent logic mapped through general LUT routing.
- Clock skew, uncertainty, and the endpoint relationship affect slack even when two data paths have equal delay.
- Criticality can change after placement and routing because physical delay is only estimated during synthesis.
Why interviewers ask this: A strong answer shows that FPGA timing depends on physical routing and clock requirements as well as Boolean depth.
Clock skew models different launch and capture arrival times, while uncertainty reserves margin for effects such as jitter and phase error.
- Later capture-clock arrival relative to launch generally helps setup slack because data gets more time.
- The same positive skew generally hurts hold slack because old data must remain stable longer at the destination.
- Setup uncertainty reduces the available maximum-delay window, and hold uncertainty increases the required minimum-delay margin.
- Tool-generated clock propagation and explicit uncertainty must be modeled consistently to avoid hiding or double-counting margin.
Why interviewers ask this: The interviewer is checking whether the candidate understands why the same clock relationship can improve setup and degrade hold.
A generated-clock constraint preserves the frequency, phase, and source relationship between the derived clock and its master clock.
- The constraint identifies the actual generation pin and expresses division, multiplication, phase shift, or edge mapping.
- Static timing can then analyze crossings between related domains with the correct launch and capture edges.
- Declaring the output as an unrelated primary clock loses that relationship and can create incorrect checks or unnecessary CDC exceptions.
- Each physically used PLL or clock-divider output needs its own generated-clock definition unless the FPGA tool derives it automatically.
Why interviewers ask this: A strong answer connects generated-clock constraints to accurate edge relationships rather than treating them as naming metadata.
I/O delay constraints model timing outside the FPGA relative to the clock that governs the interface.
- Maximum input delay includes the source device's latest clock-to-out plus board delay before the FPGA input.
- Minimum input delay models the earliest arrival and is required for a meaningful input hold check.
- Maximum output delay represents the receiver's setup requirement plus board delay, while minimum output delay captures its hold requirement.
- A virtual clock is useful when the external reference clock is not distributed through the FPGA fabric.
Why interviewers ask this: The interviewer is evaluating whether the candidate can constrain a board interface on both early and late timing sides.
A multicycle constraint states that a functionally valid synchronous transfer is allowed more than the default number of clock edges.
- A setup multicycle of N moves the setup capture edge out to the Nth applicable edge without adding any hardware.
- The corresponding hold relationship usually needs an N minus 1 adjustment so the tool does not enforce hold against the shifted edge.
- A clock enable or protocol condition must guarantee that the destination does not consume intermediate data early.
- The exception should target only the intended registers because a broad multicycle can hide ordinary single-cycle failures.
Why interviewers ask this: A strong answer explains both the functional contract and the coupled setup and hold semantics of a multicycle exception.
A false path removes timing analysis only where no functional launch-to-capture timing requirement exists.
- A targeted false path suits a specific nonfunctional path or the intended first stage of a recognized synchronizer.
- Asynchronous clock groups cut timing in both directions between whole clock sets and are therefore much broader.
- Neither exception makes a CDC transfer safe, so synchronizers, handshakes, or asynchronous FIFOs remain necessary.
- A slow but functionally sampled synchronous path is not false merely because it rarely changes.
Why interviewers ask this: The interviewer is checking whether the candidate treats timing exceptions as precise models rather than as a way to silence violations.
Explicit maximum or minimum delay constraints are used when the path needs a bounded data delay that the default edge relationship does not express.
- A maximum delay can bound a source-synchronous path or limit skew among independently synchronized Gray-code bits.
- A minimum delay can preserve contamination delay where data must not reach the destination too early.
- The datapath-only option excludes clock skew from the bound when the requirement is specifically about data-path delay.
- These constraints must remain scoped to named endpoints because they override ordinary timing assumptions.
Why interviewers ask this: A strong answer identifies concrete bounded-delay uses and understands that these commands replace part of the default timing model.
Setup is dominated by late data arrival, while hold is dominated by early data arrival, so their worst process, voltage, and temperature conditions differ.
- Slow logic and routing tend to worsen maximum-delay setup checks.
- Fast logic and routing tend to worsen minimum-delay hold checks.
- Clock networks can scale differently from data paths, so on-chip variation and skew can move the true worst corner.
- Passing one nominal corner does not establish closure unless every required setup and hold analysis view passes.
Why interviewers ask this: The interviewer is evaluating whether the candidate understands why multi-corner signoff cannot be replaced by one representative run.
Register retiming moves sequential boundaries across combinational logic to rebalance path delay while preserving external cycle behavior.
- Moving a register through equivalent logic can shorten one stage without changing the number of interface cycles.
- Asynchronous resets, incompatible enables, dont_touch constraints, and certain memory or DSP boundaries can block legal movement.
- Retiming may change internal register names and observation points even when the block's input-to-output behavior is preserved.
- Equivalence checking or a latency-aware regression should confirm that the transformed design still satisfies the contract.
Why interviewers ask this: A strong answer describes retiming as a constrained sequential transformation and names practical blockers.
Boolean simplification may not help when routing, fanout, or placement dominates the path delay.
- A high-fanout control net can spend more time in programmable interconnect than in the destination LUTs.
- Congested placement can force detours between otherwise simple logic levels.
- Register duplication can localize a control signal at the cost of extra flip-flops and replicated logic.
- A pipeline boundary or floorplan change can be more effective when the report shows routing rather than cell delay as dominant.
Why interviewers ask this: The interviewer is checking whether the candidate chooses timing techniques from physical path composition rather than only RTL complexity.
Synchronizer MTBF grows exponentially with available resolution time and falls as source activity and destination clock rate increase.
- A transition inside the receiving flip-flop's aperture can leave its output metastable for an unpredictable interval.
- Each additional destination-clock stage gives the metastable node roughly another cycle to settle before observation.
- Faster destination clocks and more frequent asynchronous transitions create more opportunities for a metastable sample.
- Device-specific metastability constants and actual routing delay are needed for a numeric MTBF estimate.
Why interviewers ask this: A strong answer explains the physical and statistical variables behind MTBF instead of claiming that two stages eliminate metastability.
A correct level synchronizer is a destination-clocked register chain whose first stage has no functional fanout.
- Only the final stage feeds destination logic because the first stage has the highest probability of unresolved metastability.
- No combinational logic belongs between the stages, and implementation attributes should identify them as synchronizer registers.
- Close placement maximizes metastability resolution time by minimizing routing delay between stages.
- The source level must remain stable long enough to be sampled, so this structure alone does not guarantee capture of a short pulse.
Why interviewers ask this: The interviewer is evaluating whether the candidate knows both the RTL topology and the physical implementation requirements of a synchronizer.
Registering the source removes combinational glitches that would otherwise increase asynchronous transition activity at the synchronizer input.
- A combinational expression can toggle several times as its inputs settle even when its final logical value changes once.
- Every extra transition increases the opportunity for a destination edge to sample inside the metastability aperture.
- A source register also makes the crossing's origin and stability contract explicit to CDC analysis.
- This step does not replace the destination synchronizer because the registered source remains asynchronous to that clock.
Why interviewers ask this: A strong answer links source cleanliness to metastability event rate while preserving the need for destination-domain synchronization.
A request-acknowledge handshake transfers ownership by holding data stable until both domains observe the control exchange.
- The source registers the payload, asserts request, and keeps both unchanged until a synchronized acknowledge returns.
- The destination synchronizes request, captures the stable payload, and asserts acknowledge in its own clock domain.
- The source synchronizes acknowledge back before clearing request or changing the payload.
- The round trip costs several clock cycles but provides lossless transfer and natural backpressure.
Why interviewers ask this: The interviewer is checking whether the candidate can separate synchronized control from coherently held multibit data.
A toggle synchronizer encodes each source event as a state change that persists until the destination samples it.
- The source flips one bit for every accepted event instead of sending a one-cycle pulse.
- The destination synchronizes that bit and XORs the stable sample with a delayed copy to recreate a local one-cycle pulse.
- Consecutive events must be separated enough for each toggle value to cross, or two changes can cancel before observation.
- Both domains need compatible reset states because a reset mismatch can appear as a false event.
Why interviewers ask this: A strong answer states why persistent transitions avoid narrow-pulse loss and where the scheme's event-rate limit comes from.
The choice depends on whether event spacing is bounded and whether loss or backpressure is acceptable.
- Pulse stretching is simplest when a known minimum width spans multiple destination edges, but nearby events can merge.
- A toggle transfers sparse events without a return path, provided the source cannot toggle twice before destination observation.
- A handshake guarantees each accepted event and tells the source when another can be sent, at the cost of round-trip latency.
- None of these schemes should be selected from average clock rates alone because relative phase and worst-case spacing control capture.
Why interviewers ask this: The interviewer is evaluating whether the candidate matches an event protocol to explicit rate and delivery guarantees.
Bundled-data CDC keeps a multibit payload stable while a separately synchronized control signal announces when it may be captured.
- The source registers data before asserting request or valid.
- Synchronizer latency gives the data bus time to settle through its direct source-to-destination paths.
- The destination captures the entire bus only after observing the synchronized control event.
- The source must not change the bus until an acknowledge or a specified hold interval completes.
Why interviewers ask this: A strong answer identifies the data-stability contract that preserves bus coherence without synchronizing every bit independently.
Locked questions
- 21
Why is Gray code used for pointers in an asynchronous FIFO?
fifoasync - 22
What are the main architectural pieces of an asynchronous FIFO?
fifoasync - 23
Why can asynchronous FIFO full and empty flags be conservative for a few cycles?
fifoasync - 24
What is reset-domain crossing, and why is asynchronous deassertion dangerous?
async - 25
What is CDC reconvergence, and why can individually synchronized signals still be unsafe?
cdc - 26
How do latency and throughput differ in a pipelined FPGA datapath?
fpgapipelininglatency - 27
What is initiation interval, and why can a pipelined unit have an interval greater than one?
pipeliningci-cd - 28
What are the essential rules of a ready-valid pipeline interface?
pipeliningtypesci-cd - 29
What problem does a skid buffer solve in a ready-valid path?
- 30
How does backpressure propagate through an elastic pipeline?
pipeliningbackpressureci-cd - 31
What state must remain aligned when a pipeline supports stalls and bubbles?
pipeliningci-cd - 32
How does synthesis map combinational logic and registers into LUT and flip-flop resources?
resourcessynthesis - 33
Why should arithmetic RTL usually let the tool infer dedicated carry chains?
rtl - 34
Which RTL choices commonly determine whether an array infers block RAM?
rtl - 35
How do width, depth, and banking affect block RAM utilization?
resources - 36
What helps an arithmetic expression map efficiently into FPGA DSP blocks?
fpga - 37
When is an SRL preferable to a chain of flip-flops, and what does it cost?
resources - 38
What is the FPGA trade-off between sharing an arithmetic unit and duplicating it?
fpga - 39
When should you instantiate a vendor primitive instead of relying on inference?
procurement - 40
What functions do FPGA PLLs or MMCMs provide beyond changing clock frequency?
fpga - 41
What must be considered when switching between clocks or enabling a generated clock domain?
cdc - 42
How do AXI4 and AXI4-Lite differ at the protocol level?
typing - 43
What rules must an AXI source follow for VALID and payload under backpressure?
interfacesbackpressure - 44
Why must an AXI write slave handle AW and W channels independently?
interfaces - 45
What constraints govern an AXI4 burst?
constraints - 46
How do AXI transaction IDs affect ordering and throughput?
transactionsthroughputinterfaces - 47
What are the core responsibilities of an FPGA memory controller?
fpgamemory - 48
How do overlapped and non-overlapped implication differ in SystemVerilog Assertions?
system-designsystemverilogverification - 49
How do code coverage and functional coverage complement assertions in RTL verification?
coverageverificationrtl - 50
How do utilization and switching activity influence FPGA power?
fpgaresources - 51
A routed register path misses setup and most delay is interconnect rather than logic; how would you close it?
- 52
A design meets setup but develops hold violations after a floorplan change; what would you do?
designfloorplanning - 53
A new PLL output drives logic, but the timing report shows unconstrained endpoints; how do you fix the constraints?
clockingendpointstiming - 54
Timing suddenly passes after a broad false-path constraint was added; how would you review it?
timingconstraints - 55
Automatic retiming is enabled, but the critical path and register positions do not change; what do you inspect?
schedulingcommunication - 56
A DSP multiply-accumulate path fails timing even though it maps into one DSP block; how would you improve it?
timing - 57
A BRAM read followed by decoding and arithmetic misses timing; where would you place a pipeline boundary?
resourcespipeliningci-cd - 58
One stage of a fixed-latency pipeline fails timing while adjacent stages have margin; how would you rebalance it?
latencytimingcss - 59
A high-fanout clock enable is the worst setup path across many registers; how would you address it?
- 60
Timing results vary sharply between implementation seeds; would you accept the best passing run?
timing - 61
A source-synchronous input bus fails setup only at the FPGA pins; how would you debug it?
fpga - 62
An AXI-Lite slave hangs when write address and data arrive in different cycles; how would you repair it?
interfaces - 63
An AXI-Lite response disappears whenever BREADY is low; what should change in the slave?
interfaces - 64
Software writes one byte through AXI-Lite, but the other register bytes are cleared; how do you fix it?
interfaces - 65
An AXI-Lite status register clears before the master accepts read data; where should the side effect occur?
interfaces - 66
An AXI-Stream packet loses its final word only under downstream backpressure; how would you find the bug?
interfacesbackpressure - 67
The AXI-Stream data path meets timing, but the combinational TREADY chain does not; how would you break it?
interfacestiming - 68
A bridge forwards an AXI burst across a 4 KB boundary; how would you handle it?
interfaces - 69
A DMA engine must move long buffers from host memory into an AXI-Stream pipeline; how would you structure it?
pipelininginterfacesmemory - 70
A DMA transfer corrupts only the final unaligned bytes of a buffer; what would you inspect?
- 71
A descriptor-ring DMA processes the same descriptor twice around ring wrap; how would you debug ownership?
concurrencydescriptorsownership - 72
DMA read bandwidth is low although the AXI data bus is mostly idle; what changes would you consider?
interfaces - 73
The processor sees stale data after an FPGA DMA writes system memory; where do you draw the hardware-software boundary?
system-designfpgamemory - 74
A DMA reset arrives while AXI transactions are outstanding; how would you avoid corrupting the next transfer?
transactionsinterfaces - 75
A one-cycle event crossing into a slower clock domain is occasionally lost; how would you redesign it?
cdc - 76
A multibit status bus occasionally shows an impossible value after crossing clock domains; what is your fix?
cdc - 77
An asynchronous FIFO loses data only when its write pointer wraps; where would you look first?
fifoasync - 78
An asynchronous FIFO passes RTL simulation but drops words on hardware; how would you investigate?
rtlfifoasync - 79
A toggle-based CDC produces a false event whenever one domain resets independently; how would you fix it?
cdc - 80
A rare field failure points to a single-bit synchronizer; what evidence would you collect before adding stages?
- 81
An almost-full flag arrives too late to stop a burst source from overflowing an asynchronous FIFO; how would you redesign flow control?
fifoasync - 82
CDC analysis reports reconvergence after two separately synchronized mode bits; how would you decide whether it is safe?
cdc - 83
LUT utilization jumps after adding a variable shift to a datapath; how would you reduce it?
resources - 84
A large inferred memory consumes flip-flops instead of BRAM after reset logic is added; what would you change?
resourcesmemory - 85
The device is out of BRAM because many control FIFOs are shallow; how would you recover memory resources?
resourcesmemory - 86
A design exceeds its DSP budget but has timing margin; how would you trade throughput for resources?
throughputtimingdesign - 87
Slice occupancy is high although separate LUT and flip-flop percentages look moderate; what do you inspect?
resources - 88
A multiplier unexpectedly maps to LUTs instead of DSPs; how would you diagnose inference?
- 89
Place-and-route becomes congested at a workable-looking utilization; how would you reduce pressure?
resources - 90
A constant-coefficient multiply consumes a scarce DSP while LUTs are available; would you remap it?
- 91
How would you build a self-checking testbench for a packet-processing block with variable backpressure?
backpressureconcurrencyverification - 92
How would you verify an arbiter that must never starve a continuously requesting client?
- 93
An elastic pipeline corrupts data only during consecutive stalls; what verification would you add?
pipeliningci-cd - 94
Functional coverage is high, but a rare AXI ordering bug escapes; how would you improve closure?
coverageverificationclosures - 95
A vendor FIFO IP upgrade changes latency and breaks downstream control; how would you integrate it safely?
procurementlatencyfifo - 96
A DDR controller sometimes fails calibration after power-up; how would you narrow the cause?
interfaces - 97
A memory-controller wrapper passes simple tests but fails under mixed reads and writes; what do you inspect?
memorytesting - 98
A processing pipeline must sustain one sample per cycle, but a shared stage accepts one every other cycle; what would you change?
pipeliningconcurrencyci-cd - 99
An idle DSP pipeline still dominates dynamic power; how would you reduce its activity?
pipeliningci-cd - 100
Power estimation is much higher than expected after place-and-route; how would you find a practical reduction?