`ifndef CALC_CONFIG_SV
 `define CALC_CONFIG_SV

//-----------------------------------------------------------------------------
// Calc1 agent / environment configuration object (Vezba 9).
//-----------------------------------------------------------------------------
class calc_config extends uvm_object;

   // active (drive + monitor) or passive (monitor only)
   uvm_active_passive_enum is_active = UVM_ACTIVE;

   // turn checking / coverage collection on or off from the test level
   bit checks_enable   = 1;
   bit coverage_enable = 1;

   `uvm_object_utils_begin (calc_config)
      `uvm_field_enum(uvm_active_passive_enum, is_active, UVM_DEFAULT)
      `uvm_field_int (checks_enable,   UVM_DEFAULT)
      `uvm_field_int (coverage_enable, UVM_DEFAULT)
   `uvm_object_utils_end

   function new(string name = "calc_config");
      super.new(name);
   endfunction

endclass : calc_config

`endif
