What's the difference between a += 1 and a = a+1 in SV/V?
always_comb begin a = '0; a += 1; end
always_comb begin a= '0; a = a+1; end
Is 2nd case combinational loop?
a+=1 is just a short-hand for
a=a+1. They both are equivalent.
There is no combinational loop in both cases.
a will be simply driven
1 in both cases. Synthesiser usually flags this as warning or info.
These are equivalent assignment statements in SystemVerilog—there is absolutely no difference. And the two
always_comb blocks do absolutely nothing as they have no sensitivity to any variables. In fact, some tools may generate warnings or errors stating that the blocks do not represent combinational logic.