External Memory Interface Handbook Volume 2: Design Guidelines

ID 683385
Date 5/08/2017
Document Table of Contents

10.4.1. Evaluating FPGA Timing Issues

Usually, you should not encounter timing issues with Intel® -provided IP unless your design exceeds Intel® 's published performance range or you are using a device for which the Quartus Prime software offers only preliminary timing model support. Nevertheless, timing issues can occur in the following circumstances:
  • The .sdc files are incorrectly added to the Quartus Prime project
  • Quartus Prime analysis and synthesis settings are not correct
  • Quartus Prime Fitter settings are not correct

For all of these issues, refer to the correct user guide for more information about recommended settings and follow these steps:

  1. Ensure that the IP generated .sdc files are listed in the Quartus Prime TimeQuest Timing Analyzer files to include in the project window.
  2. Ensure that Analysis and Synthesis Settings are set to Optimization Technique Speed .
  3. Ensure that Fitter Settings are set to Fitter Effort Standard Fit .
  4. Use TimeQuest Report Ignored Constraints, to ensure that .sdc files are successfully applied.
  5. Use TimeQuest Report Unconstrained Paths, to ensure that all critical paths are correctly constrained.

More complex timing problems can occur if any of the following conditions are true:

  • The design includes multiple PHY or core projects
  • Devices where the resources are heavily used
  • The design includes wide, distributed, maximum performance interfaces in large die sizes

Any of the above conditions can lead to suboptimal placement results when the PHY or controller are distributed around the FPGA. To evaluate such issues, simplify the design to just the autogenerated example top-level file and determine if the core meets timing and you see a working interface. Failure implies that a more fundamental timing issue exists. If the standalone design passes core timing, evaluate how this placement and fit is different than your complete design.

Use LogicLock regions, or design partitions to better define the placement of your memory controllers. When you have your interface standalone placement, repeat for additional interfaces, combine, and finally add the rest of your design.

Additionally, use fitter seeds and increase the placement and router effort multiplier.

Did you find the information on this page useful?

Characters remaining:

Feedback Message