0% found this document useful (0 votes)
202 views

Module Basic-Uvm Session8 Reporting

This document discusses UVM reporting macros and controlling report verbosity and actions in UVM. It covers: 1. The main UVM reporting macros - uvm_info, uvm_warning, uvm_error, and uvm_fatal - and how they are used from components, sequences, and modules. 2. Controlling report verbosity using verbosity levels and hierarchical paths. Higher verbosity shows more messages. 3. Setting report actions like suppression, display, logging to file, and stopping simulation for different severities and IDs. 4. Redirecting reports to an output file for later analysis.

Uploaded by

NavneetJha
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
202 views

Module Basic-Uvm Session8 Reporting

This document discusses UVM reporting macros and controlling report verbosity and actions in UVM. It covers: 1. The main UVM reporting macros - uvm_info, uvm_warning, uvm_error, and uvm_fatal - and how they are used from components, sequences, and modules. 2. Controlling report verbosity using verbosity levels and hierarchical paths. Higher verbosity shows more messages. 3. Setting report actions like suppression, display, logging to file, and stopping simulation for different severities and IDs. 4. Redirecting reports to an output file for later analysis.

Uploaded by

NavneetJha
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 10

UVM Basics

Reporting

John Aynsley
CTO, Doulos
[email protected]
www.verificationacademy.com

The Report Macros

`uvm_info

("id", "message", verbosity)

`uvm_warning("id", "message")
`uvm_error

("id", "message")

`uvm_fatal

("id", "message")

From uvm_component

From uvm_sequence

From SystemVerilog module

Details of the Report


function void write(my_transaction t);
`uvm_info("ja", "Transaction received", UVM_NONE)

Severity

Severity

ID/Originator

File

Line

Message

Time

Verbosity

Hierarchical path

ID

# UVM_INFO eg.sv(110) @ 100: uvm_test_top.m_env.m_driver [ja]


Transaction received
Message

Controlling Verbosity

`uvm_info("id", "message 1", UVM_NONE)

Always appear

`uvm_info("id", "message 2", UVM_LOW)


`uvm_info("id", "message 3", UVM_MEDIUM)
`uvm_info("id", "message 4", UVM_HIGH)
`uvm_info("id", "message 5", UVM_FULL)

Usually filtered out

uvm_top.set_report_verbosity_level_hier(UVM_LOW);
Top-level component

Applies to entire hierarchy

Output if verbosity <= UVM_LOW

Setting Actions

uvm_top.set_report_severity_action_hier(
UVM_INFO, UVM_NO_ACTION);
All info messages

Suppress messages

uvm_top.set_report_id_action_hier(
"ja", UVM_NO_ACTION);
Suppress all messages with ID = "ja"

Some Common Actions

UVM_NO_ACTION

Do nothing

UVM_DISPLAY

Send report to standard output (default)

UVM_LOG

Send report to a file

UVM_COUNT

Stop simulation when max count is reached (error)

UVM_EXIT

Finish simulation immediately (fatal)

UVM_STOP

Call $stop

Redirecting Reports to a File

file_h = $fopen("my.log", "w");


uvm_top.set_report_default_file_hier(file_h);
uvm_top.set_report_severity_action_hier(
UVM_INFO, UVM_DISPLAY + UVM_LOG);

_hier method must be called after build_phase

Summary 1

Separating tests from test bench

Configurable test bench

Summary 2

Layered sequences
Transaction-level communication

Reusable VIP

UVM Basics
Reporting

John Aynsley
CTO, Doulos
[email protected]
www.verificationacademy.com

You might also like