Intel® High Level Synthesis Compiler Pro Edition: Reference Manual

ID 683349
Date 4/01/2024
Public
Document Table of Contents

11. Libraries

With libraries, you can reuse functions without knowing the underlying hardware design or implementation details. Libraries can be created with Intel FPGA high-level design tools including the Intel® HLS Compiler and the Intel® FPGA SDK for OpenCL™ , either from code initially targeting that tool or from RTL code.

The Intel® HLS Compiler supports two types of libraries:

Static-Object Libraries

A static-object library is a single platform-specific archive file that contains one or more object files. A static-object file contains implementations of one or more functions. The object and library files use the same formats as the operating system that you compile your Intel® HLS Compiler code on, with additional sections that carry HLS-specific information.

On Linux platforms, an object library is a .a archive file that contains .o object files. On Windows platforms, a library is a .lib archive file that contains .obj object files.

A static-object library includes one or more function signature files that you include in your component source code so that your component can call the functions provided by the library. A function signature file is a C-style header file (.h) that declares the signatures of the functions that are provided in an object library.

Static-object libraries can be created from RTL or high-level source code.

Source Code Libraries

A source code library is a C-style header file that contains a source code library. You include this header file in your component source code, and the header file code is compiled along with your component.

You can use C++ templates to make your source code library more customizable.

The Intel® HLS Compiler provides some source code libraries that provide you with FPGA-optimized code for some commonly-used algorithms.

For details about source code libraries included with the Intel® HLS Compiler, see the following sections: