【Vitis】Vitis HLS简介

 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 工具具有一系列丰富的分析及调试工具,其可促进设计优化。

【Vitis】Vitis HLS简介_第1张图片

利用编译器指令提升 AMD Vitis HLS 设计性能

设计方法

Vitis HLS 编程模型

【Vitis】Vitis HLS简介_第2张图片

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++ 代码的综合结果。

【Vitis】Vitis HLS简介_第3张图片

C 至 RTL 的综合


【Vitis】Vitis HLS简介_第4张图片

仿真和验证

仿真和验证

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 应用

【Vitis】Vitis HLS简介_第5张图片

IP 导出


资源

技术文档

Vitis HLS 用户指南

Vitis 教程:快速上手

论坛

  •  设计方法与技巧
  •  论坛讨论

Github

  •  GitHub Vits HLS 工具引导

参考资料:Vitis HLS

你可能感兴趣的:(vitis,xilinx,fpga开发,vitis,HSL,xilinx)