Intel® Quartus® Prime Standard Edition User Guide: Third-party Synthesis
ID
683796
Date
9/24/2018
Public
1.1. About Synplify Support
1.2. Design Flow
1.3. Hardware Description Language Support
1.4. Intel Device Family Support
1.5. Tool Setup
1.6. Synplify Software Generated Files
1.7. Design Constraints Support
1.8. Simulation and Formal Verification
1.9. Synplify Optimization Strategies
1.10. Guidelines for Intel FPGA IP Cores and Architecture-Specific Features
1.11. Incremental Compilation and Block-Based Design
1.12. Synopsys Synplify* Support Revision History
1.10.1.1. Instantiating Intel FPGA IP Cores with IP Catalog Generated Verilog HDL Files
1.10.1.2. Instantiating Intel FPGA IP Cores with IP Catalog Generated VHDL Files
1.10.1.3. Changing Synplify’s Default Behavior for Instantiated Intel FPGA IP Cores
1.10.1.4. Instantiating Intellectual Property with the IP Catalog and Parameter Editor
1.10.1.5. Instantiating Black Box IP Cores with Generated Verilog HDL Files
1.10.1.6. Instantiating Black Box IP Cores with Generated VHDL Files
1.10.1.7. Other Synplify Software Attributes for Creating Black Boxes
1.11.1. Design Flow for Incremental Compilation
1.11.2. Creating a Design with Separate Netlist Files for Incremental Compilation
1.11.3. Using MultiPoint Synthesis with Incremental Compilation
1.11.4. Creating Multiple .vqm Files for a Incremental Compilation Flow With Separate Synplify Projects
1.11.5. Performing Incremental Compilation in the Intel® Quartus® Prime Software
2.1. About Precision RTL Synthesis Support
2.2. Design Flow
2.3. Intel Device Family Support
2.4. Precision Synthesis Generated Files
2.5. Creating and Compiling a Project in the Precision Synthesis Software
2.6. Mapping the Precision Synthesis Design
2.7. Synthesizing the Design and Evaluating the Results
2.8. Exporting Designs to the Intel® Quartus® Prime Software Using NativeLink Integration
2.9. Guidelines for Intel FPGA IP Cores and Architecture-Specific Features
2.10. Incremental Compilation and Block-Based Design
2.11. Mentor Graphics Precision* Synthesis Support Revision History
2.8.1. Running the Intel® Quartus® Prime Software from within the Precision Synthesis Software
2.8.2. Running the Intel® Quartus® Prime Software Manually Using the Precision Synthesis‑Generated Tcl Script
2.8.3. Using the Intel® Quartus® Prime Software to Run the Precision Synthesis Software
2.8.4. Passing Constraints to the Intel® Quartus® Prime Software
2.9.1. Instantiating IP Cores With IP Catalog-Generated Verilog HDL Files
2.9.2. Instantiating IP Cores With IP Catalog-Generated VHDL Files
2.9.3. Instantiating Intellectual Property With the IP Catalog and Parameter Editor
2.9.4. Instantiating Black Box IP Functions With Generated Verilog HDL Files
2.9.5. Instantiating Black Box IP Functions With Generated VHDL Files
2.9.6. Inferring Intel FPGA IP Cores from HDL Code
2.10.1. Creating a Design with Precision RTL Plus Incremental Synthesis
2.10.2. Creating Multiple Mapped Netlist Files With Separate Precision Projects or Implementations
2.10.3. Creating Black Boxes to Create Netlists
2.10.4. Creating Intel® Quartus® Prime Projects for Multiple Netlist Files
2.10.5. Hierarchy and Design Considerations
1.9.4. FSM Compiler
If the FSM Compiler is turned on, the compiler automatically detects state machines in a design, which are then extracted and optimized. The FSM Compiler analyzes state machines and implements sequential, gray, or one-hot encoding, based on the number of states. The compiler also performs unused-state analysis, optimization of unreachable states, and minimization of transition logic. Implementation is based on the number of states, regardless of the coding style in the HDL code.
If the FSM Compiler is turned off, the compiler does not optimize logic as state machines. The state machines are implemented as HDL code. Thus, if the coding style for a state machine is sequential, the implementation is also sequential.
Use the syn_state_machine compiler directive to specify or prevent a state machine from being extracted and optimized. To override the default encoding of the FSM Compiler, use the syn_encoding directive.
Value | Description |
---|---|
Sequential | Generates state machines with the fewest possible flipflops. Sequential, also called binary, state machines are useful for area-critical designs when timing is not the primary concern. |
Gray | Generates state machines where only one flipflop changes during each transition. Gray-encoded state machines tend to be glitches. |
One-hot | Generates state machines containing one flipflop for each state. One-hot state machines typically provide the best performance and shortest clock-to-output delays. However, one-hot implementations are usually larger than sequential implementations. |
Safe | Generates extra control logic to force the state machine to the reset state if an invalid state is reached. You can use the safe value in conjunction with any of the other three values, which results in the state machine being implemented with the requested encoding scheme and the generation of the reset logic. |
Sample VHDL Code for Applying syn_encoding Directive
SIGNAL current_state : STD_LOGIC_VECTOR (7 DOWNTO 0); ATTRIBUTE syn_encoding : STRING; ATTRIBUTE syn_encoding OF current_state : SIGNAL IS "sequential";
By default, the state machine logic is optimized for speed and area, which may be potentially undesirable for critical systems. The safe value generates extra control logic to force the state machine to the reset state if an invalid state is reached.