11.3.2. Supported OpenCL* Language Constructs
If you are using the Intel® HLS Compiler to develop libraries to use with the Intel® FPGA SDK for OpenCL™ , you might need access to OpenCL* language constructs that are not typically available natively from C++ language elements. The Intel® HLS Compiler provides support for some OpenCL* language constructs through the ocl_types.h header file.
All basic signed and unsigned OpenCL* data types (double, float, long long, long, int, short, char and bool) are supported without needing the ocl_types.h header file.
- OpenCL* address space qualifiers
- Arbitrary precision integers (up to 64 bits)
- OpenCL* vector data types
OpenCL* Address Space Qualifiers
|OpenCL* Address Space Qualifier||Intel® HLS Compiler Macro|
Arbitrary Precision Integers
The ocl_types.h header file supports the OpenCL* intX_t and uintX_t data types up to 64 bits. However, these data types are in the ihc namespace to avoid conflicts with C-system header definitions.
That is, you can use ihc::int1_t through to ihc::int64_t and ihc::uint1_t through to ihc::uint64_t in your component.
Only use these data types to exchange data on your component interface (for example, parameters). Assign them to HLS ac_int<> data types in your component code.