Hi ,
I want to kill one top sequence which internally has sub sequences which will run on different sequencer. I have tried to kill from top, but still the inner sequences are still running.
Here is the example.
class base_seq extends uvm_seq;
`uvm_declare_p_sequencer(A_sqr)
sub1_seq sub1seq;
virtual task body();
`uvm_do(sub1seq);
endtask
endclass
class sub1_seq extends uvm_seq2;
`uvm_declare_p_sequencer(B_sqr)
sub2_seq sub2seq;
virtual task body();
`uvm_do(sub2seq);
endtask
endclass
from top most class, here is the piece of code i used to kill the sequence.
class topseq extends topbaseseq;
`uvm_declare_p_sequencer(top_vir_seqr)
base_seq Baseseq;
virtual task body();
// starting Baseseq and checking some conditions and then i am trying to kill this seq like this.
// 1-st method
Baseseq.kill() // This is not working as i can see that some transfers are still going on from the internal sequnces
// After checking user guide i cam to know that if the sequencers are different that we have to use “unregister_sequence()” method
// But no example on this, so i have tried different methods to do the same.
// 2-nd method.
Baseseq.sub1seq.sub2seq.kill();
Baseseq.sub1seq.kill();
Baseseq.kill();
endtask
Is there anything wrong here, why this is not working here i am not clear.
can anyone explain me on this, also please explain me on unregister_sequence method.