Intel® Quartus® Prime Standard Edition User Guide: Design Optimization

ID 683230
Date 11/12/2018
Document Table of Contents Improving Register-to-Register Timing

The choice of options and settings to improve the timing margin (slack) or to improve register-to-register timing depends on the failing paths in the design. To achieve the results that best approximate your performance requirements, apply the following techniques and compile the design after each step:
  1. Ensure that your timing assignments are complete and correct. For details, refer to the Initial Compilation: Required Settings section in the Design Optimization Overview chapter.
  2. Review all warning messages from your initial compilation and check for ignored timing assignments.
  3. Apply netlist synthesis optimization options.
  4. To optimize for speed, apply the following synthesis options:
    • Optimize Synthesis for Speed, Not Area
    • Flatten the Hierarchy During Synthesis
    • Set the Synthesis Effort to High
    • Change State Machine Encoding
    • Prevent Shift Register Inference
    • Use Other Synthesis Options Available in Your Synthesis Tool
  5. To optimize for performance using physical synthesis, apply the following options:
    • Enable physical synthesis
    • Perform automatic asynchronous signal pipelining
    • Perform register duplication
    • Perform register retiming
    • Perform logic to memory mapping
  6. Try different Fitter seeds. If only a small number of paths are failing by small negative slack, then you can try with a different seed to find a fit that meets constraints in the Fitter seed noise.
    Note: Omit this step if a large number of critical paths are failing, or if the paths are failing by a long margin.
  7. To control placement, make Logic Lock (Standard) assignments.
  8. Modify your design source code to fix areas of the design that are still failing timing requirements by significant amounts.
  9. Make location assignments, or as a last resort, perform manual placement by back-annotating the design.
    You can use Design Space Explorer II (DSE) to automate the process of running different compilations with different settings.
    If these techniques do not achieve performance requirements, additional design source code modifications might be required.