文档目录

11.3.2. 支持的 OpenCL* 语言结构体

如果您使用 Intel® HLS Compiler来开发库以便与 Intel® FPGA SDK for OpenCL™ 一起使用,则可能需要访问 OpenCL* 语言结构体,而这些通常不是由C++语言元素本身所提供。 Intel® HLS Compiler通过ocl_types.h头文件来支持一些 OpenCL* 语言结构体。

所有基本有符号和无符号 OpenCL* 数据类型(doublefloatlong longlongintshortcharbool)是无需ocl_types.h头文件就可支持的数据类型。

通过将以下代码添加到您的组件来添加 OpenCL* 语言结构体支持:
#include "HLS/ocl_types.h"
OpenCL* 类型头文件添加了对以下 OpenCL* 语言结构体的支持:
注: OpenCL* 中以及Linux system系统上的 Intel® HLS Compiler中,long数据类型为64位。对于Windows系统上的 Intel® HLS Compilerlong数据类型为32位。

OpenCL* 地址空间认证

ocl_types.h头文件添加宏功能来支持在不同 OpenCL* 地址空间中对指针进行定义,如下:
OpenCL* 地址空间限定描述符 Intel® HLS Compiler
__global OCL_ADDRSP_GLOBAL
__local OCL_ADDRSP_LOCAL
__constant OCL_ADDRSP_CONSTANT
__private OCL_ADDRSP_PRIVATE

任意精度整数

ocl_types.h头文件支持 OpenCL* intX_tuintX_t数据类型,最高达到64位。但是,这些数据类型位于ihc命名空间以避免与C系统标头定义相冲突。

即,您可以通过组件中的ihc::int64_t使用ihc::int1_t;通过组件中的ihc::uint1_t使用ihc::uint64_t

仅使用这些数据类型交换组件接口上的数据(例如,参数)。将它们分配给组件代码中的HLS ac_int<>数据类型。

限制: 虽然您可以在代码中使用using namespace ihc;声明,但是2的幂任意精度数据类型仍然需要ihc::命名空间前缀。例如,您必须声明ihc::uint8_t是否先于using namespace ihc;声明。