In reply to sruthikrapa:
I would highly recommend removing all # delay statements from your sequences. All UVM code should be untimed with the exception of driver code. You should instead make any delay requirements part of your sequence items (i.e. wait ‘x’ number of clock cycles before or after the transaction).
By doing this, you don’t worry about when a sequence or sequence_item will complete. You simply start() the sequence and when it finishes, you start the next sequence.