UVM Interview Questions
UVM Interview Questions
UVM Interview Questions
Answer :
UVM (Universal Verification Methodology) is a standardized methodology for verifying the both
complex & simple digital design in simple way.
UVM Features:
o First methodology & second collection of class libraries for Automation
o Reusability through test bench
o Plug & Play of verification IPs
o Generic Test bench Development
o Vendor & Simulator Independent
o Smart Test bench i.e. generate legal stimulus as from pre-planned coverage plan
o Support CDV –Coverage Driven Verification
o Support CRV –Constraint Random Verification
o UVM standardized under the Accelerate System Initiative
o Register modeling
2. Question 2. Uvm Derived From Which Language?
Answer :
Here is the detailed connection between SV, UVM, OVM and other methodologies.
C Interview Questions
o Question 25. What Is The Difference Between Program Block And
Module ?
Answer :
Program block is newly added in SystemVerilog. It serves these purposes
o It separates testbench from DUT
o It helps in ensuring that testbench doesn't have any race condition with
DUT
o It provides an entry point for execution of testbench
o It provides syntactic context (via program ... endprogram) that specifies
scheduling in the Reactive Region.
Having said this the major difference between module and program blocks are
o Program blocks can't have always block inside them, modules can have.
o Program blocks can't contain UDP, modules, or other instance of
program block inside them. Modules don't have any such restrictions.
o Inside a program block, program variable can only be assigned using
blocking assignment and non-program variables can only be assigned using
non-blocking assignments. No such restrictions on module
o Program blocks get executed in the re-active region of scheduling queue,
module blocks get executed in the active region
o A program can call a task or function in modules or other programs. But
a module can not call a task or function in a program.
o Question 26. What Is The Use Of Modports ?
Answer :
Modports are part of Interface. Modports are used for specifing the direction of the
signals with respect to various modules the interface connects to.
o ...
o interface my_intf;
o wire x, y, z;
o modport master (input x, y, output z);
o modport slave (output x, y, input z);
Answer: There are 3 ways to connect assertion to RTL: inline, Instantiation and
Virtual Instantiation (bind).
Inline Assertion: Assertion directly put into the RTL by designer. Use
compile option for synthesis.
// A synchronous D Flip-Flop
moduledff (input logic [7:0] D, input RST_, input CLK, output logic [7:0] Q);
always @(posedge CLK)
if (!RST_) Q<= 8'h0;
else Q <= D;
// assertions
1. propertyd_q_property_0 (clk, rst_, q);
@(posedge clk) !rst_ |->##1(q == 8'h0);
endproperty
assert_d_q_property_0 : assert property(d_q_property_0(CLK, RST_, Q));
There are mainly following ways to avoid race condition between testbench
and RTL using system verilog
1. Program Block
2. Clocking Block
3. Using non blocking assignments.
According to the eRM and OVM monitors and drivers should always be
completely separate. This approach was adopted mainly in order to facilitate
reuse of block level agents in a top level testbench: at block level both driver
and monitor are used, while at top level only the monitor is used.