Get coverage and send a new sequence if the goal is not reached

I know how to get the current coverage for a certain covergroup. I’m not sure how I can send a new sequence based on the coverage result.

Is there a way to inquire about coverage and if the goal is not met, a new sequence is randomized and fed to the sequencer?

Where is a suitable place to put this closed loop mechanism? In a uvm_env object?

Is there a reference where I can learn how to do such me mechanism?


In reply to Khaled Ismail:

It’s a theoretical question what you are asking. You will never meet your coverage results with 2 or 3 sequences.
You should rely on your verification plan and your tool features to improve your functional coverage by adding more and more sequences/tests to your environment.

Yes of course for a complex design, a couple of sequences will not be enough.

Maybe I should rephrase the question. How can I enable this mechanism in a UVM environment? Should I restart the UVM phases after a sequence finishes executing? I couldn’t find a source in the literature explaining this approach.