0

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

Unn
  • 4,775
  • 18
  • 30
  • 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 Jun 14 '18 at 08:09

2 Answers2

1

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.

MrPerson
  • 29
  • 4
Ganesh Rahate
  • 13
  • 1
  • 1
  • 5
-1

The sequence gets created 'on the fly' during simulation and scoreboard is created at time 0 during build phase. You can't connect uvm_object to uvm_component like that (afaik).

The right way of doing this is to re-construct the 'dimension' in the monitor by looking the DUT interfaces and then send it to the scoreboard using analysis port.

  • As it’s currently written, your answer is unclear. Please [edit] to add additional details that will help others understand how this addresses the question asked. You can find more information on how to write good answers [in the help center](/help/how-to-answer). – Community Jan 02 '23 at 09:52