Arria 10 Debugging Multiple EMIFs

cancel
Showing results for 
Search instead for 
Did you mean: 

Arria 10 Debugging Multiple EMIFs

Arria 10 Debugging Multiple EMIFs

 

 

Arria 10 Debugging Multiple EMIFs in Same Column

The following applies to designs with multiple Arria 10 External Memory Interface IPs (EMIF) in the same column of the Arria 10 device.

  • While bringing up your memory interfaces, you will find it useful to use the External Memory Interface Toolkit
  • The goal of this document is to show how to properly setup your multiple Arria 10 EMIFs so they may be used with the EMIF Toolkit

 

We will use an example of 3 Arria 10 EMIFs to show how to properly daisy-chain the cal_debug bus in Qsys which the EMIF Toolkit relies on to acquire calibration information

For simplicity, we have exported all EMIF ports that are unnecessary for calibration information

a/a3/Step1.JPG

 

Setting up EMIF A

We must first setup EMIF A in the Diagnostics tab of the IP Parameter GUI

  • Set Quartus II EMIF Debug Toolkit/On-Chip Debug Port: to Add EMIF Debug Interface
  • Check the box Enable Daisy-Chaining for Quartus II EMIF Debug Toolkit/On-Chip Debug Port

This will expose EMIF A's Avalon-MM Master calibration debug interface which we can connect to EMIF B's Avalon-MM Slave calibration debug interface

  • Choose a unique Interface ID (Here we leave it set to '0')

f/f3/Step2.JPG

 

EMIF A's Diagnostics tab

Setting up EMIF B

Now must now setup EMIF B in the Diagnostics tab of the IP Parameter GUI

  • Set Quartus II EMIF Debug Toolkit/On-Chip Debug Port: to Export

This will expose EMIF B's Avalon-MM Slave calibration debug interface which we can connect to EMIF A's Avalon-MM Master calibration debug interface

  • Check the box Enable Daisy-Chaining for Quartus II EMIF Debug Toolkit/On-Chip Debug Port

This will expose EMIF B's Avalon-MM Master calibration debug interface which we can connect to EMIF C's Avalon-MM Slave calibration debug interface

  • Choose a unique Interface ID (Here we set it to '1' so as not to conflict with EMIF A's Interface ID)

0/02/Step3.JPG

 

EMIF B's Diagnostics tab

Setting up EMIF C

Finally we setup EMIF C in the Diagnostics tab of the IP Parameter GUI

  • Set Quartus II EMIF Debug Toolkit/On-Chip Debug Port: to Export

This will expose EMIF C's Avalon-MM Slave calibration debug interface which we can connect to EMIF B's Avalon-MM Master calibration debug interface

  • Leave the box Enable Daisy-Chaining for Quartus II EMIF Debug Toolkit/On-Chip Debug Port unchecked
  • Choose a unique Interface ID (Here we set it to '2' so as not to conflict with EMIF A's nor EMIF B's Interface ID)

0/08/Step4.JPG

EMIF C's Diagnostics tab

Hooking up EMIF A and EMIF B

We need to connect the following signals that make up the calibration debug interface to daisy-chain EMIF B to EMIF A

  1. cal_debug_reset_n
  2. cal_debug_clk
  3. cal_debug

1/12/Step5.JPG

 

Hooking up EMIF B and EMIF C

We need to connect the following signals that make up the calibration debug interface to daisy-chain EMIF C to EMIF B

  1. cal_debug_reset_n
  2. cal_debug_clk
  3. cal_debug

EMIF B has both a slave calibration debug interface and a master calibration debug interface to connect to EMIF A and EMIF C respectively

a/a6/Step6.JPG

Switching between EMIFs in the External Memory Interface Toolkit

Running Select Active Interface will allow you to switch between EMIFs when you wish to view useful calibration information about another EMIF

4/44/Step7.JPG

Select Active Interface will allow you to switch between EMIFs

Reference example

Click here for a Qsys example to be used as reference only

Arria 10 Debugging Multiple EMIFs in Different Column

The following applies to designs with multiple Arria 10 External Memory Interface IPs (EMIF) in the different column of the Arria 10 device.

Setting up both EMIF interface

Setting up EMIF interfaces in two different column are same when it comes to the Diagnostics tab of the IP Parameter GUI, unlike EMIF interfaces in same column

  • Set Quartus II EMIF Debug Toolkit/On-Chip Debug Port: to Add EMIF Debug Interface
  • Do NOT check the box Enable Daisy-Chaining for Quartus II EMIF Debug Toolkit/On-Chip Debug Port
  • Choose a unique Interface ID (Here we leave it set to '0' for both EMIF interfaces since they are in different columns)

3/3b/Two_interface_tg.JPG

EMIF Diagnostics tab(both in this example)

 

Hooking up both interfaces from different columns

Connect signals of both interface as shown in below diagram. You can treat both the interface signals as separate interface. No requirement of daisy-chain EMIF interfaces in this case

 

3/3c/Two_interface.JPG 

 

Connecting to particular EMIF in the External Memory Interface Toolkit

1/1f/EMIFtwocolumns1.jpg

Create Memory Interface Connection will allow you to switch between EMIFs.

 

In Toolkit Tasks window while creating a memory interface connection, you can select which memory IP you want to connect to. In below example, interface name Col2 belongs to EMIF IP in column 2 where as interface name col3 is EMIF IP in column 3. Once you establish initial connection for subsequent calibration run, you can select the interface from Task window and just rerun the calibration.

8/8c/EMIFtwocolumns2.jpg

 

Select Memory Interface from drop-down menu.

 

Report window will show two different connections with separate reporting structure.

 

Calibration Report will show separate reports for each EMIFs.

 

 

Reference example for two EMIF interfaces in different columns

This zip file contains three .qsys files. "two_interface.qsys" file is the final qsys file containing two EMIFs in different column. Once you open this qsys file, you will get an error in Quartus indicating that you can not elaborate this design. To remove the error, go to Tools->option in Qsys, and set the IP search path by adding the location for rest of the two qsys files. Once you added the path, you can find these two custom IP generation under Library->System in Qsys IP catalog window. Add this custom IP definition to you "two_interface.qsys". For signal connection to individual EMIFs in qsys, follow above screen capture.

 

9/9e/EMIFtwocolumns3.jpg

Attachments
Version history
Last update:
‎12-27-2022 03:10 PM
Updated by: