仅对英特尔可见 — GUID: fpg1612489178943
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: fpg1612489178943
Ixiasoft
12.1.3. ihc::math_dsp_control函数
使用ihc::math_dsp_control函数以在局部范围内控制支持的数据类型和数学函数的硬件实现。
对ihc::math_dsp_control函数的定义在HLS/math_dsp_control.h头文件中。将此头文件包含在您的组件或任务代码中即可使用该函数。
句法
ihc::math_dsp_control<HW_impl_pref, lambda_expr_propagation>
其中模板参数定义如下:
HW_impl_pref
HW_impl_pref模板参数采用enum数据类型,并具有下列值之一:
值 | 描述 |
---|---|
ihc::Preference::DSP | 编译器尝试通过DSP块实现支持的数学运算。 该值为默认值。 |
ihc::Preference::Softlogic | 编译器尝试通过使用ALM的软逻辑实现支持的数学运算。 |
ihc::Preference::Compiler_default | 编译器按照数据类型和运算通过DSP块或者软逻辑(ALMs)实现支持的数学运算。 |
lambda_expr_propagation
lambda_expr_propagation模板参数是一个Boolean(布尔)值,它决定了HW_impl_pref值的传播以运算lambda表达式中的函数调用,如下所示:
值 | 描述 |
---|---|
true | 传播HW_impl_pref值以运算lambda表达式函数中的函数调用。 该值是默认值。 |
false | 不传播HW_impl_pref值运算lambda表达式函数中的函数调用。 HW_impl_pref值仅适用于lama表达式中直接调用的数学运算。 |
嵌套式调用
HW_impl_pref值永远不会应用于任何嵌套ihc::math_dsp_control函数调用。每个ihc::math_dsp_control函数调用需要其指定的HW_impl_pref值。
实例
component float test_lib(float a, float b) { ihc::math_dsp_control<ihc::Preference::Softlogic>([&]{ a += 7.89f; // Soft-logic a += b; // Soft-logic }); return a; }