Jump to content

Abruptly killing a sequence results in UVM_ERROR

Recommended Posts

In the body of a virtual sequence I have a sequence running inside fork join, which is then killed by disabling the thread, like so:


virtual task body();



        `uvm_do_on(my_seq, my_seqr)


    @(negedge reset_b );

    disable seq_thread;






On doing this, we get the following error from the sequencer:


[sEQREQZMB] The task responsible for requesting a wait_for_grant on sequencer 'uvm_test_top.env.my_seqr' for sequence 'uvm_test_top.env.soc_v_sequencer.my_vseq.my_seq' has been killed, to avoid a deadlock the sequence will be removed from the arbitration queues.


What can I do in my virtual sequence to cleanly kill 'my_seq' when reset_b is asserted ? 


Link to comment
Share on other sites



"cold" killing a sequence by terminating the thread via fork/join/disable or process::kill very likely hangs the sequence-sequencer-driver interaction and a couple of handshakes. In the good case all you get is a message like the one you show. in the bad case it will render the sequencer in-operational. If you really need to terminate a sequence from the outside then .stop_sequences() and seq.kill(). But also keep in mind that one eventually has to perform add actions like resetting registers semaphores, resetting the driver etc otherwise you did just a reset of one part of your env and the rest is still in flight (for instance if you terminate a sequence which currently executes an item on the driver you need todo something with the driver otherwise the sequencer-driver handshake is out of sync.




Link to comment
Share on other sites

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.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...