virtual sequence and virtual sequencer application
What's the application of virtual sequence and virtual sequencer? It's that means when you already verified block level component using subsequencers and its related sequence library, you want using the same sequence library to verify block level component from system level, at the mean time, you can create virtual sequence library if you want to verify system component. Please let me know your thought.
Generally speaking, the Virtual Sequencer (and hence, virtual sequences) is intended to allow you to control (execute, or in sequencer terms "do") some number of sequencers in your testbench from a single location. One usage model is certainly reusing block level sequences, and co-ordinating them with other block level sequences to form meaningful system level tests.
Another option when using virtual sequences is to allow partioning of stimulus control. Since sequencers allow many threads to be concurrently active (and include logic to arbitrate between sequences) an environment user could constrain sequences running on the individual sequencers to generate "background traffic" or similar noise, while executing sequences of meaningful or interesting test stimulus via a virtual sequence. In this case, the config of the environment could specify the default sequence to run on a particular sequencer (background traffic) while the virtual sequence specifies the interesting sequences that are specific to the individual test.
At a high level, allowing a user the ability to write sequences that control sub-sequences on one or more sequencers (and thus, one or more interface) opens a number of doors in terms of both flexibility and reuse.