Time0 signal checker

In reply to mlsxdx:

You get a posedge clk at time 0 because its default initial value is 0, and you set it to 1 at time 0. Either remove your
clk = 0;
procedural assignment at time 0, or declare it with an initial value of 1.

bit clk = 1;

That initialization happens before any other initial or always processes start. You can do the same thing with en. I am not exactly sure what you are trying to check.