PYNQ Z2二:第一个工程

PYNQ Z2二:第一个工程

  • Hello World
    • 介绍
    • 下载安装vivado
    • 建立第一个工程
      • 添加PYNQ-Z2的配置信息
      • 添加引脚约束文件XDC
    • 串口通讯

Hello World

PYNQ Z2端通过串口输出的PC端

介绍

PYNQ Z2使用的是jupyter_notebooks在线Python开发,但是,PYNQ脱胎于ZYNQ,其基本架构依然延续ZYNQ。本人没有开发ZYNQ的经验,所以,为了更深入的了解PYNQ Z2的内部机制,先学习了ZYNQ的开发,在总结了各路大牛的博客之后,在 ALINX_ZYNQ开发平台基础教程V1.02 第四章:PL的“Hello World”LED实验的指导下,完成了本次实验,因为PYNQZYNQ终归是有些区别的,在具体实验过程中要懂得灵活做出改动。

下载安装vivado

个人建议前往官网下载
本人下载的当前最新版本2019.1
vivado下载

图1:vivado2019.1下载

先下载WebPACK,要注册账号,和填一些下载信息

安装文件

图2:安装文件

下载完成后如上图所示,直接运行,账号登陆,可以选择边下载边安装也可以下载独立完整的安装包,本人选择的是下载独立完整的安装包。下载速度稳定在4M左右,而网上其他的下载链接一般是百度云盘,下载速度在几M到几百K变动,相对于上述方法慢了一点。而且本人尝试从其他地方下载WebPACK再下载2018.1失败了两次,通过官网下载一次成功。下载完毕后的安装参考虚无缥缈vs威武的博客。
本人一次就安装成功了,但是接下来出问题了,简单描述一下。
PYNQ Z2二:第一个工程_第1张图片

图3:应用图标

安装完成后如图3所示。
PYNQ Z2二:第一个工程_第2张图片

图4:操作系统规格

系统版本如图4所示,除了DocNav外其他都打不开,在网上看了很多攻略,但是参考意义较小。
PYNQ Z2二:第一个工程_第3张图片

图5:运行报错提示

报错如上图所示,经过大量的实验后发现,鼠标右键->以管理员身份运行就可以打开了,或者打开CMD界面,将图标拖拽进去Enter也可以打开,真是简单到想哭。

建立第一个工程

本次实验很大程度参考了Mculover666的博客因此有部分内容会省略,以避免重复。

添加PYNQ-Z2的配置信息

将PYNQ-Z2文件夹添加到下面的根目录下,安装目录不同而不同
E:\Xilinx\Vivado\2019.1\data\boards\board_files重新打开vivado软件即可。
PYNQ Z2二:第一个工程_第4张图片

图6:PYNQ-Z2文件夹内部文件

如图6所示为PYNQ-Z2文件夹内部文件。

添加引脚约束文件XDC

官网下载链接

实验具体步骤参考
ALINX_ZYNQ开发平台基础教程V1.02 第四章:PL的“Hello World”LED实验,需要注意的有以下几点:

XDC存储的是对工程的管脚约束和时许约束,本人在添加完XDC文件后因为第一次使用vivado所以对XDC的用途不是很清楚,所以添加完XDC文件后直接跑synthesis、implementation和generate bitstream

本人在这里弄了很久都不行,最后本人通过引脚连接自己编写XDC文件才成功生成ledbit文件。

PYNQ Z2二:第一个工程_第5张图片

图7:LED引脚定义1

LED引脚定义2

图8:LED引脚定义2

LED引脚定义3

图9:LED引脚定义3

LED引脚定义4

图10:LED引脚定义4

如上图7、8、9、10所示是PYNQ-Z2的引脚定义,进行管脚约束和时许约束后的XDC文件如图11所示:

PYNQ Z2二:第一个工程_第6张图片

图11:XDC文件

虽然最后成功了,但是一直不知道前面哪里出错了,好难受。

串口通讯

串口对应的引脚号

图12:串口对应的引脚号

串口对应的引脚号。为《MIO14、MIO15》
补充:通过Board File中的part0_pin文件可以很轻松的查询到PYNQ-Z2的引脚定义,如图13所示:
PYNQ Z2二:第一个工程_第7张图片

图13:Board File中的part0_pin文件

PYNQ Z2二:第一个工程_第8张图片

图14:根据引脚定义选择合适的UART0

这里我们选择UART0,如上图14所示.

PYNQ Z2二:第一个工程_第9张图片

图15:硬件设计的信息

Launch SDK后可以看到硬件设计的信息,包括目标芯片型号,设计软件版本和设计日期,还有可供开发使用的PS端外设的寄存器列表。

注:每次修改SDK中的C文件后都要Save All并Project->Build All,代码无错误,编译通过才可以写入,否则会写入上一次的程序。

PYNQ Z2二:第一个工程_第10张图片

图16

如图16所示,在修改三次代码后才编译通过,写入成功。

PYNQ Z2二:第一个工程_第11张图片

图17:修改后的代码

如图所示为修改后的代码,打印不同进制数。

你可能感兴趣的:(PYNQ,Z2学习)