wire out ;
reg [2:0] current_state;
Case 1: assign out = (current_state = S3)&(in == 1’b1) ? 1’b1:1’b0;
Error: current_state is reg which is inavlid in assign
case 2: assign out = (current_state == S3)&(in == 1’b1) ? 1’b1:1’b0;
compilation passing
Why in second case reg is not taken care of ? is it taking absolute value ?