What is the Right & Best way to develop VIP?

In my previous projects, I have used component based structure for VIP where every functionality sits in individual components instantiated in an agent. (For example, Decoder, Encoder etc)

But I also see Vendor’s VIP where most of the things are implemented in sequences. Here I see similar structure as given in OVM User Guide and all other functionality sitting in sequences.

Is sequence based approach preferred over component based approach? If yes, What are the advantages with this sequence based approach and what are the dis-advantages with component based approach?

Thanks,
Sandeep

In reply to sandeep.gonchigar:

Could anyone help me in understanding this?

Thanks,
Sandeep G S

The answer to your question is going to be very application/design dependent. A key consideration is how you architect the communication between the components and how dependent they are on one another. Communication between sequences has a very rigorous protocol which makes re-use much easier. Component-to-component communication tends to be more ad-hoc.

In reply to dave_59:

Thanks Dave!