I wrote a sequence inside a virtual interface. I want to use that sequence as an event control in a task. I tried using @vif.my_seq or a wait(vif.my_seq), but I get fatal errors.
What is the right way to do this? Am I attempting something imposible?
I think you meant to say you wrote a sequence inside an interface. A virtual interface is just a dynamic variable that contains a handle to an actual interface instance. You cannot reference a sequence dynamically. What you can do is create a task inside your interface that references the sequence, and then you can call that task through the virtual interface reference.
This has the added benefit of keeping your class based driver or monitor code free of any other event or delay controls other than a synchronous clock edge.