import uvm_pkg::*; /* Configuration object to configure the environment of Test Bench. Configurable fields: 1. intf: Virtual Interface for the agents 2. active: To set the agent as active or passive */ class env_config#(parameter A_WIDTH = 16, D_WIDTH = 16) extends uvm_object; `uvm_object_utils(env_config) // variables virtual axi_intf#(.D_WIDTH(D_WIDTH), .A_WIDTH(A_WIDTH)) intf; // Master and Slave are active or passive uvm_active_passive_enum active = UVM_ACTIVE; function new(string name = "env_config"); super.new(name); endfunction //new() endclass //env_config extends uvm_object // Configuration object which configures the sequence item generation class test_config extends uvm_object; `uvm_object_utils(test_config) // Vartiables int no_write_cases = 2; int no_read_cases = 2; // Set whether to produce aligned address or unalinged address // -1: produce both aligned and unaligned randomly // 0: produce unaligned adresses for all bursts // 1: produce alligned adress for all bursts byte isAligned = -1; // Set the specific burst type for a test // -1: produce all the burst type randomly // 0: produce fixed bursts // 1: produce incr bursts // 2: produce wrap bursts byte burst_type = -1; function new(string name = "test_config"); super.new(name); endfunction //new() endclass //test_config extends uvm_object