AN 780: Compiling and Customizing an Intel® Arria® 10 Custom Platform for OpenCL*

ID 683045
Date 10/30/2018
Public
Document Table of Contents

1.2. OpenCL System Architecture

An OpenCL System is comprised of a host software and an FPGA board hardware.
Figure 1. Overview of Typical OpenCL Hardware System and Custom Platform

The Host Software box in yellow shows the host application running on the host processor. The FPGA Board Hardware box in grey depicts the hardware accelerator board that the Custom Platform describes.

On the FPGA board hardware side, the Custom Platform provides the post-place-and-route netlist, which includes all of the hardware necessary to communicate with the host and the memory.

The netlist includes DDR memory interfaces, direct memory access (DMA), and any host interface (for example, PCI Express* ( PCIe* )). If there are streaming interfaces to be implemented as channels, these interfaces are also included in the netlist to form an overall communication medium to the host.

When the Intel® FPGA SDK for OpenCL™ Offline Compiler compiles an OpenCL kernel on the FPGA board hardware side, the offline compiler generates a custom data flow circuit representing your kernel and connects the circuit to the Custom Platform hardware.

On the host side, the Custom Platform needs to provide the memory-mapped device (MMD) layer to allow the OpenCL libraries to communicate with your hardware. The SDK user provides the MMD layer in the form of a library. When compiling the host application, the host application links with both the Intel FPGA OpenCL library and the MMD library to create the host executable. The SDK user can then run the host executable, which launches kernels on the FPGA accelerator board.