PYNQ Z2二:第一个工程
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实验的指导下,完成了本次实验,因为PYNQ与ZYNQ终归是有些区别的,在具体实验过程中要懂得灵活做出改动。
下载安装vivado
个人建议前往官网下载
本人下载的当前最新版本2019.1

| 图1:vivado2019.1下载 |
|---|
先下载WebPACK,要注册账号,和填一些下载信息

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

| 图3:应用图标 |
|---|
安装完成后如图3所示。

| 图4:操作系统规格 |
|---|
系统版本如图4所示,除了DocNav外其他都打不开,在网上看了很多攻略,但是参考意义较小。

| 图5:运行报错提示 |
|---|
报错如上图所示,经过大量的实验后发现,鼠标右键->以管理员身份运行就可以打开了,或者打开CMD界面,将图标拖拽进去Enter也可以打开,真是简单到想哭。
建立第一个工程
本次实验很大程度参考了Mculover666的博客因此有部分内容会省略,以避免重复。
添加PYNQ-Z2的配置信息
将PYNQ-Z2文件夹添加到下面的根目录下,安装目录不同而不同
E:\Xilinx\Vivado\2019.1\data\boards\board_files重新打开vivado软件即可。

| 图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文件。

| 图7:LED引脚定义1 |
|---|

| 图8:LED引脚定义2 |
|---|

| 图9:LED引脚定义3 |
|---|

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

| 图11:XDC文件 |
|---|
虽然最后成功了,但是一直不知道前面哪里出错了,好难受。
串口通讯

| 图12:串口对应的引脚号 |
|---|
串口对应的引脚号。为《MIO14、MIO15》
补充:通过Board File中的part0_pin文件可以很轻松的查询到PYNQ-Z2的引脚定义,如图13所示:

| 图13:Board File中的part0_pin文件 |
|---|

| 图14:根据引脚定义选择合适的UART0 |
|---|
这里我们选择UART0,如上图14所示.

| 图15:硬件设计的信息 |
|---|
Launch SDK后可以看到硬件设计的信息,包括目标芯片型号,设计软件版本和设计日期,还有可供开发使用的PS端外设的寄存器列表。
注:每次修改SDK中的C文件后都要Save All并Project->Build All,代码无错误,编译通过才可以写入,否则会写入上一次的程序。

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

| 图17:修改后的代码 |
|---|
如图所示为修改后的代码,打印不同进制数。
本文详细介绍了使用PYNQZ2进行第一个工程HelloWorld实验的全过程,包括Vivado的下载安装、工程建立、配置信息添加、引脚约束文件XDC的创建及串口通讯实现。
1240





