In reply to dave_59:
Yup that’s the issue, even in my UVC I have a wait statement, I somehow overlooked it when posted example code for Alex. Thanks Dave for catching this.
always begin
wait (clk_en == 1);
while (clk_en) begin
clk = 1;
#clk_high_period;
clk = 0;
#clk_low_period;
end
end