Uvm_do_with

hello,
my qstns are: 1)what is uvm_do_with.how it works.

   my understanding is:
        uvm_do_with(seqncr,{seqncr.seq_item = values}
        uvm do with sends the seqitem value assigned to sequencer,is it so?


   2)  what are virtual sequences.if we write data thru vsequencer and testcase..which one will be overwrtitten?

Thanks and regards,
raman

In reply to ramandeepk:

uvm_do_with belongs to the family of the uvm_do macros and is used in the body method of a sequence. It defines how the seq_items will be generated. `uvm_do_with allows to add constraints to the generation. The body method is executed by the sequencer and provides seq_items which can be retrieved by the uvm_driver using get or get_next_item.