I have a UVM testbench, with 2 instances of following uvm_component:
class my_driver ...
virtual interface my_vif;
task my_task
...
@(posedge my_vif.clk);
my_vif.a = 1;
...
endtask
endclass
Virtual interface is tied to 2 different physical modules in design for these 2 driver instances.
The problem is that logic before @posedge for both instances gets called. However, only one instance goes through @posedge, and moves to my_vif.a =1 statement, while the other stucks at posedge, so never moves to next statement. Does anybody know the reason?
Thank you!