Intel® High Level Synthesis Compiler Pro Edition: 用户指南

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

B. Intel® HLS Compiler Pro Edition限制

当您使用HLS compiler创建IP时,请注意当前的软件和编程限制。

C++语言限制

Intel® HLS Compiler接受C++代码。

  • 组件不能包含虚拟函数、函数指针和比特字段。
  • 作为组件一部分的函数作用域静态变量不能使用函数参数进行初始化。
  • 组件或任务函数不能包含不可还原的循环。也就是说,组件和任务函数中的循环必须只有一个循环入口点。
C++ restrictions
  • HLS compiler不支持使用lambda函数作为组件。
Class membership
  • HLS组件函数不能是C++类成员。但是,您可以将组件函数声明为包装函数。该包装函数可以调用类的成员函数或命名空间的一部分。
Exception handling
  • 组件不能包含异常处理。
Library calls
  • HLS compiler当前不支持在Windows上调用C++运行时库,包括来自测试台代码的调用。
Library functions
  • 组件不能包含标准的C或C++库函数,除非它们被 Intel® HLS Compiler提供的头文件明确地支持。
Multiple inheritance
  • HLS compiler不支持将多重继承用作参数的类。您可以使用类作为参数,前提是每个类最多直接继承自一个类。
Namespaces
  • HLS组件函数不能是已声明的命名空间的一部分。但是,您可以将组件函数声明为全局包装函数。该包装函数可以调用类的成员函数或命名空间的一部分。
Parameters
  • HLS compiler不支持将多重继承用作参数的类。您可以使用类作为参数,前提是每个类最多直接继承自一个类。
Recursion
  • HLS compiler对使用递归的组件综合不支持;然而,尾递归是支持的。

    如果一个组件的算法使用了递归,并且被用于FPGA加速,那么如果可能请修改算法以使用尾递归。