Good morning everyone and thank you to take the time to read my question.
I have an issue with the UVM project I designed. I am relatively new in UVM so some of my choices can be weird.
My test runs a virtual sequence on a virtual sequencer. This virtual sequence creates a list of sequences to make and sends them. To check if everything goes well, the virtual sequence gets information of the DUT through a link monitor-virtual sequencer. If there is an issue, the virtual sequence prints an error and recalculate the list of sequences to do.
My problem is that I need for the check to get the information of the beginning and the end of the sequence on the driver (suppose here that 1 sequence creates only one item). The item sends from the monitor to the virtual sequence will also be linked to a string “BEGIN” or “END” of the sequence
My first idea was to get these information in the virtual sequencer through the call of get_next_item() and item_done(), but I don’t know how to change the run_phase to get these data.
What do you think about that? Is it possible or is it another way to get this information?
Here is a pseudo code of the virtual sequence:
class virtual_sequence extends uvm_sequence;
uvm_tlm_analysis_fifo#(fsm_rsp) item_collected_fifo; //link with the monitor
function new (string name="virtual Sequence");
endfunction // new