C/C++ 函数编码 - 2023.2 简体中文

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

Document ID
UG1399
Release Date
2023-12-18
Version
2023.2 简体中文

编码样式

在任意 C 程序中,顶层函数都称为 main(),通常可在 C 语言仿真的测试激励文件中找到该函数。在 HLS 组件中,您可将 main() 调用的任意子函数指定为高层次综合的顶层函数。您无法综合顶层函数 main()。部分其他规则包括:

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

C/C++ 语言支持

HLS 组件支持许多 C 和 C++11/C++14 语言构造以及每一种语言的所有原生数据类型,包括浮点和双精度类型,如 数据类型 中所述。但是,针对部分构造支持综合,包括:

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