文章用于学习记录
前言
- PYNQ 即 python+ZYNQ ,ZYNQ 分为 PS 和 PL 两个部分。PS 有两个 ARM 的核,在上面运行 linux 操作系统,在操作系统上再运行 python。PL 部分就是 FPGA 的逻辑资源,开发者在 PL 中添加 IP 或者将自己用 C 或者 HDL 语言写好的模块封装成 IP,这些 IP 都被连接到 PS 端,一般都是通过 AXI 总线。
- PYNQ 有一个特有的库叫 overlay,使用这个库可以对连接到 PS 端的接口进行解析,进而控制 FPGA 逻辑资源及 IO。每次当你需要开始一个新的涉及 PL 端的开发的时候,先在 vivado 里面建一个工程,添加你需要的各种 IP,然后以 ZYNQ 为核心连接的设计,经过编译后,生成一个 bit 文件和一个 tcl 文件。bit 文件就是你的硬件设计,tcl 文件描述了接口关系。将这两个文件复制到 PYNQ 的目录下,即可进行调用。
一、PYNQ-Z2 开发板板卡介绍
- PYNQ-Z2 开发板以 ZYNQ XC7Z020 FPGA 为核心,配备有以太网,HDMI 输入/输出,MIC 输入,音频输出,Arduino 接口,树莓派接口,2 个 Pmod,用户 LED,按钮和开关。兼容树莓派连接器、Arduino 屏蔽连接器以及 Pmod 连接器可以支持多种配件拓展,同时这些接口也可以用作 GPIO。
- PYNQ-Z2 开发板是 PYNQ 开源框架的硬件平台。在 ARM A9 CPU 上运行的软件包括:
- 载有 Jupyter Notebooks 设计环境的网络服务器
- IPython 内核和程序包
- Linux
- FPGA
二、环境配置与板卡启动
1. 软硬件准备
硬件:PC、PYNQ-Z2 开发板、以太网线、Micro USB 数据线、电源(7~15V)、8G 以上 Micro SD 卡及读卡器;
软件:镜像烧写软件(如 Win32DiskImager)、vivado/HLS:2018、PYNQ 系统镜像、支持 Jupyter 浏览器;
2. 烧写镜像
-
下载 PYNQ-Z2 镜像文件并解压
-
安装镜像烧写软件 Win32DiskImager
-
将插入SD 卡的读卡器插入电脑,烧写镜像文件
-
Windows 系统:使用 win32DiskImager 烧写。Image File 选择下载好的镜像文件,Device 选择 SD 卡的位置。
-
烧写完成后, 将显示写入成功。
-
3. 连接 PC,上电启动
- 将 Boot 跳线设置为 SD 位置。(这会将电路板设置为从 Micro-SD 卡启动);
- Micro-USB 为板卡供电,将电源跳线设置到 USB 位置(也可以通过跳线设置为REG,从外部 12V 电源调节器为板卡供电);
- 将装有 PYNQ-Z2 镜像的 Micro SD 卡插入板卡下方的 Micro SD 卡插槽中;
- 使用 Micro USB 线将 PYNQ 开发板的 PROG UART(J14)接口连接到电脑。这将用来给 PYNQ 供电以及作为串口通信;
- 使用网线将 PYNQ 开发板连接到路由器或电脑(根据网线端口的选择,后续操作会有不同);
- 将开关拨到 ON 以打开 PYNQ,等待系统启动。大约一分钟后将有两个蓝色的LED 和四个黄绿色的 LED 同时闪动,随后蓝色 LED 关闭,四个黄绿色的 LED 灯亮,此时系统启动完毕。
PYNQ 启动
三、给电脑配置一个静态的 IP
- 如果 PYNQ 通过网线连接到了电脑,需要先设置电脑的 IP 地址,将 pc 端的 IP 地址改为192.168.2.100
- 选择网络和 Internet > 以太网,
- 选择IPV4的设置,点击编辑,
- 将其改为192.168.2.x(不是99就可以了,不然和开发板的重复了),
- 子网掩码默认都是255.255.255.0,网关不用管,然后保存。
四、连接到 Jupyter
- 访问 http://192.168.2.99:9090,密码为 xilinx
- 登录成功
五、Samba 文件共享
-
在 Windows 下访问 PYNQ 主目录,在文件资源管理器输入\\192.168.2.99,可以实现文件在板子和电脑间传递,Samba 服务器的用户名和密码都是 xilinx。
-
点击“确定”按钮后,会显示 PYNQ 的默认用户“xilinx” 的用户文件夹
-
该文件夹对应开发板的 /home/xilinx 目录
六、例程测试
-
实验一:按键控制 LED文章来源:https://www.toymoban.com/news/detail-703289.html
- 打开 base>board 文件夹中的 board_btn_leds.ipynb 文件。点击工具栏的 run 图标或者选择 Cell->Run 运行代码代码如下(示例):
- 这个项目中,按下 PYNQ 开发板上的按键 0 可改变彩色 LED 的颜色,按键 1 可开启从右到左的流水灯,按键 2 可开启从左到右的流水灯,按键 3 结束运行。
from time import sleep from pynq.overlays.base import BaseOverlay base = BaseOverlay("base.bit") Delay1 = 0.3 Delay2 = 0.1 color = 0 #定义寄存器 rgbled_position = [4,5] for led in base.leds: led.on() while (base.buttons[3].read()==0): if (base.buttons[0].read()==1) color = (color+1) % 8 for led in rgbled_position: base.rgbleds[led].write(color) base.rgbleds[led].write(color) sleep(Delay1) elif (base.buttons[1].read()==1): for led in base.leds: led.off() sleep(Delay2) for led in base.leds: led.toggle() sleep(Delay2) elif (base.buttons[2].read()==1): for led in reversed(base.leds): led.off() sleep(Delay2) for led in reversed(base.leds): led.toggle() sleep(Delay2) print('End of this demo ...') for led in base.leds: led.off() for led in rgbled_position: base.rgbleds[led].off()
按键控制 LED文章来源地址https://www.toymoban.com/news/detail-703289.html
- 实验一:动态实时面部识别
- 将 PYNQ 开发板的 USB HOST 连接 USB 摄像头,PYNQ 开发板的 HDMI OUT 连接到显示器。
- 打开 base>video 文件夹下的 opencv_face_detect_webcam.ipynb,依次运行。
总结
以上就是 PYNQ-Z2 环境搭建与测试过程。
到了这里,关于PYNQ-Z2 镜像烧录&设备启动&网络设置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!