UVM Environment
Table of Contents
The user-defined environment is derived from uvm_env, uvm_env is inherited from uvm_component.
The environment is the container class, It contains one or more agents, as well as other components such as the scoreboard, top-level monitor, and checker.
Writing Environment
1. The environment is written by extending UVM_ENV,
class mem_model_env extends uvm_env;
`uvm_component_utils(mem_model_env)
// new - constructor
function new(string name, uvm_component parent);
super.new(name, parent);
endfunction : new
endclass : mem_model_env
2. Declare the agent,
mem_agent mem_agnt;
3. Create an agent,
mem_agnt = mem_agent::type_id::create("mem_agnt", this);
Complete environment code,
class mem_model_env extends uvm_env;
mem_agent mem_agnt;
`uvm_component_utils(mem_model_env)
// new - constructor
function new(string name, uvm_component parent);
super.new(name, parent);
endfunction : new
// build_phase
function void build_phase(uvm_phase phase);
super.build_phase(phase);
mem_agnt = mem_agent::type_id::create("mem_agnt", this);
endfunction : build_phase
endclass : mem_model_env