大侠好,欢迎来到“艮林子”专栏,本次为艮林子首次和大侠见面,新春佳节之际,略备薄礼,不成敬意,给大侠带来“Xilinx Vitis 系列连载”,给大侠提供参考学习的资料,如有不足之处,还请多多指教。
由于内容过多,首篇给大侠列出目录,后续有时间分篇连载发出,欢迎各位大侠关注“FPGA技术江湖”,我们是真正做事的团队,希望大家多多支持,如果想获取更多资源,可以加大辉哥微信,进交流群,可以永久交流学习,共同进步。话不多说,咱们就进入正题。
今天带来第六篇,介绍配置Vitis IDE和项目进出口。后续还会带来详细的开发教程,敬请关注。话不多说,咱们就进入正题。
这里放上前五篇的超链接。
VITIS简介
作者:艮林子 校对:陆辉
连载目录
一、Vitis 2019.2软件平台发行说明
1.1 Vitis软件平台中的内容
1.1.1 硬件加速的应用程序开发流程
1.2 改变行为
1.2.1 从SDAccel迁移
1.2.2 从SDSoC迁移
1.3 支持平台
1.3.1 数据中心加速卡
1.3.2 嵌入式平台
二、安装
三、Vitis加速环境简介
3.1 简介与概述
3.2 FPGA加速
3.3 执行模型
3.4 建立过程
3.4.1 主机程序构建过程
3.4.2 FPGA二进制构建过程
3.5 建立目标
3.5.1 软件仿真
3.5.2 硬件仿真
3.5.3 系统
3.6 使用Vitis软件平台加速应用程序的方法论
3.6.1 文件受众和范围
3.6.2 加速:工业类比
3.6.3 设计设备加速应用程序的方法
3.6.4 开发C / C ++内核的方法论
四、开发应用程序
4.1 程序设计模型
4.2 主机申请
4.2.1 设置OpenCL环境
4.2.2 在FPGA中执行命令
4.2.3 后处理和FPGA清理
4.2.4 摘要
4.3 RTL内核
4.3.1 RTL内核的要求
4.3.2 RTL内核开发流程
4.3.2.1 将RTL代码打包为Vivado IP
4.3.2.2 创建内核描述XML文件
4.3.2.3 从RTL内核创建XO文件
4.3.3 RTL内核向导
4.3.4 摘要
五、构建和运行程序
5.1 设置Vitis环境
5.2 建立目标
5.2.1 软件仿真
5.2.2 硬件仿真
5.2.3 系统硬件目标
5.3 构建主机程序
5.4 构建FPGA二进制文件
5.4.1 在Vivado HLS中创建内核
六、对应用程序进行性能分析,优化和调试
七、使用Vitis分析仪
7.1 处理报告
7.2 了解葡萄分析仪
7.3 创建运行配置
7.4 配置葡萄分析仪
八、使用Vitis IDE
8.1 Vitis命令选项
8.2 创建Vitis IDE项目
8.2.1 启动Vitis IDE工作区
8.2.2 创建一个应用程序项目
8.2.3 管理平台和存储库
8.2.4 了解Vitis IDE
8.2.5 添加源
8.2.5.1 添加源文件
8.2.5.2 创建和编辑新的源文件
8.2.5.3 在项目编辑器视图中工作
8.2.5.4 在助理视图中工作
8.3 建立系统
8.3.1 Vitis IDE指导视图
8.3.2 从Vitis IDE使用Vivado工具
8.4 Vitis IDE调试流程
8.5 配置Vitis IDE
8.5.1 Vitis项目设置
8.5.2 Vitis Build配置设置
8.5.3 Vitis运行配置设置
8.5.4 Vitis二进制容器设置
8.5.5 Vitis硬件功能设置
8.5.6 Vitis工具链设置
8.5.6.1 Vitis内核编译器和链接器选项
8.5.6.2 emconfigutil设置
8.5.6.3 G ++主机编译器和链接器设置
8.6 项目进出口
8.6.1 导出Vitis项目
8.6.2 导入葡萄项目
正文
八、使用Vitis IDE
在“助手”视图中,使用“ 设置”按钮(
)配置选定的项目或配置对象。
要编辑Vitis项目设置,请在“助手”视图中选择项目,然后单击“设置”按钮(
)弹出“项目设置”对话框。通过此对话框,您可以为Vitis编译器v++命令指定链接和编译选项,以自定义项目构建过程。
Project name:项目名称。单击链接以打开项目的“属性”对话框。
Platform平台:该项目的目标平台。单击链接以打开“平台描述”对话框。单击浏览 以更改平台。
Runtime运行:显示此项目中使用的运行时。
Number of devices:指定在仿真过程中主机程序可以使用的OpenCL加速器设备的数量。
V++ compiler options:指定v++ 命令的编译器选项,如Vitis Compiler Command中所述。
V++ linker options:指定v++ 命令的链接选项。
要编辑项目下任何构建配置的设置,请在“助手”视图中选择构建配置,然后单击“ 设置”按钮(
)弹出“构建配置设置”对话框。在此对话框中,您可以启用主机和内核调试,指定在构建过程中要报告的信息级别,并指定硬件构建的优化级别。
Target:如构建目标中所述的构建配置目标。
Host debug:选择启用主机代码调试。
Kernel debug:选择以启用内核代码调试。
Report level:按照控制报告生成中所述指定要生成的报告级别。
Hardware optimization:指定在优化硬件上要花费多少精力。硬件优化是一项计算密集型任务。更高级别的优化可能会导致更多最佳硬件,但会增加构建时间。此选项仅在构建配置系统中可用。
“生成配置”对话框还包含指向“编译器”和“链接器工具链”设置的链接。它们提供了对标准Eclipse环境中所有设置的完全访问权限,并且可以用于配置Vitis核心开发工具包,如Vitis工具链设置中所述。其他选项卡中提供了Vitis特定设置,例如Vitis编译器和链接器标志,它们不属于标准C / C ++工具链。
要编辑运行配置的设置,请选择一个构建配置,然后使用右键单击菜单导航至“运行” > “运行配置”以打开所选构建配置的“运行配置”对话框。如下所示,“运行配置”对话框使您可以指定调试选项,启用正在运行的应用程序的性能分析以及指定要收集的性能数据的类型。
Name:指定运行配置的名称。
Project:显示当前项目,但可以更改为其他打开的项目。
Build Configuration:指定当前选择的构建配置,或将您的设置应用于活动的构建配置。
Kernel Debug:选择以启用用于内核调试的波形视图,或启用实时波形视图,如基于波形的内核调试中所述。
Enable profiling:如Profile Summary Report中所述,在应用程序运行时启用概要文件数据的收集。
Generate timeline trace:如应用程序时间线中所述,为该应用程序生成时间线跟踪报告。
Collect Data Transfer Trace:按照Vitis Compiler常规选项和xrt.ini文件中的说明指定数据传输数据的收集。
Collect Stall Trace:使您可以指示各种条件下的停顿数据捕获,如Vitis Compiler General Options和xrt.ini File中所述。
“运行配置”对话框具有其他选项卡,可帮助您在运行应用程序时配置运行时环境。在下面的示例中,显示了“参数”选项卡,其中包含使应用程序成功运行所需的各种参数。
Program arguments程序参数:指定应用程序所需的参数和值。涉及路径的选项是相对于工作目录指定的,如上例中的xclbin文件所示。
Automatically add binary containers to arguments:自动将二进制容器添加到参数:启用此复选框可自动包含二进制容器。
Working directory:指定正在运行的应用程序的位置。这是由Vitis IDE 自动定义的,或者可以通过禁用“使用默认值”复选框并指定路径来覆盖。
要编辑项目下任何二进制容器的设置,请在“助手”视图中选择二进制容器,然后单击“ 设置”按钮(
),以打开“二进制容器设置”对话框。这使您可以为二进制容器指定新名称,并为v++命令指定链接选项。
Name:指定二进制容器名称。
V++ Linker Options:在指定的构建配置中输入所选二进制容器的链接选项。有关可用选项的更多信息,请参考《Vitis编译器命令》。
V++ Linker Command Line:显示当前v++命令行以及您指定的任何链接选项。
可以编辑项目中任何构建配置的硬件功能设置。在“助手”视图中,为特定的构建配置选择硬件功能,例如Emulation-HW,然后单击“ 设置”按钮(
)以打开“硬件功能设置”对话框,如下图所示。
通过此对话框,您可以设置与所选构建配置中的硬件功能相关的选项,例如,指定内核实例的计算单元数,或将内核端口映射到特定的全局存储库。具体选项包括:
Compute Units计算单位:为内核创建的计算单元的数量,如创建内核的多个实例中所述。
Max Memory Ports:对于OpenCL内核,启用后,将为内核函数签名中声明的每个全局内存缓冲区生成一个单独的物理内存接口(m_axi)。如果未启用,则为内存映射的内核端口创建单个物理内存接口。
Port Data Width:对于OpenCL内核,请指定数据端口的宽度。
Extra Source Files:定义此硬件功能所需的任何其他源文件,例如输入数据文件。
Compiler Options:为所选的硬件功能指定Vitis编译器选项。
Compute Unit Settings:如将计算单元分配给SLR中所述,为内核的每个计算单元定义SLR位置;如将内核端口映射到全局内存中所述,为计算单元的每个端口定义全局内存分配。
Hardware Debug and Profiling Settings:当选定的构建配置是系统构建时,“计算单元设置”还使您能够启用将调试和配置文件监视器插入每个计算单元的接口,以捕获和查看信号轨迹。这些监视器启用以下功能:
ChipScope Debug:添加监视器以捕获硬件跟踪调试信息。
ChipScope Debug:添加AXI协议检查器。
Data Transfer:添加性能监视器以捕获在计算单元和全局内存之间传输的数据。捕获的数据包括计数器和/或跟踪。
Execute Profiling:添加一个加速器监视器以捕获计算单元执行的开始和结束。
Stall Profiling:添加具有功能的加速器监视器,以捕获内核内部,两个内核之间或内核与外部内存之间的数据流中的停顿。
提示:硬件功能设置对话框中指定的设置将被写入Vitis编译器使用的配置文件,该--config选项具有Vitis Compiler Configuration File中所述的选项。
工具链设置提供项目的基于Eclipse的标准视图,并提供Vitis IDE中C / C ++构建的所有选项。
在“构建配置设置”对话框中,从“构建配置”窗口的底部单击“ 编辑工具链编译器设置”或“ 编辑工具链链接器设置”以显示包含所有C / C ++构建设置的编译器和“链接器设置”对话框。此对话框使您可以设置标准C ++路径,包括路径,库,项目范围的定义和主机定义。
在Vitis IDE项目中工作时,“工具设置”选项卡下的五个主要设置为:
V++ Kernel Compiler:指定v++命令以及在调用v++内核编译过程的命令时必须传递的所有其他选项。请参见Vitis内核编译器和链接器选项。
V++ Kernel Linker:指定v++命令以及在调用v++内核链接过程的命令时要传递的任何其他选项。请参见Vitis内核编译器和链接器选项。
emconfigutil:指定emconfigutil实用工具的命令行选项。请参见emconfigutil设置。
GCC Host Compiler (x86_64):指定g++在主机编译过程中必须传递的链接器参数。请参阅G ++主机编译器和链接器设置。
GCC Host Linker (x86_64):指定g++在主机链接过程中必须传递的链接器参数。请参阅G ++主机编译器和链接器设置。
1.Vitis内核编译器选项
V ++内核编译器部分显示了该v++ 命令以及在调用v++内核编译过程的命令时必须传递的所有其他选项。该 v++命令选项可以是符号,包括路径,或其他有效的选项,其中包括任何的v++要添加命令行选项。
Symbols:单击Vitis编译器下的“ 符号 ” 以定义调用命令时随选项传递的所有符号。Includes:要将包含路径添加到Vitis 编译器,请选择包含,然后单击添加(
)按钮。
Miscellaneous:可以将必须传递给Vitis编译器的所有其他编译选项添加为“其他”部分中的标志。
2.Vitis内核链接器选项
VItis内核链接设置显示的v++命令和任何其他选项调用时传递v++的内核连接处理指令。
可以将需要传递给Vitis编译器的任何其他选项添加为“其他”部分中的标志。有关更多信息,请参考Vitis Compiler Command以获取链接过程中的可用选项。
该emconfigutil命令选项可以在命令字段中输入创建中所描述的仿真配置文件emconfigutil实用。在启动运行配置之前,Vitis IDE 通过运行指定的命令来创建emconfig.json文件emconfigutil
1.G ++编译器选项
Vitis核心开发套件g++使用的编译器参数可以在“工具链设置”的“ G ++主机编译器”部分下进行访问。
Dialect:指定用于选择要使用的C ++语言标准的命令选项。标准方言选项包括C ++ 98,C ++ 2011和C ++ 2014(1Y)。
Preprocessor预处理器:为主机编译器指定预处理器参数,例如符号定义。已经定义的默认符号包括平台,以便主机代码可以检查特定平台。
Includes:指定包含路径和包含文件。
Optimization:指定编译器优化标志和其他优化设置。
Debugging:指定调试级别和其他调试标志。
Warnings:指定与编译器警告相关的选项。
Miscellaneous:指定传递给g++编译器的任何其他标志。
2.G ++链接器选项
Vitis 技术G ++ Host Linker 的链接器参数通过此处提供的选项提供。具体部分包括常规选项,库和库路径,其他链接器选项以及共享库。
Vitis IDE提供了导出或导入一个或多个简化的方法,葡萄在工作区中的IDE项目。您可以选择包括关联的项目构建文件夹。
导出项目时,将项目压缩为一个zip文件,其中包含导入到另一个工作区所需的所有相关文件。
1.要导出项目,请从主菜单中选择“ 文件” >“ 导出 ”
2.要更改档案的名称,请编辑“档案文件”字段。
3.要包括当前的构建配置,请在窗口底部启用“ 包括构建文件夹 ”。
提示:这可能会大大增加档案的大小,但是在某些情况下可能是必要的。
4.要使用所选文件创建档案,请单击“ 确定”以创建档案。
选定的Vitis IDE项目将被保存在指定的文件和位置中,并且可以由不同的用户在不同的工作空间,不同的计算机上导入到Vitis IDE中
1.要导入项目,请从顶部菜单中选择“ 文件” >“ 导入 ”。
这将打开“导入项目”对话框以选择导入文件类型。您可以选择两种类型的文件来导入:
Vitis项目导出的zip文件
允许您导入先前从Vitis IDE 导出的项目,如“ 导出Vitis项目”中所述。
Eclipse工作区或zip文件
允许您从另一个Vitis IDE工作区导入项目。
2.下图显示了选择Eclipse工作区或zip文件并单击Next时打开的对话框。
3.对于“选择根目录”,指向Vitis IDE 的工作区,然后根据需要指定以下选项:
4.单击完成将项目导入到Vitis IDE中打开的工作区中
本篇到此结束,本次Vitis指南连载也到此结束,希望对大侠有所帮助,后续有时间再出详细的开发教程,欢迎大侠关注!
完
后续会持续更新,带来Vivado、 ISE、Quartus II 、candence等安装相关设计教程,学习资源、项目资源、好文推荐等,希望大侠持续关注。
江湖偌大,继续闯荡,愿大侠一切安好,有缘再见!