Есть ли способ узнать в моей верхней части тестового стенда о текущей фазе иерархии UVM ?.Поскольку testbench top является статическим модулем, а иерархия UVM состоит из динамических классов.
В моей вершине testbench я непосредственно управляю несколькими портами, находящимися вне иерархии UVM.Мне нужно прекратить движение этих портов, скажем, после фазы выключения.Я могу сделать это, используя uvm_config_db, передавая фазу из последовательности, но я не хочу создавать зависимости.Я знаю, что это побеждает цель использования UVM и возможности повторного использования, но просто спрашиваю, могу ли я это сделать?.
module top()
initial begin
drive_ports();
end
virtual task drive_ports()
//I need to keep driving these ports till shutdown_phase
if (!uvm_tb_hierarchy.phase == shutdown_phase) //?? How to get phase??
dut.port = 8'hff
dut.en = 1;
endtask
initial begin
run_test()
end
endmodule