Vitis HLS 学习笔记--IDE软件高效操作指引

news2024/11/18 9:35:08

目录

1. 简介

2. 实用软件操作

2.1 C/RTL Cosimulation 选项

2.2 Do not show this dialog again

2.3 New Solution

2.4 对比 Solution

2.5 以命令行方式运行(windows)

2.6 文本缩放快捷键

2.7 查看和修改快捷键

2.8 将Vitis HLS RTL 导入 Vivado IP

3. Schedule Viewer

3.1 概览

3.2 示例一

3.3 理解函数执行细节

 4. 总结


1. 简介

本文持续更新,分享一些实用操作指引,为提高使用Vitis HLS IDE效率。

2. 实用软件操作

2.1 C/RTL Cosimulation 选项

2.2 Do not show this dialog again

可随时在Solution Settings中恢复或者设置。 

2.3 New Solution

2.4 对比 Solution

选中两个solution即可对比

2.5 以命令行方式运行(windows)

D:\Xilinx\Vitis_HLS\2022.1\bin\vitis_hls_cmd.bat

Or 开始菜单中:

>> vitis_hls -gui

>> vitis_hls -i #命令行

2.6 文本缩放快捷键

Ctrl + =:放大文本

Ctrl + -:减小文本

2.7 查看和修改快捷键

2.8 将Vitis HLS RTL 导入 Vivado IP

3. Schedule Viewer

3.1 概览

调度查看器,显示函数的每项操作和每个控制步骤,以及执行操作和步骤的时钟周期。

界面最左侧Operation\Control Step是指程序的操作码运行过程。

右侧右侧是时序视图,在同一周期内出现的指令,它们是并行执行的。

属性解释:
Bitwidth,位宽,对应运算的位宽。
Name,名称,包含代码的位置。
Op Latency,运算时延,显示运算或存储的绑定的默认时延或指定时延。
Opcode:操作码,请区分“指令码”。

指令码是指令的完整二进制编码,包含了 操作码 以及用于指定 操作数 操作细节
操作码通常包含在指令码前几位,表示指令的类型和功能,例如加法、乘法、逻辑操作等。

3.2 示例一

#include <ap_int.h>

void foo(ap_int<8>  xin[3],
         ap_int<8>  a,
         ap_int<8>  b,
         ap_int<8>  c,
         ap_int<17> yo[3]) {

    int i = 0;
loop:
    for(i = 0; i < 3; i++){
        yo[i] = a * xin[i] + b + c;
    }
}

编译器会自动执行优化 

3.3 理解函数执行细节

在linux中,可以通过以下命令来了解函数的具体调用过程:
gcc -E tt.c -o tt.i
gcc -S tt.i -o tt.S

总结:

  • 调用函数后,压栈pushq最先被执行
  • 然后参数复制movl到%rbp(base pointer)区
  • 返回值存放在%eax(accumulator)寄存器中
  • 保存返回值后,出栈popq
  • 出栈后,函数返回ret
  • 主函数读取返回值%eax
     

 4. 总结

本文持续更新,计划将Vitis HLS所用到的高级操作全覆盖。

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

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

相关文章

SpikingJelly笔记之梯度替代

文章目录 前言一、梯度替代二、网络结构三、MNIST分类1、单步模式2、多步模式 总结 前言 在SpikingJelly使用梯度替代训练SNN&#xff0c;构建单层全连接SNN实现MNIST分类任务。 一、梯度替代 1、梯度替代&#xff1a; 阶跃函数不可微&#xff0c;无法进行反向传播 g ( x ) …

自动驾驶新书“五一”节马上上市了

我和杨子江教授合写的《自动驾驶系统开发》终于在清华大学出版社三校稿之后即将在五一节后出版。 清华大学汽车学院的李克强教授和工程院院士撰写了序言。 该书得到了唯一华人图灵奖获得者姚期智院士、西安交大管晓宏教授和科学院院士以及杨强教授和院士等的推荐&#xff0c;…

java:SpringBootWeb请求响应

Servlet 用java编写的服务器端程序 客户端发送请求至服务器 服务器启动并调用Servlet,Servlet根据客户端请求生成响应内容并将其传给服务器 服务器将响应返回给客户端 javaweb的工作原理 在SpringBoot进行web程序开发时,内置了一个核心的Servlet程序DispatcherServlet,称之…

前端用a标签实现静态资源文件(excel/word/pdf)下载

接上文实现的 前端实现将二进制文件流&#xff0c;并下载为excel文件后&#xff0c; 实际项目中一般都会有一个模版下载的功能&#xff0c;一般都由服务端提供一个下载接口&#xff0c;返回文件流或url地址&#xff0c;然后前端再处理成对应需要的类型的文件。 但是&#xff…

从3秒飞降至25毫秒:揭秘惊艳的接口优化策略!

大家好&#xff0c;最近看到京东云的一位大佬分享的接口优化方案&#xff0c;感觉挺不错的&#xff0c;拿来即用。建议收藏一波或者整理到自己的笔记本中&#xff0c;随时查阅&#xff01; 下面是正文。 一、背景 针对老项目&#xff0c;去年做了许多降本增效的事情&#xf…

如何学习思考能力?如何训练思考能力?思考不一样?问到底 对新敏感 主动 不怕试错 预测 独特一套

简单易行的方法&#xff1a;问到底 一个简单而有效的方法是使用"五个为什么"技术。当面临问题时&#xff0c;反复问自己为什么&#xff0c;至少问五次&#xff0c;以深入了解问题的根本原因。这有助于培养深入思考和分析问题的能力。 对新敏感 学习思考能力的关键…

PotatoPie 4.0 实验教程(23) —— FPGA实现摄像头图像伽马(Gamma)变换

