Loop over start and drop_objection();

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).

In reply to saritr:

Hi,

I think the simulation will exit as drop objection has been done. The code should not have the drop objection which might terminate the simulation.

The motivation, i feel, requires the AXI to be programmed first and then the tx_seq should be executed. Then we have to work it out in sequence rather than in parallel (fork-join).

Hence i feel
(1) remove the drop objection.
(2) run the two sequence in serial execute.
will resolve the issue.

-Amar.