Intel® FPGA SDK for OpenCL™: Intel® Arria® 10 GX FPGA Development Kit Reference Platform Porting Guide

ID 683267
Date 3/28/2022
Public
Document Table of Contents

3.1.2. Device Identification Registers for Intel® Arria® 10 PCIe Hard IP

To build PCIe* hardware, you must set PCIe IDs related to the device hardware.
You can find these PCIe ID definitions in the PCIe controller instantiated in the INTELFPGAOCLSDKROOT/board/a10_ref/hardware/a10gx/board.qsys Platform Designer System File. These IDs are necessary in the driver and the SDK's programming flow.
Table 10.  Device Hardware-Related PCIe ID Registers
ID Register Name ID Provider Description Parameter Name in PCIe IP Core
Vendor ID PCI-SIG® Identifies the FPGA manufacturer.

Always set this register to 0x1172, which is the Intel® vendor ID.

vendor_id_hwtcl
Device ID Intel® Describes the PCIe configuration on the FPGA according to Intel® 's internal guideline.

Set the device ID to the device code of the FPGA on your accelerator board.

For the Intel® Arria® 10 GX FPGA Development Kit Reference Platform, set the Device ID register to 0x2494, which signifies Gen 3 speed, 8 lanes, Intel® Arria® 10 device family, and Avalon® -MM interface, respectively.

Refer to Intel® FPGA SDK for OpenCL™ 's Numbering Convention for PCIe* Hard IP Device ID for more information.

device_id_hwtcl
Revision ID   When setting this ID, ensure that it matches the following revision IDs:
  • For Windows, the revision ID specified for the DeviceList field in the <your_custom_platform>\windows64\driver\acl_boards_<your_custom_platform>.inf file.
  • For Linux, the revision ID specified for the ACL_PCI_REVISION variable in the <your_custom_platform>/linux64/driver/hw_pcie_constants.h file.
Class Code Intel®

The Intel® FPGA SDK for OpenCL™ utility checks the base class value to verify whether the board is an OpenCL™ device.

Do not modify the class code settings.

  • Base class: 0x12 for processing accelerator
  • Sub class: 0x00
  • Programming interface: 0x01
Subsystem Vendor ID Board vendor Identifies the manufacturer of the accelerator board.

Set this register to the vendor ID of manufacturer of your accelerator board. For the a10_ref Reference Platform, the subsystem vendor ID is 0x1172.

If you are a board vendor, set this register to your vendor ID.

subsystem_vendor_id_hwtcl
Subsystem Device ID Board vendor Identifies the accelerator board.

The SDK uses this ID to identify the board because the software might perform differently on different boards. If you create a Custom Platform that supports multiple boards, use this ID to distinguish between the boards. Alternatively, if you have multiple Custom Platforms, each supporting a single board, you can use this ID to distinguish between the Custom Platforms.

Important: Make this ID unique to your Custom Platform. For example, for the a10_ref Reference Platform, the ID is 0xA151.
subsystem_device_id_hwtcl

The kernel driver uses the Vendor ID, Subsystem Vendor ID and the Subsystem Device ID to identify the boards it supports. The SDK's programming flow checks the Device ID to ensure that it programs a device with a .aocx Intel® FPGA SDK for OpenCL™ Offline Compiler executable file targeting that specific device.

Table 11.   Intel® FPGA SDK for OpenCL™ 's Numbering Convention for PCIe* Hard IP Device ID
Location in ID Definition
15:14 RESERVED
13:12 Speed
  • 0 — Gen 1
  • 1 — Gen 2
  • 2 — Gen 3
  • 3 — Gen 4
11 RESERVED
10:8 Number of lanes
  • 0 — 1 lane
  • 1 — 2 lanes
  • 3 — 4 lanes
  • 4 — 8 lanes
  • 5 — 16 lanes
  • 6 — 32 lanes
7:4 Device family
  • 0 — Altera Stratix IV GX
  • 1 — Altera Arria II GX
  • 2 — Stratix II GX
  • 3 — Arria GX
  • 4 — Cyclone IV GX
  • 5 — External
  • 6 — Stratix V
  • 7 — Arria V
  • 8 — Cyclone V
  • 9 — Arria 10
3 1 — Soft IP (SIP)

This ID indicates that the PCIe protocol stack is implemented in soft logic. If unspecified, the IP is considered a hard IP.

2:0 Platform Designer PCIe interface type
  • 0 — 64 bits
  • 1 — 128 bits
  • 2 — 256 bits
  • 3 — Desc/Data (that is, Avalon® -Streaming ( Avalon® -ST) interface)
  • 4 — Avalon® -MM interface