编码样式
在任意 C 程序中,顶层函数都称为 main()
,通常可在 C 语言仿真的测试激励文件中找到该函数。在 HLS 组件中,您可将 main()
调用的任意子函数指定为高层次综合的顶层函数。您无法综合顶层函数 main()
。部分其他规则包括:
- 仅允许指定 1 个函数作为综合的顶层函数。
- 层级中综合的顶层函数下的任意子函数也同样会进行综合。
- 如果要综合的函数不包含在综合的顶层函数下的层级内,则必须将此类函数合并到综合的单一顶层函数中。
C/C++ 语言支持
HLS 组件支持许多 C 和 C++11/C++14 语言构造以及每一种语言的所有原生数据类型,包括浮点和双精度类型,如 数据类型 中所述。但是,针对部分构造不支持综合,包括:
- 动态存储器分配:FPGA 具有一组固定资源,不支持动态创建和清空存储器资源。
- 操作系统 (OS) 操作:往来 FPGA 的所有数据都必须从输入端口读取或写入输出端口。不支持操作系统操作(例如,文件读写或时间和日期之类的操作系统查询)。改由主机应用或测试激励文件执行这些操作,并将数据作为函数实参传递到函数中。