Intel® FPGA SDK for OpenCL™ Pro Edition: Programming Guide

ID 683846
Date 12/19/2022
Document Table of Contents

11.1.1. Creating Library Objects From OpenCL Code

You can create a library from object files from your OpenCL source code. An OpenCL-based object file includes code for CPU as well as hardware execution (CPU-capturing testbench and emulation use).

Note: Testbench is Intel® HLS Compiler-specific. For information, refer to Intel High Level Synthesis Compiler: Reference Manual .

A library can contain multiple object files. You can create object files for use in different Intel high-level design tools from the same OpenCL source code. Depending on the target high-level design tool, your source code might require adjustments to support tool-specific data types or constructs.

Intel® FPGA SDK for OpenCL™

No additional work is needed in your Intel® FPGA SDK for OpenCL™ source code when you use the code to create objects for the offline compiler libraries.

Restriction: Creating object files from OpenCL code is supported only on Linux operating systems.

Intel® HLS Compiler

The Intel® FPGA SDK for OpenCL™ supports language constructs that are not natively supported by C++. Your component might need modifications to support those constructs (it is always preferred to allow OpenCL data types as library function call parameters).

The Intel® HLS Compiler supports a limited set of OpenCL* language constructs through the ocl_types.h header file. For details, review Intel High Level Synthesis Compiler: Reference Manual .

Restriction: You cannot use systems of tasks in components intended for use in an OpenCL* library object.