This question evaluates proficiency with SystemVerilog verification concepts — including concurrency primitives, constrained-random modeling, assertions, OOP features, synchronization primitives, and testbench architecture — and tests the ability to specify non-overlapping/randomized constraints and reason about solve-order and sampling semantics; it is commonly asked because interviewers seek assurance that a candidate can build correct constrained-random testbenches and diagnose simulation or coverage issues. Category/domain: Software Engineering Fundamentals with a focus on hardware design verification; level of abstraction: language-level implementation details and testbench architecture/behavioral verification concerns.
Answer the following SystemVerilog / DV questions. Use short explanations and, where appropriate, show small SV code snippets.
fork...join
,
fork...join_any
, and
fork...join_none
. When would you use each?
start
address and a
size
(or
end
). Requirements:
[BASE, LIMIT]
).
virtual
functions.
edge
only pulses for one cycle on a rising transition.
edge
does not assert when the input is stable.
solve A before B
do?
solve before
changes the resulting distribution.
semaphore
is and when you’d use it.
mailbox
is and when you’d use it.