Как получить доступ к данным последовательности из табло
В моем проекте есть так много последовательностей, которые обрабатываются виртуальной последовательностью. Одна из последовательностей имеет информацию о размерах блока и начальных значениях. Поэтому мне нужно отправить последовательность на табло. Я пытался через порты 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 таким образом (на самом деле).
Правильный способ сделать это — воссоздать «измерение» на мониторе, просматривая интерфейсы ИУ, а затем отправить его на табло с помощью порта анализа.