always_ff @(posedge sysclk) begin
case(state) begin
SOME_STATE begin
if(some logic to check) begin
variable1 <= 1;
variable2 <= variable_a > 0 ? 0 : 1;
end
else begin
variable1 <= variable_b > 0 ? 0 : 1;
variable2 <= 1;
end
variable3 <= {variable1, variable2};
end //this case
endcase
end //always_ff
All variables are of type logic and are appropriately sized.
Will system verilog correctly evaluate the statements controlling var1 and 2 before assigning them into var3 or does it treat if statements within an always_ff as non-blocking? There're more else if's that have been removed for clarity of the question.