In reply to chr_sue:
Thanks for the answer.
But, as far as I understand, it’s okay to start the same sequence twice (sequentially) as long as its state is CREATED, STOPPED or FINISHED.
For example, if I comment out ‘this.kill();’ from my example sequence, there will be no error. And that covers both CREATED case and FINISHED case.
virtual task start (uvm_sequencer_base sequencer,
uvm_sequence_base parent_sequence = null,
int this_priority = -1,
bit call_pre_post = 1);
set_item_context(parent_sequence, sequencer);
if (!(m_sequence_state inside {CREATED,STOPPED,FINISHED})) begin
uvm_report_fatal("SEQ_NOT_DONE",
{"Sequence ", get_full_name(), " already started"},UVM_NONE);
end
// ...
endtask
My question is “why doesn’t my sequence move to STOPPED state after it has been killed?”.