在我的项目中,有很多序列可以按虚拟序列处理。序列之一具有盒子大小和起始值的尺寸信息。所以我需要将序列发送到记分板。我曾经尝试过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);
结论是我无法通过此方法访问数据。我尝试从序列发送信息到记分板意味着对象到组件。这是正确的访问方式吗? 提前致谢
答案 0 :(得分:1)
不清楚“ put_port.put(d);”在哪里正在被呼叫。
如果它在序列的body()中,则它应该可以工作。 提到了由虚拟序列处理的序列。因此,不得在虚拟序列类中的环境中实例化单个序列。
如果您发布更多相关代码,则可以进一步回答该问题。