前言
本文简单介绍基于VITIS使用ZYNQ开发板进行开发,实现helloworld并进行简单调试
一、ZYNQ开发
ZYNQ开发包括俩部分,ARM(PS)核开发与FPGA(PL)开发,FPGA侧开发即使用我们熟悉的vivado,ARM侧开发需要使用SDK或者是VITIS,新版本的VIVADO不再是在其内部包括SDK,而是需要使用单独的VITIS进行开发。具体流程如下:
- 在VIVADO中进行BD设计框图,添加ARM核心
- 配置ARM信息,时钟频率、DDR型号、外设引脚等
- 完成BD框图中的模块互联
- 生成PL端bit流
- 到处PS端硬件信息
- 打开SDK或者VITIS,本内容主要介绍VITIS
- 导入硬件平台
- 创建应用程序
- 进行代码设计
- 编译、烧录
二、使用步骤
1.BD框图设计

默认引脚:
FCLK_CLK0:提供给FPGA的时钟
FCLK_RESET0_N:提供给FPGA的时钟复位
M_AXI_GP0:主机AXI接口
FIXED_IO:ARM端GPIO口
DDR:PS端DDR接口
M_AXI_GP0_ACLK:主机AXI时钟接口
双击打开配置页面:

第一页:绿色部分为用户可调用资源,灰色部分不可调用
第二页:主要以下四个内容
PL-PS交互选项: General为一些外设配置,以及给FPGA的时钟和时钟复位选项
AXI non secure enablement: 大概意思为AXI不稳固接口使能,即PS端作为主机的AXI主机接口,外部FPGA可能AXI总线设计不规范,有可能主机AXI挂死,因此称其不稳固
GP Slave AXI: 普通32位axi接口,FPGA向ARM写数据通过该接口或HP
HP Slave AXI: 高性能64位axi接口
第三页:IO配置,需要通过阅读ZYNQ原理图进行配置
第四页:MIO配置,ZYNQ bank0、bank1电压、速度、GPIO MIO和GPIO EMIO位宽等配置信息,后续详细介绍
第五页:系统时钟、DDR时钟、IO外设时钟以及提供给PL端时钟的配置,一般默认
第六页:DDR配置
若想保存配置结果方便下次使用,可通过Presets进行保存
2.HelloWorld示例
BD设计:

-
只进行时钟、UART以及DDR相关配置,其余默认接口全都在配置当中取消勾选。
-
随后将BD进行generate output products并且产生顶层文件
-
生成bit流
-
导出硬件信息(FIle->export->export hardwsre),勾选包含bit流(本次设计并不涉及PL,但勾选上为好),Vivado 会在当前工程目录下导出一个后缀为.xsa(Xilinx Support Archive)文件,可以当做是.hdf文件(SDK中硬件文件)的代替品
-
启动VITIS,创建新硬件平台,
-
从vivado转向Vitis(vivado : Tools->Launch Vitis IDE)
-
创建平台工程(Vitis : File->New->Create Platform Project):其中需要用到上面的.xsa文件
-
创建应用工程(Vitis : File->New->Create Application Project) :其中需要链接到上面创建的平台,也可以直接创建应用工程:在创建应用工程的界面里创建平台工程并链接。
-
在Vitis里右键单击应用工程中的src目录,选择New->File:创建应用工程代码,此处可选择HelloWorld模版。
-
右击选择编译project,没有错误后进入debug窗口,在此窗口可以选择串口(绿色的+),并且看到串口打印的信息。

-
右击Run configuration当中选择:

-
记得先开发板上电,连接好jtag,uart串口,随后点击Run As即可
-
Debug模式下可以单行或者按照每个函数的顺序进行执行代码。
总结
ZYNQ学习第一步,经典HelloWorld就此结束。
315

被折叠的 条评论
为什么被折叠?



