Section 12.4 State machine synthesis
When the state machine Listing 12.2.1 is passed to the Vivado synthesis tool (Section 11.3), a report is generated with interesting details about how the state machine is processed. This report includes a listing of the binary codes assigned to the states:
-----------------------------------------------------
State | New Encoding | Previous Encoding
-----------------------------------------------------
idle | 00 | 00
run | 01 | 01
flash | 10 | 10
finish | 11 | 11
-----------------------------------------------------
INFO: [Synth 8-3354] encoded FSM with state register
'curr_state_reg' using encoding 'sequential' in module
'FSM_redgreen'
Also, a table of the resources used:
Report Cell Usage:
+------+-----+------+
| |Cell |Count |
+------+-----+------+
|1 |LUT2 | 3|
|2 |LUT3 | 1|
|3 |FDRE | 2|
+------+-----+------+
This table is corroborated by the post-synthesis schematic, Figure 12.4.1. The two flip-flops hold the two state bits. Two of the lookup tables (Section 11.1) are used for next state logic, and the other two are used to generate the outputs.

Simulation waveform

