Vitis HLS简介
Vitis™HLS是一种高层次综合工具,支持将C、C++和OpenCL™函数硬连线到器件逻辑互连结构和RAM/DSP块上。
Vitis HLS可在Vitis应用加速开发流程中实现硬件内核,并使用C/C++语言代码在Vivado®Design Suite中为赛灵思器件设计开发RTL IP。
【Vitis】Vitis HLS简介
【Vitis】HLS高层次综合的优势
【Vitis】基于C++函数开发组件的步骤
【Vitis】Vitis HLS2023不支持的功能特性
目录
概述
设计方法
C 至 RTL 的转换
仿真和验证
IP 导出
资源
技术文档
论坛
Github
概述
Vitis™ HLS 工具允许用户通过将 C/C++ 函数综合成 RTL,轻松创建复杂的 FPGA 算法。Vitis HLS 工具与 Vivado™ Design Suite(用于综合、布置和布线)及 Vitis™ 统一软件平台(用于所有异构系统设计和应用)高度集成。
- 使用 Vitis HLS 流程,用户可针对 C 代码应用指令,创建专门用于所需实现方案的 RTL。
- 不仅可从 C 语言源代码创建多个设计架构,而且还可启用用于高质量 Correct-by-Construction RTL 的路径。
- C 语言仿真可用于验证设计,支持比基于 RTL 的传统仿真更快的迭代。
- Vitis HLS 工具具有一系列丰富的分析及调试工具,其可促进设计优化。
利用编译器指令提升 AMD Vitis HLS 设计性能
设计方法
Vitis HLS 编程模型
Vitis™ HLS C 语言代码旨在充分利用 AMD FPGA 架构提供的优势和特征。
Vitis HLS 工具支持并行编程构念,可为所需的实现方案建模。这些构念包括:
- 允许流程并行的 HLS 任务
- 允许数据并行的 HLS 矢量
- 允许在并行任务之间进行通信的 HLS 流程
- 综合编译指示可用来控制结果。这些编译指示包括流水线、展开、阵列分区以及接口协议等。
- 如欲了解更多详情,敬请参阅 Vitis 高层次综合用户指南的“HLS 编程人员指南
C 至 RTL 的转换
Vitis HLS 工具将对 C 语言代码的不同部分执行不同的综合:
- C/C++ 代码的顶层函数参数不仅可综合成 RTL I/O 端口,而且还可通过接口综合硬件协议自动执行。
- 其它 C 语言函数将综合至 RTL 模块中,保持设计层级。
- C 语言函数循环保持滚动或流水线,以提高性能。
- C 语言代码阵列可指向任何内存资源,如 BRAM、LUTRAM 和 URAM 等。
- 时延、初始化间隔、循环迭代时延和资源利用率等性能指标可使用综合报告查看。
- Vitis HLS 工具的编译指示及优化指令允许配置 C/C++ 代码的综合结果。
C 至 RTL 的综合
仿真和验证
仿真和验证
Vitis HLS 工具内建仿真流程,可加速验证进程:
- C 语言仿真将验证 C 代码的功能性。该步骤很快,并会使用 C 语言测试台。
- C/RTL 联合仿真可重复使用 C 语言测试平台,对所生成的 RTL 进行验证:验证 RTL 在功能上是否与 C 语言源代码相同。
- 该流程集成分析、调试和波形查看功能,以及流行的仿真器支持。
IP 导出
Vitis HLS 工具的输出是一个 RTL 执行方案,其可打包成一个已编译的目标文件 (.xo),也可导出至 RTL IP:
- 编译的目标文件 (.xo) 可用于创建硬件加速函数,用于 Vitis 应用开发流程。
- 该 RTL IP 的使用方式有三种:
- 添加了对 Vivado™ IP Integrator 工具的使用
- 在 Vivado IDE 中作为 RTL 模块导入
- 在 Vitis Model Composer 中作为单个模块集,用于 DSP 应用
IP 导出
资源
技术文档
Vitis HLS 用户指南
Vitis 教程:快速上手
论坛
- 设计方法与技巧
- 论坛讨论
Github
- GitHub Vits HLS 工具引导
参考资料:Vitis HLS