Users usually start planning with end applications in mind, such as External Memory Interfaces and/or Transceiver requirements. I/O bank utilization varies for each memory interface depending on the protocol, interface width, memory format, and number of ranks, which makes it difficult to estimate I/O bank requirements for memory interfaces. So how does a user begin to determine I/O bank utilization based on EMIF requirements and determine which Intel FPGA devices can support these requirements? The solution is the EMIF Device Selector.
EMIF Device Selector Welcome Screen.
The EMIF Device Selector assists in device selection based on External Memory Interface (EMIF) requirements by calculating the number of I/O banks required. The tool takes a user's EMIF requirements as input and outputs the number of I/O banks required to implement these interfaces, as well as all the devices that will support these memory requirements.
The EMIF Device Selector also contains a Bandwidth feature, which determines the number of interfaces that a user may need based on a given bandwidth number. If the user knows they need to achieve a certain bandwidth, this is a good starting point on estimating memory interfaces.
There are two ways to use the EMIF Device Selector. You can select the Bandwidth feature in order to determine the number of interfaces you'll need based on a provided bandwidth in Gbps (gigabits per second) or you can select the Device Selector Tool to directly enter the memory configurations required.
The Bandwidth feature is an addition to the larger Device Selector Tool that allows the user to estimate the number of memory interfaces need for a certain bandwidth. The UI has three changeable parameters. A user-entered bandwidth (in Gbps), the memory protocol, and efficiency of the memory controller (defaults to 70%). Once you enter a bandwidth into the bandwidth box and choose the protocol and efficiency, you can press enter and the Device Selector GUI will calculate the given parameters and try to match the bandwidth as closely as possible (always rounding up and never down) with a certain interface combination.
The used algorithm for bandwidth in the bandwidth feature is as follows:
BW in Gbps = ((# of bits in interface) * (data rate [usually just 2]) * (frequency in MHz) * ([efficiency %] / 100))/1000.
The Device Selector tool has customizable parameters and a built-in bandwidth calculator for the values the user inputs into the tool. The user can toggle the number of interfaces, which device family they want to use, as well as several other parameters documented below.
EMIF Device Selector Tool GUI.
Enabling this option means that the user wants to use any 3V I/O banks available to implement their EMIF requirements.
Enabling this option means that the user plans on using the Fast Passive Parallel config mode, which translates into any I/O config banks (Bank 2A) becoming unavailable for EMIF use.
Enabling this option means that the user plans on implementing a HPS EMIF in their system, which will cause certain I/O banks to become unavailable for additional EMIF use (the banks that are "unavailable" are the ones used to implement the HPS EMIF).
Enabling this option means that the user plans on using the x16 or x32 AVST config mode, which translates into any I/O config banks becoming unavailable for EMIF use.
If the user plans to implement a Ping Pong PHY interface, they must input the total interface width of the combined DDR3/DDR4 interfaces. For example, 2 x16 DDR4 interfaces is equivalent to 1 x32 Ping Pong PHY DDR4 interface.
If the user wants to allocate a part of the memory interface and dedicate it to Error Checking and Control, you can check the corresponding box in the interface row.
The green or red status light on the left of the calculated bandwidth box tells whether the bandwidth is at it's most updated state or not. If the user changes any pertinent parameters in the Device Selector GUI such as Total Interface Width or Interface Speed or others, the status light next to the calculated bandwidth will change from green to red. This signals to the user that they should press the Update Bandwidth button. The newest bandwidth will then be shown.
After pressing the Find Devices button and based on the EMIF requirements entered into the tool, the EMIF Device Selector will filter out which device/package combinations will support the memory interface requirements, as well as provide the number of remaining GPIO and transceiver channels available. Note that users must compile their design in Quartus for optimum device selection and I/O bank utilization.
EMIF Device Selector Results with Stratix 10 option selected.
At this time, we support our high-end Stratix 10 and mid-range Arria 10 FPGA devices in the EMIF Device Selector.
If users run into a VB error or compile error, Visio drawing support might be missing in their installation. To fix this error be sure to copy the VISOCX.DLL file into the installation directory.