如何从记分板访问序列数据

时间:2018-06-13 13:45:14

标签: system-verilog uvm vlsi

在我的项目中,有很多序列可以按虚拟序列处理。序列之一具有盒子大小和起始值的尺寸信息。所以我需要将序列发送到记分板。我曾经尝试过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);

结论是我无法通过此方法访问数据。我尝试从序列发送信息到记分板意味着对象到组件。这是正确的访问方式吗? 提前致谢

1 个答案:

答案 0 :(得分:1)

不清楚“ put_port.put(d);”在哪里正在被呼叫。

如果它在序列的body()中,则它应该可以工作。 提到了由虚拟序列处理的序列。因此,不得在虚拟序列类中的环境中实例化单个序列。

如果您发布更多相关代码,则可以进一步回答该问题。