Ready to rehearse for Broadcom?
Book a 1:1 mock interview with a mentor and get a scorecard.
Interview process
- 1Recruiter screen
Background and fit
- 2Technical phone screen
RTL/DV fundamentals
- 3Onsite: protocols & testbench
AXI/PCIe reasoning and testbench architecture
- 4Onsite: debug
Live debug and trade-off discussion
- 5Hiring manager & behavioral
STAR stories, project deep-dive, team fit and salary discussion
Free sample questions
3 freeIn a testbench, why do you sample DUT outputs on the opposite clock edge (or after a small skew) from the one that drives inputs?
Driving on one edge and sampling on the other avoids racing the clock edge where the DUT updates. It gives combinational outputs time to settle and prevents the testbench from reading old or metastable values, matching how real synchronous logic is observed.
This is the practical reason clocking blocks in SystemVerilog have input/output skews — they formalize where in the cycle the TB samples and drives.
Explain the difference between `rand` and `randc` in SystemVerilog.
`rand` is standard random — each randomize() call picks a value independently, so repeats are possible. `randc` is random-cyclic — it walks through every value in the domain once (in random order) before any value repeats.
randc is handy for cycling through opcodes or addresses to guarantee coverage, but on wide fields it is costly, so it is usually reserved for small enumerated domains.
Name the standard UVM phases in order and say which one is time-consuming.
build_phase (top-down) → connect_phase (bottom-up) → end_of_elaboration → start_of_simulation → run_phase (the only time-consuming phase, runs in simulation time) → extract → check → report → final. The run_phase also has 12 sub-phases (reset, configure, main, shutdown, etc.).
Knowing build is top-down (parents build children first) and connect is bottom-up is a frequent follow-up.
Full question bank
1065 lockedUnlock the full Broadcom bank
Get all 1068 questions with answers and explanations.