Hi ,
What is the best way handle on the fly reset in uvm_driver.
- assume we did get_next_item
- driving is in progress. and received item done
- In that case, i have to kill driving thread and call seq_item_port.finish_item(), other wise sequencer will hang. because of the following code ( wait) in sqr
task uvm_sequencer_base::wait_for_item_done(uvm_sequence_base sequence_ptr,
int transaction_id);
int sequence_id;
sequence_id = sequence_ptr.m_get_sqr_sequence_id(m_sequencer_id, 1);
m_wait_for_item_sequence_id = -1;
m_wait_for_item_transaction_id = -1;
if (transaction_id == -1)
wait (m_wait_for_item_sequence_id == sequence_id);
else
wait ((m_wait_for_item_sequence_id == sequence_id &&
m_wait_for_item_transaction_id == transaction_id));
endtask
Thanks