Vivado18.3-Zynq PS的开发流程(Hello World) 学习笔记

本文内容学习自正点原子ZYNQ领航者FOGA视频-p41

众所周知之,所有软件的开发学习都是从Hello World开始,Zynq PS也不例外。

Vivado18.3-Zynq PS的开发流程(Hello World) 学习笔记_第1张图片

图为ZYNQ嵌入式最小系统。

Memory用来存储数据、RS232用来与上位机通信。

1.它是使系统工作的最小条件。

2.它是其它系统建立的基础。

Vivado18.3-Zynq PS的开发流程(Hello World) 学习笔记_第2张图片

上图就是PS

下面就通过创建一个Hello World工程来学习PS的开发流程。

 打开软件

ZYNQ的开发不论是PL还是PS端都是要从Vivado中的创建工程开始,所以和PL端开发一样,首先打开Vivado18.3。

1. 创建工程

1.1 Porject Name

同PL端开发一样,PS端同样需要创建工程。

Vivado18.3-Zynq PS的开发流程(Hello World) 学习笔记_第3张图片

创建好工程路径和工程名称后我们点击Next。

1.2 Project Type

Vivado18.3-Zynq PS的开发流程(Hello World) 学习笔记_第4张图片

PS端的开发也是创建RTL工程,然后我们这里选择此时不指定源文件。

1.3 Default Part

Vivado18.3-Zynq PS的开发流程(Hello World) 学习笔记_第5张图片

这里选择好对应的芯片型号。

1.4  New Porject Symamry

Vivado18.3-Zynq PS的开发流程(Hello World) 学习笔记_第6张图片

工程创建完毕。

2. 创建PS

PS端的设计实际上会用到许多IP核然后将其组合起来,组成一个System,所以要从创建模块设计开始。

2.1 Create Block Design

Vivado18.3-Zynq PS的开发流程(Hello World) 学习笔记_第7张图片

起名为system。

2.2 Add IP

Vivado18.3-Zynq PS的开发流程(Hello World) 学习笔记_第8张图片

这里的Diagram就相当于一个“画板”,在这里添加IP。

Vivado18.3-Zynq PS的开发流程(Hello World) 学习笔记_第9张图片

这个就是ZYNQ的PS部分,将其双击将其添加进来。

Vivado18.3-Zynq PS的开发流程(Hello World) 学习笔记_第10张图片

这样就将PS添加到Diagram中了,之后我们将对他进行配置。

配置PS

2.3 DDR Configuration DDR配置

Vivado18.3-Zynq PS的开发流程(Hello World) 学习笔记_第11张图片

这里配置好存储器类型和型号。

2.4 Peripheral I/O Pins  外设引脚选择

这里我们要配置RS232协议的通信串口也就是UART来实现,在配置之前我们首先要看一下板子的设计原理图。

Vivado18.3-Zynq PS的开发流程(Hello World) 学习笔记_第12张图片

原理图里可以看到UART_RXD和UART_TXD对应的分别是PS_MIO14和PS_MIO15,所以接下来配置UART的时候,就要选择相对应的MIO。

Vivado18.3-Zynq PS的开发流程(Hello World) 学习笔记_第13张图片

这里就直接选中和原理图对应的引脚即可。

2.5 PS-PL Configuration

接下来配置串口通信的波特率

Vivado18.3-Zynq PS的开发流程(Hello World) 学习笔记_第14张图片

选择115200即可。

最后点击OK,配置完成。

注意:MIO电平的配置,要结合原理图,本实验中Bank1用的是3.3v,Bank2用的是1.8v。

2.6删除多余接口和自动配置端口

M_AXI_GP0和M_AXI_GP0_ACLK这两个是PS与PL端的IO口和对应的CLK,把下图勾选取消即可。

Vivado18.3-Zynq PS的开发流程(Hello World) 学习笔记_第15张图片

FCLK_0就是PS提供给PL端的CLK,因为没有用到PL所以这里也取消掉。

Vivado18.3-Zynq PS的开发流程(Hello World) 学习笔记_第16张图片

FCLK_RESET0_N这个是PS端提供给PL的复位接口,取消掉。

Vivado18.3-Zynq PS的开发流程(Hello World) 学习笔记_第17张图片

