PHY Lite for Parallel Interfaces Intel® FPGA IP User Guide

ID 683716
Date 7/15/2024
Public
Document Table of Contents

5.2.5.2. Address Lookup

If you do not set the pin locations in the .qsf file, the lane addresses and pin placement to an interface changes every time you compile your design in Quartus® Prime software. However, the PHY Lite for Parallel Interfaces Intel® FPGA IP for Stratix® 10 devices is always generated as if the IP core is the only IP in a column, with lane addresses starting from 0. You need to determine the lane and pin addresses in order to dynamically reconfigure the calibration settings in the IP.

Figure 122. Lane and Pin Placement Dependent AddressesThis figure shows two examples of a placed group with two lanes, 16 data pins and a differential strobe.

To provide a unified way to look up reconfigurable feature addresses for a specific interface both before and after placement, the address information is stored in memory in the I/O column. This memory is addressable over the same Avalon® memory-mapped interface used for feature reconfiguration.

You can cache lookups 1 to 4 (8-bytes of information) to have pin and lane translations in one look-up.

Table 84.  Memory Lookup ComponentsThis table lists the two main components of the memory lookup.
Component Description
Global parameter table Stores pointers to the individual interface parameter tables. The global parameter table lists all interfaces in the column (both the External Memory Interface and PHY Lite for Parallel Interfaces Intel® FPGA IP for Stratix® 10 devices).
Set of individual interface parameter tables Contain interface specific information. This is where pin-level and lane-level address look-ups are performed.
Figure 123. Memory Overview in Stratix® 10 Devices

Below are the steps to determine the lane and pin addresses from the lookup tables (the sequence corresponds to the sequence in the Memory Overview in Stratix® 10 Devices topic):

Table 85.  Parameter Table Lookup Operation SequenceThe base address for PHY Lite for Parallel Interfaces Intel® FPGA IP for Stratix® 10 devices is 27'h5000000.
Legend in Memory Overview in Stratix® 10 Devices Description
1 Search for Interface Parameter Table in Global Parameter Table (cache once per interface)
  • {1'b0,id{3:0],27'h5000000} + 28'h24 to {1'b0,id{3:0],27'h5000000} + 28'h3C
  • 1 to 11 look-ups
2 Retrieve number of groups in the interface (cache once per interface)
  • {1'b0,id[3:0],27'h5000000} + {12'h0,pt_ptr[15:0]} + 28'h4
  • You can skip this sequence if the number of groups is saved in the core during compilation (for example, hard coded in RTL logic)
3 Retrieve group information (cache once per group)
  • {1'b0,id[3:0],27'h5000000} + {12'h0,pt_ptr[15:0]} + 28'h8 + grp_num
  • Not always necessary
4 Retrieve Lane/Pin Address Offsets for group (cache once per group)
  • {1'b0,id[3:0],27'h5000000} + {12'h0,pt_ptr[15:0]} + {18'h0,group_offset[5:2],2'b00} + {21'd0, grp_num, 2'b00} + 28'hC
5 Perform lane/pin address translation (cache once per pin)
  • {1'b0,id[3:0],27'h5000000} + {12'h000,lane_ptr[15:0]} + lane_num
  • {1'b0,id[3:0],27'h5000000} + {12'h000,pin_ptr[15:0]} + {17'h0,pin_num[5:0], 1'b0}
6 Read/Write Avalon Calibration Bus
  • {1'b0,id[3:0],27'h5000000} + read_from_step_4 + intra_lane_addr