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.
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.