C/C++ 函数编码 - 2021.2 Chinese

Vitis 高层次综合用户指南 (UG1399)

Document ID
UG1399
Release Date
2021-12-15
Version
2021.2 Chinese

编码样式

在任意 C 程序中,顶层函数都称为 main()。在 Vitis HLS 设计流程中,您可将 main() 下的任意子函数指定为综合的顶层函数。您无法综合顶层函数 main() 其它规则如下:

  • 仅允许指定 1 个函数作为综合的顶层函数。
  • 层级中综合的顶层函数下的任意子函数也同样会进行综合。
  • 如果要综合的函数不包含在综合的顶层函数下的层级内,则必须将此类函数合并到综合的单一顶层函数中。

C/C++ 语言支持

Vitis HLS 支持使用 C/C++ 11/14 来执行编译/仿真。Vitis HLS 支持许多 C 和 C++ 语言构造,以及每一种语言的所有原生数据类型,包括浮点和双精度类型。但是,针对部分构造不支持综合,包括:

  • 动态存储器分配:FPGA 具有一组固定资源,不支持动态创建和清空存储器资源。
  • 操作系统 (OS) 操作:往来 FPGA 的所有数据都必须从输入端口读取或写入输出端口。不支持操作系统操作(例如,文件读写或时间和日期之类的操作系统查询)。改由主机应用或测试激励文件执行这些操作,并将数据作为函数实参传递到函数中。

如需了解有关受支持和不受支持的 C 语言构造的详细信息以及每一种主要构造的示例,请参阅Vitis HLS 编码样式