1
votes
verilog - How do I stop all running sequences in UVM? - Stack Overflow
Asked
Viewed 7k times
1

Is there a way to stop all running sequences during a simulation(say when you get a reset) ? Is there a way to dump the a list of all running sequences at particular time during simulation ?

    4

    Yes. sequencer_h.stop_sequences() See https://verificationacademy.com/cookbook/Sequences/Stopping for what you need to do and what you need to be careful about with an active driver.

    There is nothing built-in to the UVM to dump all the running sequences, but if you are using Questa, there is a debugging command "uvm findsequences" that will list them out for you.

    2
    • What is sequencer_h ? Did you mean calling stop_sequences on all running sequencers ? I don't have access to the link you have posted.
      – Jean
      Oct 4 2013 at 22:16
    • When I do sqr.stop_sequences, I get this UVM_FATAL. Can you please provide any hints on how to debug this? Error: Item_done() called with no outstanding requests. Each call to item_done() must be paired with a previous call to get_next_item(). Aug 19 2014 at 1:12
    1

    There is a bit received_item_done in every sequence. You can wait for the posedge of this bit before stopping any particular sequence. You can use the current_grabber function from the sequencer base class to get a handle of the sequence which currently has a lock or grab on the sequence.

    stop_sequences will stop the sequence currently loaded on a sequencer.

      Your Answer

      By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

      Not the answer you're looking for? Browse other questions tagged or ask your own question.

       
      2

      2 Answers

      4
      votes

      Yes. sequencer_h.stop_sequences() See https://verificationacademy.com/cookbook/Sequences/Stopping for what you need to do and what you need to be careful about with an active driver.

      There is nothing built-in to the UVM to dump all the running sequences, but if you are using Questa, there is a debugging command "uvm findsequences" that will list them out for you.

      1
      votes

      There is a bit received_item_done in every sequence. You can wait for the posedge of this bit before stopping any particular sequence. You can use the current_grabber function from the sequencer base class to get a handle of the sequence which currently has a lock or grab on the sequence.

      stop_sequences will stop the sequence currently loaded on a sequencer.