Intel® FPGA IP for External Memory Interfaces - Support Center

Welcome to the External Memory Interface (EMIF) support page! Here you will find information on how to plan, design, and implement your external memory interfaces. You will also find debug, training, and resource materials on this page.

This page is set up to walk you through the design process from start to finish.

Two tools are available to help you select an Intel® FPGA device based on your memory requirements: 

  EMIF Device Selector EMIF Spec Estimator
Features
  • Determines memory interfaces needed to achieve a desired bandwidth
  • Calculates bandwidth based on selected memory configurations
  • Displays all Intel® Stratix® 10 and Intel® Arria® 10 FPGAs supporting selected memory interfaces
  • Determines required Intel® FPGA device family and speed grade needed to achieve desired performance
  • Displays maximum frequency and DQ width available based on memory selections

Device Support
  • Intel® Stratix® 10 
  • Intel® Arria® 10
  • All Intel® FPGAs
Resources

For information regarding the External Memory Interface (EMIF) Intellectual Property (IP), refer to the following External Memory Interfaces IP User Guides:

For detailed information regarding EMIF IP parameters, refer to the following protocol-specific sections within the following External Memory Interfaces IP User Guides: 

  Intel® Stratix® 10 Intel® Arria® 10 Intel® Cyclone® 10
EMIF IP Parameter Descriptions
For step-by-step instructions on how to generate the EMIF IP and how to create a reference design example, refer to the appropriate External Memory Interfaces IP Design Example User Guide and videos:

Note: The video is applicable to Intel® Stratix® 10 devices as well.

For step-by-step instructions on how to integrate multiple EMIF IP cores into a single Platform Designer (formerly Qsys) system, refer to the following guide and video:

Note: The design guide is applicable to Intel® Stratix® 10 devices as well.

For detailed information on simulating the EMIF IP, refer to the following section within the External Memory Interfaces IP User Guides:

For instructions on how to generate an EMIF simulation design example and how to run simulations using the ModelSim*-Intel® FPGA simulation software, refer to the following sections within the External Memory Interfaces IP Design Example User Guides:

For detailed EMIF pin information, refer to the following protocol-specific sections within the following External Memory Interfaces IP User Guides: 

  Intel® Stratix® 10 Intel® Arria® 10 Intel® Cyclone® 10
EMIF Pin and Resource Planning

For simplified I/O placement refer to the Interface Planner for an easy-to-use drag-and-drop tool available in the Intel® Quartus® Prime Pro Edition software for Intel® Arria® 10 and Intel® Stratix® 10 FPGAs. Refer to the following videos for information on how to use the Interface Planner and its benefits:

What is Ping Pong PHY?

Ping Pong PHY allows two memory interfaces to share Address and Command buses. This is supported for DDR3 and DDR4 protocols and for Stratix® V, Intel® Arria® 10, and Intel® Stratix® 10 FPGAs. Refer to the following video for information on the concept of Ping Pong PHY, its benefits, and an analysis of simulation results:

How Do I Generate the HPS EMIF IP?

For a quick reference guide on Hard Processor Subsystem (HPS) EMIF limitations, IP generation, and pin constraints, refer to the following guidelines:

Where Do I Find Information on PHYLite?

The PHYLite IP allows you to build custom memory interface PHY blocks for Intel® Arria® 10 and Intel® Stratix® 10 FPGAs. For detailed information about the PHYLite IP, refer to the following user guide:

For detailed information on how to properly assign pinouts for PHYLite based on different DQ/DQS group sizes, refer to the following video:

Note: The video is applicable to Intel® Stratix® 10 devices as well.

The PHYLite IP supports many different I/O standards and termination values on input and output buffers for Intel® Arria® 10 and Intel® Stratix® 10 FPGAs. Refer to the following video for infroamtion on how to create an On-Chip-Termination (OCT) block and how to associate it with the terminated I/O buffer in the PHYLite IP:

For detailed EMIF board layout and design information, refer to the following protocol-specific sections within the following External Memory Interfaces IP User Guides: 

  Intel® Stratix® 10 Intel® Arria® 10 Intel® Cyclone® 10
EMIF Board Design Guidelines

For information on measuring write-and-read Intersymbol Interference (ISI) and Crosstalk, arranging Command, Address, Control and Data pins, and I/O bank placement restrictions, refer to the following guidelines:

Note: The channel guidelines is applicable to Intel® Stratix® 10 devices as well.

Two tools are available to help you calculate board skew and channel loss: 

  Board Skew Parameter Tool Channel Loss Calculation Tool
Features
  • Calculates board skew due to PCB traces and multi-rank designs
  • Calculates channel loss due to Intersymbol Interference (ISI) and Crosstalk on Command, Address, Control, and Data signals
Support
  • All Intel® FPGAs
  • All memory protocols
  • Intel® Arria® 10 and Intel® Stratix® 10 FPGAs
  • DDR memory protocols
  • Compatible with Mentor Graphics* HyperLynx Signal Integrity software only
Resources

For information regarding EMIF timing closure, refer to the following section within the External Memory Interfaces IP User Guides:

For information regarding debugging the EMIF IP, refer to the following section within the External Memory Interfaces IP User Guides:

The main tool available for debug is the External Memory Interface Debug Toolkit: 

  EMIF Debug Toolkit
Features
  • Displays pre and post calibration margins per DQS group and DQ pin
  • Generates read/write eye diagrams per DQ pin (2-D eye diagram)
  • Allows customizable real-time traffic generator for test/debug (Traffic Generator 2.0)
  • Captures read/write margins during user-mode traffic (Driver Margining)
Support
  • Compatible with EMIF design example projects and custom EMIF designs containing one or more memory interfaces
  • Supports all memory protocols
Accessibility
  • Accessible through the Intel® Quartus® Prime software (Tools > System Debugging Tools > External Memory Interface Toolkit)

How Do I Use the EMIF Debug Toolkit?

For step-by-step instructions on how to daisy-chain multiple memory interfaces for compatibility with the EMIF Debug Toolkit, refer to the following user guide:

The Read/Write 2-D Eye Diagram feature available in the EMIF Debug Toolkit generates read-and-write eye diagrams for each data pin. Refer to the following video for information on important voltage reference parameters during the EMIF IP generation process and how to use the 2-D Eye Diagram feature:

The Traffic Generator 2.0 allows you to test and debug your external memory interface through customizable traffic and test patterns. Refer to the following guide and videos for detailed information on how to use the Traffic Generator 2.0 feature:

The Driver Margining feature allows you to capture read-and-write margining data per pin during user-mode traffic. Refer to the following videos for information on the differences between driver margining and calibration margining, and instructions on how to use the Driver Margining feature:

For information on supported features for the EMIF IP, refer to the following release notes:

For information on current and known issues regarding the EMIF IP, refer to the Knowledge Database:

Other Technologies