In reply to jms8:
They’re both illegal.
P1800-2012, section 25.9:
In order for a net to be driven via a virtual interface, the interface itself must provide a procedural means to do so. This can be accomplished either via a clocking block or by including a driver that is updated by a continuous assignment from a variable within the interface.
Your example driver code doesn’t use your clocking block, but are you in fact actually using it? That makes all the difference.
class big_driver extends uvm_driver #(big_item);
protected virtual big_ifc m_big_vif;
// Bunch of driver stuff
task set_all_x_high();
m_big_vif.x <= 6'b111_111;
endtask
endclass : big_driver
[/quote]
If your simulator is allowing the above example code, looks to me like it violates the standard.