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

ID 683788
Date 10/08/2019
Public
Document Table of Contents

1.4. Contents of the Intel Arria 10 SoC Development Kit Reference Platform

Familiarize yourself with the directories and files within the Intel Arria 10 SoC Development Kit Reference Platform because they are referenced throughout this document.
Table 1.  Highlights of the Intel Arria 10 SoC Development Kit Reference Platform Directory
File or Directory Description
board_env.xml An XML file that describes the Reference Platform to the Intel® FPGA SDK for OpenCL™ .
hardware Contains the Intel® Quartus® Prime project templates for the two board variants. Each a10soc Reference Platform board variant implements the entire OpenCL hardware system on a given Intel Arria 10 SoC Development Kit.

See Table 2 for a list of files in this directory.

arm32 Directory that contains the following:
  • A bin subdirectory containing the SDK utilities that are specific to the Intel Arria 10 SoC Development Kit (that is, program and diagnose).
  • A driver subdirectory containing the OpenCL Linux driver source code.
  • A lib subdirectory containing the memory-mapped device (MMD) library that is precompiled to 32-bit Linux on ARM® Cortex®-A9 environment.
Table 2.  Contents of the Board Variant DirectoryThe following table lists the files in the <path_to_a10soc>/hardware/<board_name> directory, where <board_name> is the name of the board variant.
File Description
acl_kernel_interface_soc_pr.qsys Platform Designer system that implements interface to kernel system in board system.
base.qsf Intel® Quartus® Prime Settings File for the base project revision.

To compile to base revision, add the -bsp-flow=base argument to aoc command (for example, aoc -bsp-flow=base myKernel.cl).

Use this revision when porting the a10soc Reference Platform to your own Custom Platform. The Intel® Quartus® Prime Pro Edition software compiles this base project revision from source code.

base.qar Intel® Quartus® Prime Archive File containing base.qdb, pr_base.id, and base.sdc. This file is generated by the scripts/post_flow_pr.tcl file during base revision compile, and is used during import revision compilation.
base.qdb
Intel® Quartus® Prime Database Export File the contains the precompiled netlist of the static regions of the design.
pr_base.id
Text file containing a unique number for a given base compilation that the runtime uses to determine whether it is safe to use PR programming.
base.sdc
Synopsys Design Constraints File that the Intel® Quartus® Prime software autogenerates during a base compilation. The base.sdc file is used in the top revision compilation to import all the timing constraints from the static region.
board.qsys Platform Designer system that implements the board interfaces (that is, the static region) of the OpenCL hardware system.
board_spec.xml XML file that provides the definition of the board hardware interfaces to the SDK.
DMA_system.qsys Platform Designer system that implements DMA between HPS memory and FPGA memory in the a10soc_2ddr board variant
dual_port_splitter.qsys Platform Designer system that splits requests on single slave to two channels. Used for utilizing two FPGA2SDRAM ports on HPS.
flat.qsf

Intel® Quartus® Prime Settings File for the flat project revision. This file includes all the common settings, such as pin location assignments, that are used in the other revisions of the project (that is, base and top). The base.qsf and top.qsf files include, by reference, all the settings in the flat.qsf file. The Intel® Quartus® Prime software compiles the flat revision with minimal location constraints. The flat revision compilation does not generate a base.qar file that you can use for future import compilations and does not implement the guaranteed timing flow.

import_compile.tcl Tcl script for the SDK-user compilation flow (that is, import revision compilation).
opencl_bsp_ip.qsf

Intel® Quartus® Prime Settings File that collects all the required .ip files in a unique location.

During flat and base revision compilations, the board.qsys Platform Designer file is added to the opencl_bsp_ip.qsf file.

quartus.ini Contains any special Intel® Quartus® Prime software options that you need when compiling OpenCL kernels for the a10soc Reference Platform.
top.qpf Intel® Quartus® Prime Project File for the OpenCL hardware system.
top.qsf Intel® Quartus® Prime Settings File for the SDK-user compilation flow.
top.sdc Synopsys® Design Constraints File that contains board-specific timing constraints.
top.v Top-level Verilog Design File for the OpenCL hardware system.
ip/freeze_wrapper.v Verilog Design File that implements the freeze logic placed at outputs of the PR region.
ip/acl_kernel_interface_soc_pr/<file_name>

Directory containing the .ip files that the Intel® Quartus® Prime Pro Edition software needs to parameterize the acl_kernel_interface_soc_pr component.

You must provide both the acl_kernel_interface_soc_pr.qsys file and the corresponding .ip files in this directory to the Intel® Quartus® Prime Pro Edition software.

ip/board/<file_name>

Directory containing the .ip files that the Intel® Quartus® Prime Pro Edition software needs to parameterize the board system.

You must provide both the board.qsys file and the corresponding .ip files in this directory to the Intel® Quartus® Prime Pro Edition software.

ip/DMA_system/<file_name>

Directory containing the .ip files that the Intel® Quartus® Prime Pro Edition software needs to parameterize the DMA_system component in a10soc_2ddr board variant.

You must provide both the DMA_system.qsys file and the corresponding .ip files in this directory to the Intel® Quartus® Prime Pro Edition software.

ip/dual_port_splitter/<file_name>

Directory containing the .ip files that the Intel® Quartus® Prime Pro Edition software needs to parameterize the dual_port_splitter component.

You must provide both the dual_port_splitter.qsys file and the corresponding .ip files in this directory to the Intel® Quartus® Prime Pro Edition software.

ip/irq_controller/<file_name> IP that receives interrupts from the OpenCL kernel system and DMA_system, and sends single IRQ to the host.
ip/mem_splitter_port/<file_name> IP that splits requests across multiple channels on burst word boundary.
scripts/base_write_sdc.tcl Tcl script that the base revision compilation uses to generate the base.sdc file that contains all the constraints collected in the base revision compilation. The Intel® Quartus® Prime Pro Edition software uses the base.sdc file when compiling the import (top) revision.
scripts/create_fpga_bin_pr.tcl Tcl script that generates the fpga.bin file. The fpga.bin file contains all the necessary files for configuring the FPGA.
scripts/post_flow_pr.tcl Tcl script that implements the guaranteed timing closure flow.
scripts/pre_flow_pr.tcl Tcl script that executes before the invocation of the Intel® Quartus® Prime software compilation. Running the script generates the Platform Designer HDL for board.qsys and kernel_mem.qsys. It also creates a unique ID for the PR base revision (that is, static region). This unique ID is stored in the pr_base.id file.
scripts/qar_ip_files.tcl Tcl script that packages up base.qdb, pr_base.id and base.sdc during base revision compile.
scripts/regenerate_cache.tcl Tcl script that regenerates the BAK cache file in your temporary directory.