为什么要进行Gamma校正 图像的 gamma 校正是一种图像处理技术&#xff0c;用于调整图像的亮度和对比度&#xff0c;让显示设备显示的亮度和对比度更符合人眼的感知。Gamma 校正主要用于修正显示设备的非线性响应&#xff0c;以及在图像处理中进行色彩校正和图像增强。 以前&am…

JAVA 中间件之 Mycat2

Mycat2应用与实战教程 1.Mycat2概述 1.1 什么是MyCat 官网&#xff1a; http://mycatone.top/ Mycat 是基于 java 语言编写的数据库中间件&#xff0c;是一个实现了 MySQL 协议的服务器&#xff0c;前端用户可以把它看作是一个数据库代理&#xff0c;用 MySQL 客户端工具和…

1. 房屋租赁管理系统(基于springboot/vue的Java项目)

1.此系统的受众 1.1 在校学习的学生&#xff0c;可用于日常学习使用或是毕业设计使用 1.2 毕业一到两年的开发人员&#xff0c;用于锻炼自己的独立功能模块设计能力&#xff0c;增强代码编写能力。 1.3 亦可以部署为商化项目使用。 2. 技术栈 jdk8springbootvue2mysq5.7&8…

C++ 动态链接库DLL创建及使用

一、动态链接库DLL创建 使用VS2022 创建 1、创建新解决方案 创建即可 2、创建动态链接库新项目 右键解决方案 语言选择C&#xff0c;选择动态链接库 填入项目名称&#xff0c;勾选&#xff1a;将解决方案和项目放在同一目录中 点击创建 3、创建后&#xff0c;显示dllmai…

西湖大学赵世钰老师【强化学习的数学原理】学习笔记2节

强化学习的数学原理是由西湖大学赵世钰老师带来的关于RL理论方面的详细课程&#xff0c;本课程深入浅出地介绍了RL的基础原理&#xff0c;前置技能只需要基础的编程能力、概率论以及一部分的高等数学&#xff0c;你听完之后会在大脑里面清晰的勾勒出RL公式推导链条中的每一个部…

使用frp实现内网穿透教程

文章目录 简介frp 是什么&#xff1f;为什么选择 frp&#xff1f; 概念工作原理代理类型 内网穿透教程服务端安装和配置本地Windows&#xff08;客户端&#xff09;安装和配置本地Linux虚拟机&#xff08;客户端&#xff09;安装和配置使用 systemd 管理服务端注意事项 简介 f…

Odoo:全球排名第一的免费开源PLM管理系统介绍

概述 利用开源智造OdooPLM产品生命周期管理应用&#xff0c;重塑创新 实现产品生命周期管理数字化&#xff0c;高效定义、开发、交付和管理创新的可持续产品&#xff0c;拥抱数字化供应链。 通过开源智造基于Odoo开源技术平台打造数字化的产品生命周期管理&#xff08;PLM&am…

MongoDB的安装(Linux环境)

登录到Linux服务器执行 lsb_release -a &#xff0c;即可得知服务器的版本信息为&#xff1a;CentOS 7。 # CentOS安装lsb_release包 [rootlinux100 ~]# sudo yum install redhat-lsb# 查看Linux版本 [rootlinux100 ~]# lsb_release -a LSB Version: :core-4.1-amd64:core-…

redis7 for windows的安装教程

本篇博客主要介绍redis7的windows版本下的安装教程 1.redis介绍 Redis&#xff08;Remote Dictionary Server&#xff09;是一个开源的&#xff0c;基于内存的数据结构存储系统&#xff0c;可用作数据库、缓存和消息代理。它支持多种数据结构&#xff0c;如字符串、哈希表、列…

Django中的事务

1 开启全局的事务 DATABASES {default: {ENGINE: django.db.backends.mysql, # 使用mysql数据库NAME: tracerbackend, # 要连接的数据库USER: root, # 链接数据库的用于名PASSWORD: 123456, # 链接数据库的用于名HOST: 192.168.1.200, # mysql服务监听的ipPORT: 3306, …

四、OSPF域间路由

注&#xff1a;区域&#xff08;area&#xff09;是以接口进行划分的 描述&#xff1a; R1的g0/0/1接口属于area 0 √ R1属于区域0和区域1 1.设计原则 1、OSPF区域的设计原则&#xff1a; 骨干区域有且只能存在一个 非骨干区域必须和骨干区域相连 多区域时&#…

【Linux实践室】Linux文件打包和解压缩实战指南:tar打包命令操作详解(文末送书)

&#x1f308;个人主页&#xff1a;聆风吟_ &#x1f525;系列专栏&#xff1a;Linux实践室、网络奇遇记 &#x1f516;少年有梦不应止于心动&#xff0c;更要付诸行动。 文章目录 一. ⛳️任务描述二. ⛳️相关知识2.1 &#x1f514;打包2.1.1 &#x1f47b;知识点讲解2.1.2 &…

CTFHub Web 信息泄漏(一)

目录遍历 打开题目 点击开始寻找flag 发现在flag_in_here页面中有四个文件夹 点击打开第一个文件夹 发现里面还有四个文件夹 再次点击打开第一个文件夹 里面什么都没有 尝试对所有文件夹依次都点击打开 在2/4中发现flag.txt 点击打开即可得到flag 不太懂这题的难点&#…

碎碎念,最近做了几款小产品...

极简番茄时钟 一款 Mac 版「极简番茄时钟」软件。 知识卡片制作工具 主打简单&#xff0c;同时支持 Markdown 语法。 智能微信助手 让管理变得轻松&#xff0c;沟通更加高效。 感兴趣&#xff0c;欢迎来这里一起交流&#xff0c;限时免费 ~