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

目录

[1. 简介](#1. 简介)

[2. 实用软件操作](#2. 实用软件操作)

[2.1 C/RTL Cosimulation 选项](#2.1 C/RTL Cosimulation 选项)

[2.2 Do not show this dialog again](#2.2 Do not show this dialog again)

[2.3 New Solution](#2.3 New Solution)

[2.4 对比 Solution](#2.4 对比 Solution)

[2.5 以命令行方式运行(windows)](#2.5 以命令行方式运行(windows))

[2.6 文本缩放快捷键](#2.6 文本缩放快捷键)

[2.7 查看和修改快捷键](#2.7 查看和修改快捷键)

[2.8 将Vitis HLS RTL 导入 Vivado IP](#2.8 将Vitis HLS RTL 导入 Vivado IP)

[3. Schedule Viewer](#3. Schedule Viewer)

[3.1 概览](#3.1 概览)

[3.2 示例一](#3.2 示例一)

[3.3 理解函数执行细节](#3.3 理解函数执行细节)

[4. 总结](#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所用到的高级操作全覆盖。

相关推荐
_落纸20 小时前
三大基础无源电子元件——电阻(R)、电感(L)、电容(C)
笔记
Alice-YUE20 小时前
【CSS学习笔记3】css特性
前端·css·笔记·html
2303_Alpha20 小时前
SpringBoot
笔记·学习
萘柰奈20 小时前
Unity学习----【进阶】TextMeshPro学习(三)--进阶知识点(TMP基础设置,材质球相关,两个辅助工具类)
学习·unity
沐矢羽21 小时前
Tomcat PUT方法任意写文件漏洞学习
学习·tomcat
好奇龙猫21 小时前
日语学习-日语知识点小记-进阶-JLPT-N1阶段蓝宝书,共120语法(10):91-100语法+考え方13
学习
向阳花开_miemie21 小时前
Android音频学习(十八)——混音流程
学习·音视频
工大一只猿21 小时前
51单片机学习
嵌入式硬件·学习·51单片机
风_峰1 天前
Ubuntu Linux SD卡分区操作
嵌入式硬件·ubuntu·fpga开发
c0d1ng1 天前
量子计算学习(第十四周周报)
学习·量子计算