Question 01EasySystemVerilog
SystemVerilog logic, bit, and wire 4-State Types
A signal is assigned only in one always_ff block, and the verification environment must be able to observe X and Z values. Which declaration best matches that intent?
Concise answerChoose D, logic q. logic is a four-state variable, so it can represent 0, 1, X, and Z and may be assigned by a single always_ff process. bit loses unknown information, while wire describes a net and is not the appropriate procedural storage declaration here.
Question 02EasySystemVerilog
SystemVerilog Logical Equality vs. Case Equality
What does the display print?
Concise answerChoose C: the output is x 1. Ordinary equality cannot decide whether vectors containing unknown bits match, so it produces X. Case equality compares X and Z as actual four-state symbols; since both vectors are x1, that comparison produces 1.
Question 03EasyData Structures
SystemVerilog Packed vs. Unpacked Arrays
How should this declaration be interpreted?
Concise answerChoose C. bytes is an unpacked collection of four elements, and each element is an eight-bit packed vector. The [7:0] dimension appears with the type, so its bits form a contiguous value; [4] follows the identifier and establishes the outer element collection.
Question 04EasySystemVerilog
SystemVerilog Blocking vs. Nonblocking Assignments
What values are printed by display and strobe, in that order?
Concise answerChoose D: $display prints D=0 and $strobe prints S=1. The blocking assignment changes a immediately, while the nonblocking assignment schedules its update for the NBA region. $display runs before that scheduled update; $strobe reports later, after the new value has taken effect.
Question 05EasySystemVerilog
How SystemVerilog always_comb Works
Which statement about always_comb is correct?
Concise answerChoose D. always_comb runs once at time zero and automatically responds to values read by the block, including reads performed inside called functions. It is a procedural combinational construct: timing controls are forbidden, and variables it writes are expected to have a single procedural owner.
Question 06MediumConstraints
SystemVerilog Basic Constraint Interview Question
Which set exactly describes all possible values of x after a successful randomize()?
Concise answerThe attainable set is `{1, 2, 4}`. Both expressions in the constraint block must hold: membership limits `x` to the inclusive interval 1–4, and the inequality then removes 3. Declaring `x` unsigned does not reintroduce zero.
Question 07MediumConstraints
SystemVerilog Soft Constraints Explained
What happens when randomize is called?
Concise answerRandomization succeeds with `x` equal to 20. The class range is marked `soft`, so it behaves as a fallback preference. The inline equality is hard; when the two conflict, the solver discards the soft restriction rather than failing or clamping the result.
Question 08MediumConstraints
SystemVerilog dist Constraints Explained
What probability does this distribution assign to x equal to 2?
Concise answerThe intended probability of `x == 2` is `2/7`. In a `:/` range entry, the stated weight belongs to the range as a whole. Splitting six shares among 1, 2, and 3 gives two each; zero contributes one more share.
Question 09HardConstraints
SystemVerilog solve before Constraint Semantics
How does solve a before b change this randomization?
Concise answerThe ordering leaves the five legal `(a,b)` pairs unchanged, but it raises `P(a=0)` from `1/5` to `1/2`. `solve a before b` chooses between the two legal values of `a` first, then selects a compatible value for `b`.
Question 10MediumVerification Utilities
SystemVerilog Interface Modports Explained
Which modport declarations correctly describe a master that drives req and observes gnt, and a slave with the opposite roles?
Concise answerUse `modport master(output req, input gnt);` and `modport slave(input req, output gnt);`. In each role declaration, `output` identifies what that endpoint produces and `input` identifies what it consumes.
Question 11MediumVerification Utilities
Why UVM Uses SystemVerilog Virtual Interfaces
Why is a virtual interface commonly placed into a class-based driver's configuration?
Concise answerA virtual interface gives the class-based driver a typed reference to an already-elaborated interface instance. Supplying that reference through configuration avoids fixed hierarchical names and lets the same driver connect to different interfaces; the `.master` modport preserves its intended access directions.
Question 12MediumVerification Utilities
SystemVerilog Clocking Blocks Explained
What timing intent is expressed by this clocking block?
Concise answer`q` is observed at the `#1step` input sampling point immediately preceding each positive edge, whereas assignments to `d` use the clocking event’s zero-skew output slot. This coordinates simulator scheduling for verification code and leaves the synthesized circuit unchanged.
Question 13MediumTemporal Checks
SVA Overlapped vs. Nonoverlapped Implication
For the one-cycle antecedent a, which property is cycle-equivalent to the property shown?
Concise answerFor this one-cycle antecedent, `a |=> b` is cycle-equivalent to `a |-> ##1 b`. Nonoverlapped implication checks the consequent on the sampled edge after `a`; overlapped implication plus an explicit one-cycle delay reaches that same edge.
Question 14MediumTemporal Checks
How SVA disable iff Handles Reset
A request is sampled high, but rst_n goes low before the next edge where gnt would be checked. What happens to that pending assertion attempt?
Concise answerThe pending attempt is canceled as soon as `rst_n` becomes low. It is not counted as a pass or failure and does not wait to resume. `disable iff` acts independently of the assertion’s sampling edge, so reset between edges still aborts it.
Question 15MediumFunctional Coverage
SystemVerilog Coverpoint Bins Interview Question
How many ordinary bins does legal create?
Concise answerIt creates four ordinary bins—one apiece for opcode values 0, 1, 2, and 3. The empty brackets request an unsized bin array, which partitions this small value set into individual bins. The default illegal bin handles all other sampled opcode values.