Hello Folks,
I am new to UVM and trying to contruct a simple testbench with user defined sequences and sequence libraries.
In my sample testcase's build_phase I have
function void build_phase(uvm_phase phase) ;
vmidmt_client_seq_base seq_lib ;
seq_lib = vmidmt_client_seq_base::type_id::create("seq_lib", this) ;
uvm_config_seq::set(this, "*","default_sequence", seq_lib) ;
uvm_config_int::set(this, "*","min_random_count", 100) ;
uvm_config_int::set(this, "*","man_random_count", 100) ;
super.build_phase(phase) ;
uvm_report_info(get_name()," vmidmt_test_seq_lib build phase complete") ;
endfunction : build_phase
Here vmidmt_client_seq_base is simple user defined sequence with run_phase as
task vmidmt_client_seq_base::body() ;
`uvm_do(req);
endtask : body
In the run_phase of the testcase I have simple raise and drop objections as below
task vmidmt_test_seq_lib::run_phase(uvm_phase phase) ;
super.run_phase(phase) ;
#300;
uvm_report_info(get_name(), "Raising objection") ;
phase.raise_objection(this) ;
#30000;
uvm_report_info(get_name(), "Dropping objection") ;
phase.drop_objection(this) ;
uvm_report_info(get_name(), "Test should be done whenever stimulus finishes") ;
endtask : run_phase
I get the below error when I run the testcase (run time error)
# UVM_FATAL @ 0: uvm_test_top.tb.vmidmt_client_master.seq@@seq_lib [sEQ_NOT_DONE] Sequence uvm_test_top.tb.vmidmt_client_master.seq.seq_lib already started
Any debug tips or suggestions on what I might be doing wrong is really appreciated.
What does the SEQ_NOT_DONE error actually mean?
Thanks
Rakesh