Naming conventions used at HES-SO Valais Wallis:
- lower case letters with words separated by _ (underscore)
- macros and constants can be upper case
- following markers shall be used:
How to use UVM in Questa
The easiest approach is to import the UVM package with:
//add this line to your SV code import uvm_pkg::*;
And that's it! This will use the built-in UVM class library. If you need to change this to UVM 1.1, then you can remap mtiUvm to the pre-compiled UVM 1.1 class library.
vmap mtiUvm \$MODEL_TECH/../uvm
Another approach is to compile the UVM package to your work library:
vlog +incdir+\$MODEL_TECH/../verilog_src/uvm-2.0.1/src \$MODEL_TECH/../verilog_src/uvm-2.0.1/src/uvm_pkg.sv
vlog +incdir \$MODEL_TECH/../verilog_src/uvm-1.1/src \$MODEL_TECH/../verilog_src/uvm-1.1/src/uvm_pkg.sv
A more general approach which is portable between different compilators and therefore should be used is the following:
`ifdef INCA // Cadence IUS `include "uvm.svh" `else // Synopsys VCS and Mentor Questa import uvm_pkg::*; `endif
Any report whose verbosity exceeds the verbosity level of the reporter will be ignored.
Default values defined in uvm_report_defines.svh:
Default values for the different report functions defined in uvm_report_global.svh:
Verbosity is ignored for warnings, errors, and fatals to ensure users do not inadvertently filter them out. It remains in the methods for backward compatibility.
Contains Driver, Sequencer and Monitor.
Drives DUT signals. Driver, Sequencer and Monitor instantiated.
Checking and coverage. Only Monitor instantiated.
Converts a stream of transactions into pin activity.
Monitors pin activity and converts it to a stream of transactions.
Produces sequence of transactions/transfers (sequence_items).
Is data which changes dynamically over time, executed on a Sequencer. Has body() task, which generates stream of sequence_items.
Is not linked to a driver. Is used to coordinate the execution of sequences, not on sequence items, on other sequencers.
Has no data items. Runs on virtual sequencer.