hi,
@clk and #10 clk = ~clk is blocking assignment, the two statement are scheduled at Active region,
but @clk and #10 clk <= ~clk, the first statement is scheduled at Active region and the sencond is scheduled at NBA region, when clk <= ~clk hanpen, the toggle of clk will reactive the @clk hanppen, and periodic trigger the non-blocking statement.
the generally writing style like below:
always #10 clk = ~clk; or
always #10 clk <= ~clk;
ps:no @clk condition
Thanks a lot!