本篇文章,以配置一个PS端的UART外设,并打印一句话《hello ZYNQ7020,Author:liushuhe 2020.11.26》来演示
ZYNQ7020的基本开发流程,本篇文章需要一点点的C语言知识,不会也不影响实验的,跟着步骤做就行了。
一、任务分工
ZYNQ 芯片分为 PL 和 PS, PS 端的 IO 分配相对是固定的,不能任意分配,虽然 PS 端的 ARM 是硬核,但是在 ZYNQ 当中也要将 ARM 硬核添加到工程当中才能使用,FPGA 工程师负责把 Vivado 工程搭建好,提供好硬件给软件开发人员,软件开发人员便能在这个基础上开发应用程序 ,软件开发人员,不用关心FPGA的部分。
二、FPGA工程师搭建硬件平台
我们这里演示搭建一个带UART和arm A9处理器的硬件平台
1.1、建立vivado工程
创建一个“ps_uart”的工程,具体过程,参考我文章开头超链接文章;
1.2、点击“Create Block Design”,创建一个 Block 设计,也就是图形化设计
1.3、“Design name”可以不修改,我改成ps_uart便于识别
1.4、点击“Add IP”快捷图标
1.5、搜索“zynq”,在搜索结果列表中双击“ZYNQ7 Processing System
1.6、双击 Block 图中的“processing_system7_0”(直接双击蓝色区域),配置相关参数
1.7、首先出现的界面是 ZYNQ 硬核的架构图,可以很清楚看到它的结构,可以参考 官方文档,在官网搜索ug585 即可
1.8、图中绿色部分是可配置模块,可以点击进入相应的编辑界面
1.9、也可以在左侧的窗口进入编辑 ,下面分别介绍左侧选项代表的功能;
2.0、Zynq 块设计参数配置,单击绿色块右下角,可以进行参数配置
2.1、PS-PL Configuration 配置界面,主要是进行 PS 与 PL 之间接口的配置,主要是AXI 接口,这些接口可以扩展 PL 端的 AXI 接口外设
核。
2.2、我们这篇文章是PS开发流程,关于PS-PL Configuration 配置在这里保持默认,在后面的实验中我再补充
2.3、外设配置,ZYNQ 的 PS 端外设很多是复用的 ,同一引脚可以配置为不同的功能
zynq内部只有2个串口,UART0、UART1、我们看UART0可以接在(10、11)/(14、15)/(18、19)/(22、23)/(26、27)
2.4、配置串口,我们的ps_uart需要一个串口来打印消息,查看ZYNQ7020开发板的原理图
从原理图看出,ZYNQ的PS端的串口,连接的是MIO12、MIO13端口,并且电源是3.3v