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

利用编译器指令提升 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/680828.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

智慧医院系统架构整体设计与实现

随着信息技术的不断发展,智慧医院系统作为医疗行业的重要应用,正在逐渐成为医院管理和服务的重要工具。本文将介绍智慧医院系统的整体架构设计原则和关键组件,以及如何实现一个安全、高效和可扩展的智慧医疗服务平台。 内容: 1.…

MQTT的学习与应用

文章目录 一、什么是MQTT二、MQTT协议特点三、MQTT应用领域四、安装Mosquitto五、如何学习 MQTT 一、什么是MQTT MQTT(Message Queuing Telemetry Transport)是一种轻量级的消息传输协议,设计用于在低带宽、不稳定的网络环境中进行高效的通信…

leetcode - 169. Majority Element

Description Given an array nums of size n, return the majority element. The majority element is the element that appears more than ⌊n / 2⌋ times. You may assume that the majority element always exists in the array. Example 1: Input: nums [3,2,3] Out…

springboot集成Sa-Token及Redis的redisson客户端

文章目录 什么是Sa-Token?为什么集成Redis的redisson客户端?如何集成?maven依赖application.yml配置过滤器配置验证参考什么是Sa-Token? Sa-Token 是一个轻量级 Java 权限认证框架,主要解决:登录认证、权限认证、单点登录、OAuth2.0、分布式Session会话、微服务网关鉴权…

幻兽帕鲁服务器的配置怎么选择?根据玩家数量的服务器套餐配置推荐

幻兽帕鲁服务器的配置怎么选择?根据玩家数量的服务器套餐配置推荐如下: 服务器套餐配置推荐 1、入门配置(推荐2~4人联机畅玩):4核8G 2、通用配置(推荐4~8人联机畅玩)&…

Codeforces Round 729 (Div. 2)B. Plus and Multiply(构造、数学)

题面 链接 B. Plus and Multiply 题意 给定 n , a , b n,a,b n,a,b 可以进行的操作 ∗ a *a ∗a b b b 最开始的数是1 问能否经过上面的两种操作将1变为n 题解 这题的关键是能不能想出来这个集合里面…

Java StringBuilder源码剖析+面试题整理

在String中提到,如果字符串修改操作比较频繁,应该采用StringBuilder和StringBuffer类,这两个类的方法基本是完全一样的,它们的实现代码也几乎一样,唯一的不同就在于StringBuffer类是线程安全的,而StringBui…

windows系统安装VMware 虚拟机全过程介绍

在Windows系统上安装VMware Workstation 16 Pro的全过程可以分为以下几个步骤: 1. 准备工作: - 确保您的Windows系统满足VMware Workstation 16 Pro的最低系统要求。VMware Workstation 16 Pro支持Windows 10、Windows 11、Windows Server 20…

Java实现免税店商城管理系统 JAVA+Vue+SpringBoot+MySQL

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、系统设计2.1 功能模块设计2.2 研究方法 三、系统展示四、核心代码4.1 查询免税种类4.2 查询物品档案4.3 新增顾客4.4 新增消费记录4.5 审核免税 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的免税店商城管理系…

RK3568笔记十四:yolov8pose部署

若该文为原创文章,转载请注明原文出处。 本篇参考山水无移大佬文章,并成功部署了yolov8pose在RK3568板子上,这里记录下全过程。 在此特感谢所有分享的大佬,底部附大佬的链接。 一、环境 1、平台:rk3568 2、开发板: …

c++ STL系列——(六)multimap

C标准模板库(STL)是C编程中不可或缺的一部分,它提供了一系列的容器、算法和函数模板,以简化常见的数据结构和算法的实现。在STL中,multimap是一个非常有用的容器,它提供了一种键值对的存储方式,…

牛客错题整理——C语言(实时更新)

1.以下程序的运行结果是&#xff08;&#xff09; #include <stdio.h> int main() { int sum, pad,pAd; sum pad 5; pAd sum, pAd, pad; printf("%d\n",pAd); }答案为7 由于赋值运算符的优先级高于逗号表达式&#xff0c;因此pAd sum, pAd, pad;等价于(…

QAnything之BCEmbedding技术路线

QAnything和BCEmbedding简介 QAnything[github]是网易有道开源的检索增强生成式应用&#xff08;RAG&#xff09;项目&#xff0c;在有道许多商业产品实践中已经积累丰富的经验&#xff0c;比如有道速读和有道翻译。QAnything是一个支持任意格式文件或数据库的本地知识库问答系…

java微服务面试篇

目录 目录 SpringCloud Spring Cloud 的5大组件 服务注册 Eureka Nacos Eureka和Nacos的对比 负载均衡 负载均衡流程 Ribbon负载均衡策略 自定义负载均衡策略 熔断、降级 服务雪崩 服务降级 服务熔断 服务监控 为什么需要监控 服务监控的组件 skywalking 业务…

Java ‘Elasticsearch‘ 操作

依赖 <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-elasticsearch --> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-elasticsearch</ar…

【开源】SpringBoot框架开发农家乐订餐系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用户2.2 管理员 三、系统展示四、核心代码4.1 查询菜品类型4.2 查询菜品4.3 加购菜品4.4 新增菜品收藏4.5 新增菜品留言 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的农家乐订餐系统&#xff0c…

Ubuntu Desktop - scrolling (Terminal 缓存更多终端历史输出内容)

Ubuntu Desktop - scrolling [Terminal 缓存更多终端历史输出内容] 1. ubuntu-14.04.5-desktop-amd64.iso2. ubuntu-16.04.3-desktop-amd64.isoReferences Terminal -> 右键 Profiles -> Profile Preferences 1. ubuntu-14.04.5-desktop-amd64.iso 2. ubuntu-16.04.3-de…

Java 与 JavaScript 的区别与联系

Java 和 JavaScript 两种编程语言在软件开发中扮演着重要的角色。尽管它们都以“Java”命名&#xff0c;但实际上它们是完全不同的语言&#xff0c;各有其独特的特点和用途。本文将深入探讨 Java 和 JavaScript 的区别与联系&#xff0c;帮助大家更好地理解它们在编程世界中的作…

【技巧】Allegro实用技巧之模块复用

需求分析&#xff1a;使用Allegro软件进行PCB Layout设计时&#xff0c;当电路图中有很多路相同的模块&#xff0c;使用模块复用的的操作方法&#xff0c;可以显著提高工作效率&#xff0c;同时也可以使PCB布局在整体上显得美观。下面来讲述这个方法。 具体方法及说明&#xf…

2.13作业

数组练习 1、选择题 1.1、若有定义语句&#xff1a;int a[3][6]; &#xff0c;按在内存中的存放顺序&#xff0c;a 数组的第10个元素是D A&#xff09;a[0][4] B) a[1][3] C)a[0][3] D)a[1][4] 1.2、有数组 int a[5] {10&#xff0c;20&#xff0c;30&#xff0c;40&#xf…