Вы должны интерпретировать этот код так же, как
module add(input logic clock, output logic[7:0] f);
logic[7:0] a, b;
always_ff @(posedge clock)
a <= b + f;
always_ff @(posedge clock)
b <= f + a;
always_ff @(posedge clock)
f <= a + b;
endmodule
Это логически эквивалентно тому, что вы написали, но дает предсказуемые результаты моделирования для любого кода, который выбирает выходные данные f
для posedge clock