UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 59237

2014.1 Vivado Synthesis - Where can I find the information about FSM encoding generated by Vivado?

Description

ISE gives the following information on FSM encoding in the Synthesis report.

Where can I find this information in Vivado?

Optimizing FSM <FSM_0> on signal <state[1:2]> with Sequential encoding.
-------------------
 State | Encoding
-------------------
 0001  | 00
 0010  | 01
 0100  | 10
 1000  | 11
-------------------

Solution

Vivado 2015.1

This issue has been fixed in the 2015.1 Vivado Synthesis release.
 
In the 2015.1 version, Vivado Synthesis will provide all of the FSM encoding information in the synthesis report file.

The correlation between the New Encoding and the Old Encoding for the different states is provided within a table as mentioned below.

Below is an example of 2015.1 Vivado Synthesis reporting the relevant FSM encoding details inside the synthesis report file:
 

INFO: [Synth 8-802] inferred FSM for state register 'state_reg' in module 'fsm_test'

---------------------------------------------------------------------------------------------------
                   State |                     New Encoding |                     Old Encoding
---------------------------------------------------------------------------------------------------
                      s1 |                               00 |                             0001
                      s2 |                               01 |                             0010
                      s3 |                               10 |                             0100
                      s4 |                               11 |                             1000
---------------------------------------------------------------------------------------------------

INFO: [Synth 8-3354] encoded FSM with state register 'state_reg' using encoding 'sequential' in module 'fsm_test'


Versions prior to 2015.1

Prior to 2015.1, Vivado Synthesis shared the FSM encoding information between the Synthesis report and the fsm_encoding.os file which is located in the corresponding synth_x folder.


1. When FSM is inferred but re-encoding is not performed, the following message is given in the Synthesis report and the fsm_encoding.os file is not generated.

INFO: [Synth 8-3898] No Re-encoding of one hot register 'state_reg' in module 'fsm_test'


2. When FSM is inferred and re-encoding is performed, the following messages are given in the Synthesis report and the fsm_encoding.os file is generated with the encoding information in it.

INFO: [Synth 8-802] inferred FSM for state register 'state_reg' in module 'fsm_test'
INFO: [Synth 8-3354] encoded FSM with state register 'state_reg' using encoding 'sequential' in module 'fsm_test'


Below is an example of  the fsm_encoding.os file.

In each brace on the last line, the left is the original state encoding described in the HDL code and the right is the corresponding new encoding used in the netlist.

 add_fsm_encoding \
       {fsm_test.state} \
       { }  \
       {{0001 000} {0010 001} {0100 010} {1000 011} }
3. If you do not see any of the above messages in the Synthesis report, it indicates that FSM is not inferred.

AR# 59237
Date Created 01/27/2014
Last Updated 04/30/2015
Status Active
Type Known Issues
Tools
  • Vivado Design Suite