仅对英特尔可见 — GUID: geq1567029149885
Ixiasoft
1. Intel® HLS Compiler Pro版参考手册
2. 编译器
3. C语言和库支持
4. 组件接口
5. 组件存储器(存储器属性)
6. 组件中的循环
7. 组件并发
8. 任意精度数学支持
9. 组件目标频率(Target Frequency)
10. 任务系统
11. 库
12. 高级硬件综合控制
13. Intel® High Level Synthesis Compiler Pro版参考总结
A. 高级数学源代码库
B. 支持的数学函数
C. Cyclone® V限制
D. Intel® HLS Compiler Pro版参考手册存档
E. Intel® HLS Compiler Pro版参考手册修订历史
13.1. Intel® HLS Compiler Pro版i++命令行参数
13.2. Intel® HLS Compiler Pro版头文件
13.3. Intel® HLS Compiler Pro版编译器定义的预处理器宏
13.4. Intel® HLS Compiler Pro版关键字
13.5. Intel® HLS Compiler Pro版模拟API(仅测试台)
13.6. Intel® HLS Compiler Pro版组件存储器属性
13.7. Intel® HLS Compiler Pro版循环预处理指令
13.8. Intel® HLS Compiler Pro版范围预处理指令
13.9. Intel® HLS Compiler Pro版组件属性
13.10. Intel® HLS Compiler Pro版组件默认值接口
13.11. Intel® HLS Compiler Pro版组件调用接口控制属性
13.12. Intel® HLS Compiler Pro版组件宏
13.13. Intel® HLS Compiler Pro版技术性任务系统API
13.14. Intel® HLS Compiler Pro版管道API
13.15. Intel® HLS Compiler Pro版流输入接口
13.16. Intel® HLS Compiler Pro版流输出接口
13.17. Intel® HLS Compiler Pro版存储器映射接口
13.18. Intel® HLS Compiler Pro版加载-存储单元控制
13.19. Intel® HLS Compiler Pro版任意精度数据类型
仅对英特尔可见 — GUID: geq1567029149885
Ixiasoft
11.3.2. 支持的 OpenCL* 语言结构体
如果您使用 Intel® HLS Compiler来开发库以便与 Intel® FPGA SDK for OpenCL™ 一起使用,则可能需要访问 OpenCL* 语言结构体,而这些通常不是由C++语言元素本身所提供。 Intel® HLS Compiler通过ocl_types.h头文件来支持一些 OpenCL* 语言结构体。
所有基本有符号和无符号 OpenCL* 数据类型(double,float,long long,long,int,short,char和bool)是无需ocl_types.h头文件就可支持的数据类型。
通过将以下代码添加到您的组件来添加 OpenCL* 语言结构体支持:
#include "HLS/ocl_types.h"
OpenCL* 类型头文件添加了对以下 OpenCL* 语言结构体的支持:
- OpenCL* 地址空间限定描述符(qualifier)
- 任意精度整数(最多64位)
- OpenCL* 向量数据类型
注: 在 OpenCL* 中以及Linux system系统上的 Intel® HLS Compiler中,long数据类型为64位。对于Windows系统上的 Intel® HLS Compiler,long数据类型为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_t和uintX_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;声明。