未用到的接口取消掉后,我们点击Run Block Autoamtion 自动完成模块端口的创建。Vivado18.3-Zynq PS的开发流程(Hello World) 学习笔记_第18张图片

Vivado18.3-Zynq PS的开发流程(Hello World) 学习笔记_第19张图片

之后可以验证设计,点击此图标,可以自动验证设计是否有一些错误或者警告。

Vivado18.3-Zynq PS的开发流程(Hello World) 学习笔记_第20张图片

无错误和警告,设计完成。

2.7 生成输出结果

这里就是对刚才包含的每一个IP和都生成一个管脚约束or其它什么结果。

Vivado18.3-Zynq PS的开发流程(Hello World) 学习笔记_第21张图片

这里选择每个IP一个输出,因为我们只有一个ZYNQ PS的IP,所以也就只有一个输出。

Vivado18.3-Zynq PS的开发流程(Hello World) 学习笔记_第22张图片

生成后每个IP核都会有他综合、实现和仿真的一些结果,比如实现中的管脚约束等。

Vivado18.3-Zynq PS的开发流程(Hello World) 学习笔记_第23张图片

3 Create HDL Wrapper 生成顶层HDL

这个就是为我们的设计生成硬件描述文件的顶层文件,相当于用硬件描述语言将刚才的设计封装起来。

Vivado18.3-Zynq PS的开发流程(Hello World) 学习笔记_第24张图片

这里选择默认选项,当设计有更新的时候吗,它也会自动更新。

Vivado18.3-Zynq PS的开发流程(Hello World) 学习笔记_第25张图片

4.生成Bitstream并导入SDK

因为没有PL端设计,所以不需要生成Bitstream,直接导入SDK就行。

Vivado18.3-Zynq PS的开发流程(Hello World) 学习笔记_第26张图片

这里问你是否导入Bitstream文件,因为没有用PL所以不导入。

Vivado18.3-Zynq PS的开发流程(Hello World) 学习笔记_第27张图片

点击OK之后,工程文件夹下会多一个.sdk的文件夹,其中只有一个.HDF文件。

Hardware Design File这个文件就描述了硬件设计的一些信息。

Vivado18.3-Zynq PS的开发流程(Hello World) 学习笔记_第28张图片

然后启动SDK,后可以看到这个文件所包含的文件。

Vivado18.3-Zynq PS的开发流程(Hello World) 学习笔记_第29张图片

Vivado18.3-Zynq PS的开发流程(Hello World) 学习笔记_第30张图片

5.在SDK中创建工程

File-New-Application Project

设置好工程名其它都保持默认,会默认生成一个Board Support Package然后NEXT

Vivado18.3-Zynq PS的开发流程(Hello World) 学习笔记_第31张图片

这里选择一个空的例程。

Vivado18.3-Zynq PS的开发流程(Hello World) 学习笔记_第32张图片

然后就生成了,软件工程的一些文件。

这里的Board Support Package,应用软件是在硬件运行。最下面的文件夹就包含硬件信息,最上面文件夹就是软件应用。BSP就相当于两者的桥梁,会有一些驱动。

Vivado18.3-Zynq PS的开发流程(Hello World) 学习笔记_第33张图片

在src文件夹下,创建一个New Source File,命名为main.c

注意要带上.c

Vivado18.3-Zynq PS的开发流程(Hello World) 学习笔记_第34张图片

之后,就可以在右侧编辑代码,然后我们写入hello world的代码。保存后会自动编译。

Vivado18.3-Zynq PS的开发流程(Hello World) 学习笔记_第35张图片

6.下载验证

板子也要连接好串口线,PS和上位机通信用。

连接好与串口,波特率与之前的设置对应都是115200。

Vivado18.3-Zynq PS的开发流程(Hello World) 学习笔记_第36张图片

这个.elf就是需要下载到板子上的可执行文件。

右键hello_world1-Run As-1Launch on Hardware,下载到板子上。

Vivado18.3-Zynq PS的开发流程(Hello World) 学习笔记_第37张图片

下载成功之后,可以再SDK Terminal窗口中看到打印出来的hello world

Vivado18.3-Zynq PS的开发流程(Hello World) 学习笔记_第38张图片

这个Hello,World!来自于我们下载到板子上的程序运行之后,通过与上位机的串口发送到上位机中。

至此Hello World实验完成!。

 

你可能感兴趣的:(FPGA,ZYNQ,Vivado)