Hi
I am getting following error even though I am not using the Response transactions in sequence-driver handshake. My sequencer is default ovm_sequencer.
How to solve this?
OVM_ERROR @ 2050: reporter [ovm_test_top.pif_env_inst.master_agent.master_sequencer.my_seq] Response queue overflow, response was dropped
Thanks.
If the driver sends responses back to the sequence then the sequence has to use get_response() to read back from the response queue. Did you write the driver? If so, then you’ll need to fix the driver. See the link below for more information:
http://verificationacademy.com/uvm-ovm/Driver/Sequence_API
If not and since you’re not using the responses, you could enable the response handler and implement a dummy response handling method.
use_response_handler(1);
Then implement:
function void response_handler( ovm_sequence_item response );
endfunction
In reply to mperyer:
Hi mperyer,
Thanks a lot for your response. I wrote my driver but used get_next_item() & item_done() API. I don’t use responses anywhere. So driver doesn’t need to send back the response. This is exactly as suggested. Then why should I get this error?
Just by calling get_response() at the end of the sequence got rid of my error. Does the driver send the response back to sequence by default? Is my solution correct?
Do I need to implement dummy response handler? Where should I do it? In the driver or in sequence? Don’t I have to call that method?
Thanks,
When you call item_done() in the driver do you return a response handle or a null handle?
seq_item_port.item_done(); or
seq_item_port.item_done(rsp);
If you’re returning a response handle, which is unnecessary, then you will get the problem you are reporting.