Professional Documents
Culture Documents
Course Basic Uvm Session3 Connecting Env To Dut Tfitzpatrick
Course Basic Uvm Session3 Connecting Env To Dut Tfitzpatrick
Tom Fitzpatrick
Verification Evangelist
info@verificationacademy.com | www.verificationacademy.com
Connecting Env to DUT
module
Top-level
uvm_test Variable part
uvm_env
Class-based
uvm_agent classes Fixed part
dut_if
Structural interface
DUT
module
Interface
interface dut_if();
endinterface: dut_if
Top-level
uvm_test
uvm_env
uvm_agent
dut_if
DUT
DUT
module dut(dut_if _if);
dut_if
DUT
Configuration Database
Virtual interface
dut_if
Interface
DUT
uvm_config_db ... set
module top;
...
dut_if dut_if1 ();
initial
begin: blk Type of value Prefix Path
uvm_config_db #(virtual dut_if)::set(null, “uvm_test_top”,
"dut_vi", dut_if1);
Field name Value
run_test("my_test");
end
endmodule: top
Test Passes Virtual Interface Down
class my_test extends uvm_test;
...
my_dut_config dut_config_0;
...
phase.raise_objection(this); uvm_env
uvm_agent
#10 dut_vi.data = 0;
#10 dut_vi.data = 1;
#10 phase.drop_objection(this); dut_if
name = value
name = value
name = value
Scope
Path and field names can contain wildcards (glob pattern matching)
uvm_config_db: Hierarchical Configuration
uvm_test
set(this, "*", "data", a);
uvm_env
get(this, "", "opt", b);
set(this, "*", "data", b);
uvm_component
uvm_agentVirtual interface
dut_if
Interface
DUT
UVM Basics
Connecting Env to DUT
Tom Fitzpatrick
Verification Evangelist
info@verificationacademy.com | www.verificationacademy.com