Intel® 高层次综合编译器专业版Pro版: 参考手册

ID 683349
日期 12/04/2023
Public
文档目录

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数据类型,并具有下列值之一:
表 35.  HW_impl_pref 值
描述
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表达式中的函数调用,如下所示:
表 36.   lambda_expr_propagation
描述
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;
}