Difference between Virtual sequence and Virtual sequencers

Hi

Virtual sequence is master sequence which coordinate multiple agent’s sequence which have real driver’s.

Virtual Sequencers uses the handle of sub local sequencer which is used by Virtual sequence.

But my Question is when to use Virtual Sequence and Virtual sequencer,any advantage of both?

~Taahir

In reply to syed taahir ahmed:

The UVM Cookbook has a section on Virtual Sequences.

I’m not sure what you are asking. Virtual sequences are used in tests to co-ordinate multiple sequences that run on the environment’s agents.

In reply to cgales:

In reply to syed taahir ahmed:
The UVM Cookbook has a section on Virtual Sequences.
I’m not sure what you are asking. Virtual sequences are used in tests to co-ordinate multiple sequences that run on the environment’s agents.

My Questions is where exactly the usage of Virtual Sequence and Virtual sequencer will come?
As you said Virtual sequences are used to co-ordinate multiple sequences,agree and how is the usage of Virtual sequencer?

Any specific reason when to use Virtual Sequencer and When to use Virtual sequences?

~Taahir

In reply to syed taahir ahmed:

you have to use either virtual sequence or virtual sequencer(you may find examples online here verification academy too), to manage traffic on multiple interfaces in Soc, for example in your SoC you have USB, ETHERNET, AHB ports to drive traffic, then in your verification environment you will have all these three protocol UVCs and their sequences and sequencers will be controlled by virtual sequence or virtual sequencer that you are going to wrap above them.

First way with virtual sequence:
https://verificationacademy.com/cookbook/sequences/virtual

Second way:
The Virtual Sequencer - An Alternative Methodology For Running Virtual Sequences

An alternative methodology for running virtual sequences is to use a virtual sequencer(Sequences/VirtualSequencer | Verification Academy), which is a uvm_sequencer which contains the handles for the target sequencers. In this methodology, the virtual sequence is started on the virtual sequencer and it gets the handles for the target sequencers from the virtual sequencer. The limitation of this approach is that it is a fixed implementation which is very tightly coupled to the local hierarchy of an env and this adds complications with vertical reuse.

Hope this will be useful. Thank you.

In reply to syed taahir ahmed:

UVM sequencer that contain handles to other sequencers. Why do we need this ? Because we plan to use virtual sequences and want to have control over all sequencers from a central place.

but The need for a virtual sequence arises when you require different sequences to be run on different environments.

In reply to Mohan Shyam:

You do not need a virtual sequence to execute virtual sequences. But you have to consider certain Things. You have to Vahe in your Virtual sequences handles to your agent sequencers and handles to your agent sequences you want to use.

Hi Syed,
Virtual sequence and virtual sequencers concepts are mainly used in terms of re-usability purpose.

  1. It avoids the dependency of testcase writer on to the testbench developer, so testcase writer can directly run the high level virtual sequence on to the virtual sequencer
    v_seq.start(env.v_seqr);

  2. When the testbench developer not interested to reveal the internal hierarchy of his testbench he can point his customers to use the high level virtual sequence and virtual sequencers.