In reply to chr_sue:
In reply to cturner:
The syntax you are showing has parameters. That is valid of course.
But an interface cannot have another interface as port. But you might instantiate another interface inside your interface construct. An interface argument needs always a data direction. The SV does not have one.
This is incorrect. An interface port list declaration can have all the same constructs as a module port list declaration.
The problem comes from the fact that you cannot specify parameter overrides in an interface port—it absorbs whatever overrides that get connected to instance. Since parameters can effect the types of things you reference through a virtual interface, all parameters must match. There’s no way to guarantee the parameters match because you can have the same interface instantiated multiple times, with each interface instance connected to different interfaces.
In your case, as long as you only reference items through your virtual interface that are not effected by parameterization, you can ignore the warning.