uvm configure_phase никогда не вызывается - PullRequest
0 голосов
/ 01 марта 2020

Привет, у меня есть среда для тестирования, где я должен что-то делать каждый тест на этапе настройки. Поэтому я решил добавить base_test следующим образом

class base_test extends uvm_test;
  ....

  task configure_phase(uvm_phase phase);
    super.configure_phase(phase);
    phase.raise_objection(phase);
    `uvm_info(get_name(), "Entered configure_phase", UVM_LOW)
    phase.drop_objection(phase);
  endtask
endclass

class actual_test extends base_test;
  ....
endclass

Когда я запускаю тест, который расширяется от base_test, configure_phase никогда не вызывается автоматически, когда поток проходит фазирование UVM. Что-то еще мне нужно сделать?

1 Ответ

0 голосов
/ 01 марта 2020

Если test расширенный от base_test имеет configure_phase, ему нужно позвонить super.configure_phase(phase);


Вам действительно нужно показать mcve , как это ниже, который работает для меня.

import uvm_pkg::*;
`include "uvm_macros.svh"

class base_test extends uvm_test;
function new(string name="",uvm_component parent);
  super.new(name,parent);
endfunction
`uvm_component_utils(base_test)
  task configure_phase(uvm_phase phase);
    super.configure_phase(phase);
    `uvm_info(get_name(), "Entered configure_phase", UVM_LOW)
  endtask
endclass

class actual_test extends base_test;
function new(string name="",uvm_component parent);
  super.new(name,parent);
endfunction
`uvm_component_utils(actual_test)
endclass
module top;
  initial run_test("actual_test");
endmodule

Кстати, вы не должны поднимать и опускать возражения без некоторой задержки между ними или не делать это вообще.

...