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

相关推荐
盐水冰4 小时前
【烘焙坊项目】后端搭建(12) - 订单状态定时处理,来单提醒和顾客催单
java·后端·学习
Hello小赵4 小时前
视频压缩编码学习(一)—— 基础知识大集合
学习
左左右右左右摇晃4 小时前
计算机网络笔记整理
笔记·计算机网络
不吃西红柿的854 小时前
[职场] 内容运营求职简历范文 #笔记#职场发展
笔记·职场和发展·内容运营
似水明俊德5 小时前
02-C#.Net-反射-学习笔记
开发语言·笔记·学习·c#·.net
智者知已应修善业6 小时前
【51单片机独立按键控制数码管移动反向,2片74CH573/74CH273段和位,按键按下保持原状态】2023-3-25
经验分享·笔记·单片机·嵌入式硬件·算法·51单片机
adore.9686 小时前
3.18 复试学习
学习
C羊驼6 小时前
C语言:两天打鱼,三天晒网
c语言·经验分享·笔记·算法·青少年编程
留白_6 小时前
MySQL学习(9)——索引
学习
sheeta19986 小时前
苍穹外卖Day04笔记
笔记