Tricky wrote:
> My guess would be that Synplify hasnt recognised that in the 2nd case
> S0, S1 and S2 outcomes are the same, whereas in the first you have
> explicitly told it so. With this being the case, you only need 1 bit
> to represent "present_state", whereas in case 2 its probably given you
> 2 and muxed it.
present_state is not defined here, so the number of bit associated with
it can be anything. According to the present_state definition (which is
elsewhere), the second case generates only a mux to generate En, while
in apparently in the first case it has an additional OR which i don't
know where it comes from.
The so called "vertical bar" (or "vertical line") apparently is needed
for mutually exclusive choices, as it should be in a case statement, so
the outcome should always be a mux, but I don't understand why the two
RTL are different.
Am I missing something? Probably yes