Is it possible to so something like the following (in the test file):
//run_phase
task run_phase(uvm_phase phase);
tx_lin_int_gt_sm tx_seq_i;
axi_rd_from_file_sequence axi_seq_i;
phase.raise_objection(.obj(this));
tx_seq_i = tx_sequence::type_id::create(.name("tx_seq_i"), .contxt(get_full_name()));
axi_seq_i = axi_rd_from_file_sequence::type_id::create(.name("axi_seq_i"), .contxt(get_full_name()));
whille (i<= 9) begin
fork
begin
tx_seq_i.start(grb_env_i.tx_agent_i.tx_seqr_i);
end
begin
axi_seq_i.start(grb_env_i.axi_agent_i.axi_seqr_i);
end
join
phase.drop_objection(.obj(this));
end
super.run_phase(phase);
endtask // run_phase
The motivation that through the axi sequence I config some register, and I want to execute the tx_seq over all the possible configuration of the register (I have to re-config the register only after the tx_seq ifinish).