0

在我的项目中,有很多由虚拟序列处理的序列。序列之一具有框大小和起始值的维度信息。所以我需要将序列发送到记分牌。我曾尝试通过 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);

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

4

1 回答 1

1

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

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

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

于 2018-07-01T04:35:04.960 回答