Maybe I'm wrong, but I think that the main reason that if statements should be in the process is because the if statement can assign more than one signal, if you want to do the same outside the process, you will need to use more one conditional signal assignment.
For instance:
process(C0, C1, A, B, C) is begin if C0 = '1' then F <= A; G <= C; elsif C1 = '1' then F <= B; G <= B; else F <= C; G <= A; end if; end process;
Equivalent conditional assignments of signals outside the process:
F <= A when C0 = '1' else B when C1 = '1' else C; G <= C when C0 = '1' else B when C1 = '1' else A;
source share