Как получить доступ к переменным в последовательности UVM - PullRequest
0 голосов
/ 19 июня 2019

Я изучаю UVM и смущен тем, как получить доступ к переменным последовательности. Например, вот фрагмент кода для base_sequence, который получен из UVM_sequence. Теперь я хочу изменить значение n_times из верхней части теста, как я могу узнать иерархию последовательности, чтобы я мог использовать UVM_config_db?

class base_sequence extends uvm_sequence;
  ...... 
  my_data  data_obj;
  int unsigned      n_times;
  .......

  virtual task body ();
     ...... 
     repeat (n_times) begin
        start_item (data_obj);
        assert (data_obj.randomize ());
        finish_item (data_obj);
     end
  endtask
  ...... 

endclass

спасибо.

Ответы [ 2 ]

1 голос
/ 21 июня 2019

Спасибо за информацию Мэтью Тейлора.Я также нахожу другой способ установить переменные в последовательности. Вот ссылка для этого

0 голосов
/ 20 июня 2019

Вы не можете получить доступ к последовательности иерархически, так как последовательность не является частью иерархии testbench.Решение изменить «n_times» в последовательности - либо передать значение до класса, в котором вы запускаете последовательность, и назначить его там.Вы также можете использовать метод config db get/set.

Из теста:

uvm_config_db#(int)::set(uvm_root::get(),"","n_times", n_times );

В последовательности:

uvm_config_db#(int)::get(null, "", "n_times", n_times)
...