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

相关推荐
知行合一←_←几秒前
实战篇-主时钟约束
fpga开发
浪淘沙jkp2 分钟前
大模型学习六:‌小米8闲置,通过Termux安装ubuntu做个随身服务器,纯粹碍眼折腾
学习·ubuntu·termux
虾球xz8 分钟前
游戏引擎学习第210天
学习·游戏引擎
奋斗的牛马24 分钟前
FPAG_BUFFER学习
学习·fpga开发
熬夜造bug24 分钟前
LeetCode Hot100 刷题笔记(2)—— 子串、普通数组、矩阵
笔记·leetcode·矩阵
小赞赞赞赞赞36 分钟前
二十七- Scala
笔记
小灿同学啊2 小时前
Pycharm中python解释器选择Conda环境时“conda可执行文件”
经验分享·笔记·pycharm
停走的风2 小时前
jetson orin nano学习(torch+OpenCV+yolov5+)
学习·cuda·jetson
北漂老男孩2 小时前
电商核心指标解析与行业趋势:数据驱动的增长策略【大模型总结】
笔记·创业创新
山居秋暝LS2 小时前
学习OpenCV C++版
c++·opencv·学习