仅对英特尔可见 — GUID: ixz1552099257320
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: ixz1552099257320
Ixiasoft
2.4. Intel® HLS Compiler硬件模式
Intel® HLS Compiler尝试尽可能将更多功能流水线化。流水线的不同阶段可能会并行执行多个操作。
下图显示了一个由 Intel® HLS Compiler生成的流水线架构实例。右侧带编号的操作代表了图中左侧C++代码的流水线实现。图中右侧的每一个框格都是流水线中的一个操作。
图 1. 流水线架构实例
通过流水线的方式,组件的多个调用可以同时进行。例如,上述图示中显示组件的第一次调用可以在对组件的第四次调用的同时返回结果。
通常情况下,只有当前阶段的所有操作都完成后,才会从本次组件调用推进到其流水线中的下一个阶段。
某些操作可能会使流水线停顿。一个会使得流水线停顿的操作的常见实例是可变延迟操作,例如,存储器加载或存储操作。为了支持流水线停顿, Intel® HLS Compiler通过流水线将ready和valid信号传播给所有具有可变延迟的操作。
对于具有固定延迟的操作, Intel® HLS Compiler可以静态地调度操作之间的交互,并且 固定延迟操作的阶段之间不需要ready信号。在这些情况下,编译器会优化流水线以静态调度操作,从而显著减少实现流水线所需的逻辑。