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

2024-04-28 09:20

本文主要是介绍Vitis HLS 学习笔记--IDE软件高效操作指引,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

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所用到的高级操作全覆盖。

这篇关于Vitis HLS 学习笔记--IDE软件高效操作指引的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/942874

相关文章

Java高效实现PowerPoint转PDF的示例详解

《Java高效实现PowerPoint转PDF的示例详解》在日常开发或办公场景中,经常需要将PowerPoint演示文稿(PPT/PPTX)转换为PDF,本文将介绍从基础转换到高级设置的多种用法,大家... 目录为什么要将 PowerPoint 转换为 PDF安装 Spire.Presentation fo

使用Java填充Word模板的操作指南

《使用Java填充Word模板的操作指南》本文介绍了Java填充Word模板的实现方法,包括文本、列表和复选框的填充,首先通过Word域功能设置模板变量,然后使用poi-tl、aspose-words... 目录前言一、设置word模板普通字段列表字段复选框二、代码1. 引入POM2. 模板放入项目3.代码

利用Python操作Word文档页码的实际应用

《利用Python操作Word文档页码的实际应用》在撰写长篇文档时,经常需要将文档分成多个节,每个节都需要单独的页码,下面:本文主要介绍利用Python操作Word文档页码的相关资料,文中通过代码... 目录需求:文档详情:要求:该程序的功能是:总结需求:一次性处理24个文档的页码。文档详情:1、每个

Python内存管理机制之垃圾回收与引用计数操作全过程

《Python内存管理机制之垃圾回收与引用计数操作全过程》SQLAlchemy是Python中最流行的ORM(对象关系映射)框架之一,它提供了高效且灵活的数据库操作方式,本文将介绍如何使用SQLAlc... 目录安装核心概念连接数据库定义数据模型创建数据库表基本CRUD操作创建数据读取数据更新数据删除数据查

Go语言中json操作的实现

《Go语言中json操作的实现》本文主要介绍了Go语言中的json操作的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录 一、jsOChina编程N 与 Go 类型对应关系️ 二、基本操作:编码与解码 三、结构体标签(Struc

Java 字符串操作之contains 和 substring 方法最佳实践与常见问题

《Java字符串操作之contains和substring方法最佳实践与常见问题》本文给大家详细介绍Java字符串操作之contains和substring方法最佳实践与常见问题,本文结合实例... 目录一、contains 方法详解1. 方法定义与语法2. 底层实现原理3. 使用示例4. 注意事项二、su

Java Stream流与使用操作指南

《JavaStream流与使用操作指南》Stream不是数据结构,而是一种高级的数据处理工具,允许你以声明式的方式处理数据集合,类似于SQL语句操作数据库,本文给大家介绍JavaStream流与使用... 目录一、什么是stream流二、创建stream流1.单列集合创建stream流2.双列集合创建str

Python正则表达式匹配和替换的操作指南

《Python正则表达式匹配和替换的操作指南》正则表达式是处理文本的强大工具,Python通过re模块提供了完整的正则表达式功能,本文将通过代码示例详细介绍Python中的正则匹配和替换操作,需要的朋... 目录基础语法导入re模块基本元字符常用匹配方法1. re.match() - 从字符串开头匹配2.

C#使用Spire.Doc for .NET实现HTML转Word的高效方案

《C#使用Spire.Docfor.NET实现HTML转Word的高效方案》在Web开发中,HTML内容的生成与处理是高频需求,然而,当用户需要将HTML页面或动态生成的HTML字符串转换为Wor... 目录引言一、html转Word的典型场景与挑战二、用 Spire.Doc 实现 HTML 转 Word1

Java实现在Word文档中添加文本水印和图片水印的操作指南

《Java实现在Word文档中添加文本水印和图片水印的操作指南》在当今数字时代,文档的自动化处理与安全防护变得尤为重要,无论是为了保护版权、推广品牌,还是为了在文档中加入特定的标识,为Word文档添加... 目录引言Spire.Doc for Java:高效Word文档处理的利器代码实战:使用Java为Wo