h1_key

当前位置:首页 >新闻资讯 > 行业资讯>赛灵思>XILINX(赛灵思)Vitis 高层次综合用户指南
XILINX(赛灵思)Vitis 高层次综合用户指南
2022-07-06 947次


Vitis™ HLS 是一种高层次综合工具,支持将 CC++ OpenCL™ 函数硬连线到器件逻辑互连结构和 RAM/DSP 块上。Vitis HLS 可在Vitis 应用加速开发流程中实现硬件内核,并使用 C/C++ 语言代码在 Vivado® Design Suite 中为赛灵思器件设计开发 RTL IP

 

Vitis 高层次综合用户指南(UG1399)包括Vitis HLS 入门、Vitis HLS 硬件设计方法论、Vitis HLS C 语言驱动程序参考资料、Vitis HLS 命令参考资料、Vitis HLS 库参考资料,以及Vitis HLS 移植指南。由于本指南较长,下文仅摘录部分内容。

 


Vitis HLS 简介:

 

Vitis 应用加速流程中,在可编程逻辑中实现和最优化 C/C++ 语言代码以及实现低时延和高吞吐量所需的大部分代码修改操作均可通过 Vitis HLS 工具来自动执行。在应用加速流程中,Vitis HLS 的基本作用是通过推断所需的编译指示来为函数实参生成正确的接口,并对代码内的循环和函数执行流水打拍。Vitis HLS 还支持自定义代码以实现不同接口标准或者实现特定最优化以达成设计目标。

 

Vitis HLS 设计流程如下所述:

编译、仿真和调试 C/C++ 语言算法。

查看报告以分析和最优化设计。

C 语言算法综合到 RTL 设计中。

使用 RTL 协同仿真来验证 RTL 实现。

RTL 实现封装到已编译的对象文件 (.xo) 扩展中,或者导出到 RTL IP

 

高层次综合基础

 

赛灵思 Vitis HLS 工具可将 C 语言或 C++ 语言函数综合到 RTL 代码中,用于在可编程逻辑内进行加速。Vitis HLS Vitis 核开发套件和应用加速设计流程紧密集成。

 

使用高层次综合 (HLS) 设计方法论的优势包括但不限于:

编译、仿真和调试 C/C++ 语言算法。

查看报告以分析和最优化设计。

C 语言算法综合到 RTL 设计中。

使用 RTL 协同仿真来验证 RTL 实现。

RTL 实现封装到已编译的对象文件 (.xo) 扩展中,或者导出到 RTL IP

 


HLS 包含以下阶段:

1,调度可根据下列条件判定每个时钟周期内发生的运算:

运算的依赖关系何时已得到满足或者变为可用。

时钟周期长度或时钟频率。

运算完成所需时间(由目标器件来定义)。

可用资源分配。

整合任意用户指定的最优化指令。

2,绑定会分配硬件资源用于实现调度的每项运算,并将运算符(例如,加法、乘法和移位)映射到特定 RTL 实现。例如,mult 运算可在 RTL 内作为组合乘法器或流水打拍乘法器来实现。

3,控制逻辑抽取可创建有限状态机(FSM),根据定义的调度按顺序执行 RTL 设计中的运算。

 

以调度和绑定为例,下图显示了此代码示例的调度和绑定阶段的示例:

 

在此示例的调度阶段,根据高层次综合的调度,在每个时钟周期内将执行以下操作:

第一个时钟周期:乘法和第一次加法

第二个时钟周期:如果在第二个时钟周期内第一次加法的结果可用,则执行第二次加法并输出生成。

 

在最终的硬件实现中,高层次综合将顶层函数的实参实现为输入和输出 (I/O) 端口。在此示例中,实参是简单数据端口。因为每个输入变量都是 char 类型,所以输入数据端口位宽均为 8 位。return 函数为 32 int 数据类型,而输出数据端口位宽为 32 位。

 

在此示例的初始绑定阶段,高层次综合使用组合乘法器(Mul)实现乘法运算,并使用组合加法器/减法器(AddSub)实现两次加法运算。

 

在目标绑定阶段,高层次综合使用 DSP 模块资源实现乘法器和其中一项加法运算。部分应用使用大量二进制乘法器和累加器,这些乘法器和累加器最好在专用 DSP 资源内实现。DSP 模块是 FPGA 架构中可用的计算块,可在高性能和高效实现之间达成理想的平衡。

 


Vitis HLS 进程概述

 

Vitis HLS 基于工程,可包含多个变体(称为解决方案)以驱动综合与仿真。每个解决方案均可将 Vivado IP 流程或Vitis 内核流程设定为目标。基于目标流程,每个解决方案都将指定不同的约束和最优化指令,如 启用 Vivado IP 流程和启用 Vitis 内核流程中所述。

 

以下提供了典型设计流程中的综合、分析与最优化步骤:

1,创建新的 Vitis HLS 工程。

2,利用 C 语言仿真来验证源代码。

3,运行高层次综合以生成 RTL 文件。

4,分析结果,包括检验时延、启动时间间隔 (II)、吞吐量和资源使用情况。

5,执行最优化,并按需重复此步骤。

