0
votes

In my project, there are so many sequences which handle by virtual sequence. One of sequence has the information of dimensions of box size and start values. So I need to send sequence to scoreboard. I had tried by UVM ports At sequence:

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);

At scoreboard:

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

Task put();
  ...
Endtask

At environment:

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

Conclusion is I'm not able to access data by this methodology. I'm trying to send information from sequence to scoreboard means object to component . Is it correct way to access? Thanks in advance

1
On the face of it, your idea seems sensible. A more conventional way (if it's possible) might be for a monitor to reconstruct the box size and start value by observing the physical interface associated with your sequence (and driver). - Matthew Taylor

1 Answers

1
votes

It is not clear where "put_port.put(d);" is being called.

If it is in body() of a sequence then it should work. The sequences handled by the virtual sequence are mentioned. Therefore, the individual sequence must not be instantiated in an environment that should be in the virtual sequence class.

If you post more relevant code, this question can be further answered.