Quantcast
Channel: UVM Forums RSS Feed
Viewing all articles
Browse latest Browse all 756

UVMREG - Error msg: [REG_NO_ADAPT] Adapter not specified for map

$
0
0

Hi, All -

 

Hoping for a little help on this one. I have a very simple UVM register testbench but am having troubles getting it to work and having troubles figuring out the correct way to start the tests (there is lots of documentation on UVM REG setup except the final step of starting the test). Below is the error messages, the env.sv fle and the test1.sv file that I am using. I would be happy to tar-up the entire example if someone would like to look at more of my files.

 

Thanks to anyone who can figure out this problem.

 

Regards - Cliff

 

# UVM_INFO verilog_src/uvm-1.1d/src/reg/uvm_reg_map.svh(1062) @ 0: reporter [REG_NO_ADAPT] Adapter not specified for map 'model.dutmap'. Accesses via this map will send abstract 'uvm_reg_item' items to sequencer 'uvm_test_top.e.agnt.sqr'
# UVM_INFO verilog_src/questa_uvm_pkg-1.2/src/questa_uvm_pkg.sv(272) @ 0: reporter [Questa UVM] End Of Elaboration
# UVM_INFO verilog_src/uvm-1.1d/src/seq/uvm_sequencer_base.svh(1385) @ 0: uvm_test_top.e.agnt.sqr [PHASESEQ] No default phase sequence for phase 'run'
# UVM_INFO tb_driver.sv(40) @ 0: uvm_test_top.e.agnt.drv [INIT] Initialize (time @0)
# UVM_FATAL @ 0: reporter@@seq [SEQ] neither the item's sequencer nor dedicated sequencer has been supplied to start item in seq

 

class env extends uvm_env;
  `uvm_component_utils(env)

  tb_agent agnt;

  dutblk                     model;   // Register model object
  reg2dut_adapter            reg2dut; // Bus adapter object
  uvm_reg_predictor#(trans1) predict; // predictor component

  function new (string name, uvm_component parent);
    super.new(name, parent);
  endfunction

  function void build_phase(uvm_phase phase);
    super.build_phase(phase);
    agnt   =                    tb_agent::type_id::create("agnt", this);

    model   =                     dutblk::type_id::create("model");
    reg2dut =            reg2dut_adapter::type_id::create("reg2dut");
    predict = uvm_reg_predictor#(trans1)::type_id::create("predict", this);

    model.build();
    model.lock_model();
    uvm_config_db#(dutblk)::set(uvm_root::get(),"*","reg_model", model);
  endfunction

  function void connect_phase(uvm_phase phase);
    super.connect_phase(phase);
    model.dutmap.set_sequencer(agnt.sqr);
    predict.map     = model.dutmap;
    predict.adapter = reg2dut;
    // connect the predictor to the bus agent monitor analysis port
    agnt.aport.connect(predict.bus_in);
  endfunction
endclass

 

class test1 extends uvm_test;
  `uvm_component_utils(test1)

  env e;

  function new (string name, uvm_component parent);
    super.new(name, parent);
  endfunction

  function void build_phase(uvm_phase phase);
    super.build_phase(phase);
    e = env::type_id::create("e", this);
  endfunction

  task run_phase(uvm_phase phase);
    tr_sequence seq;
    seq = tr_sequence::type_id::create("seq");
    //----------------------------------------
    phase.raise_objection(this);
    //`uvm_do(seq)
    seq.start(null);
    phase.drop_objection(this);
  endtask
endclass


Viewing all articles
Browse latest Browse all 756

Trending Articles