Как получить доступ к данным последовательности из табло

В моем проекте есть так много последовательностей, которые обрабатываются виртуальной последовательностью. Одна из последовательностей имеет информацию о размерах блока и начальных значениях. Поэтому мне нужно отправить последовательность на табло. Я пытался через порты UVM В последовательности:

uvm_ blocking_put_port#(dimension) put_port;

function new(..);
  ...
  Put_port =new(...);
endfunction

Dimension d;

d.sizex= size_x;
d.sizey=size_y;
.....
Put_port.put(d);

На табло:

uvm_ blocking_put_imp#(dimension) put_port;
....
function new(..);
  ...
  Put_port =new(...);
endfunction

Task put();
  ...
Endtask

В среде:

....
Connect phase ();
Seq.put_port.connect(scrb.put_port);

Вывод: я не могу получить доступ к данным по этой методологии. Я пытаюсь отправить информацию из последовательности в табло означает объект для компонента. Это правильный способ доступа? заранее спасибо

2 ответа

Непонятно, где "put_port.put(d);" называется

Если он находится в body() последовательности, он должен работать. Упоминаются последовательности, обрабатываемые виртуальной последовательностью. Следовательно, отдельная последовательность не должна создаваться в среде, которая должна находиться в классе виртуальной последовательности.

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

Последовательность создается «на лету» во время моделирования, а таблица результатов создается в момент времени 0 на этапе сборки. Вы не можете подключить uvm_object к uvm_component таким образом (на самом деле).

Правильный способ сделать это — воссоздать «измерение» на мониторе, просматривая интерфейсы ИУ, а затем отправить его на табло с помощью порта анализа.

Другие вопросы по тегам