本文转载自:硬码农二毛哥微信公众号
完成在Ubuntu18.04上安装Vivado Vitis Petalinux 2020.1后,下一步在自定义单板创建PYNQ镜像。
PYNQ简介
PYNQ结合了Zynq与Python的优势,是机器学习/人工智能、边缘计算、大数据处理等算法加速的优秀平台。PYNQ这个名字来自于Python productivity for Zynq,PYNQ使用Python语言简化了Zynq应用程序开发过程。
PYNQ框架由硬件、软件和应用三层组成。在应用层PYNQ框架使用Python在Jupter notebooks开发应用程序,可以方便的调用各种Python库。在软件层,包含Python软件、基于Linux的操作系统和驱动。在硬件层,Overlays,或者硬件库,通过它们用户可以把Zynq处理系统上应用扩展到可编程逻辑层面。PYNQ提供一个Python交互界面,通过Python直接调用overlays。用户可以使用已有的overlays,也可以自己开发overlays。通过overlays可以对特定功能进行加速。
在开发过程中,将生成的PYNQ镜像烧写到SD卡中,SD卡插入单板,上电启动,笔记本电脑通过网线与单板连接,通过Jupternotebook编程控制单板。PYNQ框架支持所有Zynq7000和ZynqMpsoc系列器件。
构建环境与工具
Ubuntu18.04
Vivado 2020.1
Petalinux 2020.1
Pynq2.6.0
下载离线镜像pynq_rootfs_aarch64
安装过程参照在[Ubuntu18.04上安装Vivado Vitis Petalinux 2020.1]。
从Xilinx GitHub下载Pynq组件:
git clone https://github.com/Xilinx/PYNQ.git cd PYNQ git checkout v2.6.0 git checkout -b fzu3
PYNQ组件中包含如下文件夹:
设置环境变量
~/.bashrc中加入如下代码,以后每次打开一个新终端,都会自动加载。
source /tools/Xilinx/Vivado/2020.1/settings64.sh source /tools/Xilinx/PetaLinux/2020.1/settings.sh source /tools/Xilinx/Vitis/2020.1/settings64.sh export PATH=/opt/qemu/bin:/opt/crosstool-ng/bin:$PATH
在PYNQ/sdbuild/scripts中运行
source setup_host.sh
开始构建
将pynq_rootfs_aarch64解压后的文件bionic.aarch64.2.6.0_2020_10_19拷贝到/sdbuild/prebuild文件夹中。
在 ./PYNQ/boards/ 目录下新建文件夹 fzu3
在 fzu3 中再新建两个文件夹分别为 base 和petalinux_bsp
在 petalinux_bsp 中再建立文件夹 hardware_project
将工程中的bit文件重名为base.bit拷贝到base
fzu3.xsa拷贝到hardware_project
在fzu3文件夹中新建fzu3.spec文件,在fzu3.spec中填入内容如下:
ARCH_fzu3 := aarch64 BSP_fzu3 := BITSTREAM_fzu3 := FPGA_MANAGER_fzu3 := 1 STAGE4_PACKAGES_fzu3 := pynq ethernet
在sdbulid文件夹运行命令开始构建
makeBOARDS=fzu3 PREBUILT=./prebuilt/bionic.aarch64.2.6.0_2020_10_19.img
如果构建出错,可以使用如下指令清除构建的文件:
make delete make unmount make clean
烧写
在./PYNQ/sdbuild/output文件夹中,运行指令,将镜像烧写到sd卡:
df -h sudo dd if=fzu3-2.6.0.img of=/dev/sdb bs=4M