6,使用 C/RTL 协同仿真验证结果。

 

Vitis HLS 基于目标流程、默认工具配置、设计约束和您指定的任意最优化编译指示或指令来实现解决方案。您可使用最优化指令来修改和控制内部逻辑和 I/O 端口的实现,以覆盖工具的默认行为。

 

 

C/C++ 代码综合方式如下:

1,顶层函数实参由 Vitis HLS 自动综合到 RTL I/O 端口接口内。如 定义接口 中所述,该工具创建的默认接口取决于目标流程、函数实参的数据类型和方向、默认接口模式以及用户指定的任何 INTERFACE 编译指示或指令(用于手动定义接口)。

2,顶层 C/C++ 函数的子函数综合到 RTL 设计的层级内的各块中。

最终 RTL 设计包含与原始顶层 C 语言函数层级相对应的模块或实体层级。

Vitis HLS 会将子函数根据需要自动内联到更高层次的函数中或者内联到顶层函数中,以提升性能。

您可通过在解决方案中向子函数指定 INLINE 编译指示,或者使用 set_directive_inline 并将其设置为OFF 来禁用自动内联。

默认情况下,C 语言子函数的每次调用使用的 RTL 模块的实例是相同的。但您可以通过在解决方案中指定ALLOCATION 编译指示或者使用 set_directive_allocation 来实现多个 RTL 模块实例以提升性能。

3,控制逻辑抽取可创建有限状态机(FSM),根据定义的调度按顺序执行 RTL 设计中的运算。

Vitis HLS 工具将不会展开循环,除非这样能够提升解决方案性能,如展开嵌套的循环以对顶层函数进行流水打拍。收起循环时,综合会为循环的单次迭代创建逻辑,RTL 设计会为序列中循环的每次迭代都执行此逻辑。展开循环允许循环的部分或全部迭代并行发生,但也会耗用更多器件资源。

您可以使用 UNROLL 编译指示或 set_directive_unroll 命令来手动展开循环。

循环还可通过如下任一方法进行流水打拍:通过有限状态机高精度实现(循环流水打拍)或者采用基于较低精度的握手的实现(数据流)。

4,代码中的阵列将综合到最终 FPGA 设计中的块 RAM (BRAM)LUT RAM UltraRAM 中。

如果阵列位于顶层函数接口上,那么高层次综合可将此阵列作为端口来实现,以便访问设计外部的块 RAM

您可使用 ARRAY_PARTITION ARRAY_RESHAPE 编译指示或者关联的 set_directive_array 命令更改。

 

综合后,您可以对先前生成的各项报告中的结果进行分析,以确定结果质量。分析结果后,您可以为工程创建其它解决方案,指定不同的约束和最优化指令,并对这些结果进行综合与分析。您可对不同解决方案的结果进行比较,查看哪些有效,哪些无效。您可重复此过程,直至设计达成所期望的性能特性为止。您可使用多种解决方案持续进行开发,同时仍可保留先前的解决方案。

 

  • AMD Vitis 软件平台2023.2版本发布
  • AMD宣布 Vitis™ 统一软件平台 2023.2 版本发布,该版本提供了一个单一的环境,便于使用 AMD 自适应 SoC 与 FPGA 简化高性能设计的设计、仿真与实现。
    2023-11-02 348次
  • Xilinx赛灵思Vivado™ 设计套件加速自适应SoC和FPGA产品设计
  • Xilinx赛灵思加快推出新型自适应 SoC 和 FPGA 设计,硬件设计人员和系统架构师需要探索更为高效的全新工作方式。AMD Vivado™ 设计套件可提供易于使用的开发环境和强大的工具,有助于加速大型自适应 SoC 和FPGA等系列产品的设计与上市。
    2023-11-02 215次
  • 详解赛灵思FPGA系列型号
  • Xilinx公司首创了现场可编程逻辑阵列(FPGA)这一创新性的技术,赛灵思FPGA系列型号并于1985年首次推出商业化产品。2022年AMD以498亿美元(约合3165亿元人民币)完成了对赛灵思的收购。
    2023-04-14 4056次
  • 借助AMD自适应SoC与XYLON框架毫秒级汽车功能切换
  • AMD Zynq UltraScale+ MPSoC提供的多功能性与自适应计算能力,正能满足领先汽车 OEM 厂商与一级供应商所需,因为他们面临快速行动和适应不断变化的需求的持续压力。
    2023-03-29 407次
  • 全新AMD Kria ODM生态系统计划
  • 赛灵思的 Kria 自适应系统模块( SOM )产品组合取得成功的基础上,推出 KriaTM SOM ODM 合作伙伴生态系统——这一全新计划旨在提供基于 Kria SOM 的量产级、全功能解决方案,加速产品上市进程,而无需专用芯片设计资源。
    2023-02-02 420次

    万联芯微信公众号

    元器件现货+BOM配单+PCBA制造平台
    关注公众号,优惠活动早知道!
    10s
    温馨提示:
    订单商品问题请移至我的售后服务提交售后申请,其他需投诉问题可移至我的投诉提交,我们将在第一时间给您答复
    返回顶部