tkramer Posted May 10, 2012 Report Share Posted May 10, 2012 Hi, Can anyone provide any information about the arbitration scheme used in uvm_sequencer_base? It appears that I am getting a deadlock between the sequence/driver handshaking, as start_item is never returning. I was looking through the code and it appears to be blocking in the m_wait_for_arbitration_completed method of uvm_sequencer_base, at wait(lock_arb_size != m_lock_arb_size ); If anyone has any insight, I would really appreciate it Thanks, Tim Quote Link to comment Share on other sites More sharing options...
janick Posted May 10, 2012 Report Share Posted May 10, 2012 That happens if the thread that started the sequence got killed. If you are using the run-time phasing tasks, did you raise an objection for the duration of the sequence? Quote Link to comment Share on other sites More sharing options...
tkramer Posted May 10, 2012 Author Report Share Posted May 10, 2012 I am not using run time phasing. I am working on making my driver reset-tolerant, and do kill the thread that is driving my wires, but I protect the seq_item_port.try_next_item and seq_item_port.item_done calls using a semaphore. Is there anything that gets forked off during these tasks that could get killed? Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.