如何为自己的ZYNQ板卡创建Pynq镜像

xilinx pynq 框架允许我们将 python 和可编程逻辑结合起来。让我们看看如何为自己的zynq板卡创建 pynq 镜像。
介绍
python 是目前最热门的编程语言之一(python是一种高级编程语言,由guido van rossum于1991年开发。它具有简洁、易读、易学的特点,被广泛应用于各个领域的软件开发。),我们希望能够在 fpga/soc 开发中利用使用 python 带来的生产力红利。
xilinx pynq 框架允许开发人员做到这一点,利用 python 使用可编程逻辑的进行加速。
在 pynq 框架内,可编程逻辑设计称为overlays(覆盖层),并被视为硬件库。虽然创建新的overlays需要 fpga 设计经验,但越来越多的开源overlays可供开发人员使用 ( http://www.pynq.io/community.html )
然而,有时我们需要不同或自定义板的 pynq 映像,让我们看看如何为自己的z7010 板创建 pynq 镜像。
创建环境
我们需要做的第一件事是创建一个虚拟机,配置如下:
ubuntu 16.04
4 个处理器核心
至少 8 g 内存
至少 300 g 硬盘空间
配置机器进行无密码 sudo 操作
虚拟机启动并运行后,我们需要做的下一件事是安装构建 pynq 所需的应用程序。
需要什么工具?
要创建 pynq 映像,我们需要在 linux 虚拟机上安装以下工具
vivado 2018.2
sdk 2018.2
petalinux 2018.2
我们还需要使用以下命令从 xilinx github 克隆 pynq 存储库。
git clone https://github.com/xilinx/pynq.git  
clone pynq 存储库后,将能够看到包含许多文件夹的 pynq 目录。
boards - 现有主板规格、juypter notebook 和基础覆盖层
doc - 文档来源
pynq - python 和相关的支持文件
sdbuild - 包含构建 pynq 映像的所有脚本和资源
要正确设置我们的构建环境,下一步是在目录中运行设置环境脚本(setup_host.sh)
pynq/sdbuild/scripts
一旦这个脚本运行完成,接下来我们确保可以重建现有的主板(确保环境无问题)。
在这种情况下,决定重建 pynq z1 映像,为此我将目录更改为 sdbuild 目录并运行命令
make boards=pynq-z1   
将启动镜像创建过程
构建过程可能需要一段时间(如果速度很慢,请检查分配给虚拟机的处理器数量)。完成后 sdbuild 目录下有一个输出目录。
在此将找到 pynq-z1 镜像
现在我们知道我们可以重新创建 pynq 镜像来开发我们的自定义镜像。
构建基础覆盖层
pynq 构建首先需要的东西之一是基础覆盖层。对于自己的开发板,我们将使用 pynq z1 镜像作为起点。
打开 vivado (2018.2) 并在 vivado tcl 窗口中获取以下脚本。可以在目录中找到它们
boards/pynq-z1/base
source build_base_ip.tcl source base.tcl   
第一个命令将生成必要的 ip,而第二个命令将在 vivado 项目中重新创建设计。
现在我们需要做的就是更改设备型号(fpga型号)。
根据板卡外设添加自己的外设到工程中,其中包括
pmod a
pmod b
tri-coloured leds
switches (push buttons on the cora)
i2c interface
spi interface
然而,由于我们可用的资源较少,我们需要删除一些功能。最终的基础平台如下。
然后,在 vivado 中生成bit,以确保设计符合我们的设计
此步骤的目的是确保新的基础平台适合 zynq 7010 器件,并允许重新生成我们用于自定义板卡的base.tcl 。
创建新板
生成镜像之前的最后一步是在目录下创建一个新板
pynq/boards
创建新板需要创建一个以目标板命名的新目录,在本例中为 cora。
在此目录中,我们还需要创建几个目录和板规范。
电路板规格是一个文本文件,包含以下信息
目录是:
base - 这包含基础覆盖层和相关的设计信息notebooks - 这包含 juypter notebookspetalinux_bsp - linux bsp
使用 pynq z1 作为每个目录的模板,根据 cora 板(自己的板卡)和较小的 7010 设备的需要更新 tcl、xdc 和 python 文件。
使用基本目录中的 make 脚本生成基本设计的位文件。
当上面所有操作完成后,可以使用 sdbuild 目录中的命令启动 pynq 构建
make boards=cora   
同样,这需要一段时间才能结束,但结果将与之前相同
硬件测试
启动时要监控的是串口输出,通过串口打印能监控到 pynq 的启动是否正确。
fpga 启动 pynq 映像后,下一步是检查 fpga 能否连接到网络,以便可以访问 jupyter notebooks。
$ ifconfig   
最后阶段是测试 jupyter notebooks。在与 pynq 位于同一网络的计算机上打开浏览器并输入网址 pynq:9090
将进入登录屏幕,密码是 xilinx
登录后,将看到笔记本和目录
一旦我们点击一个notebook,它就会开始运行,我们可以通过点击运行选项来看到正在运行的notebook。
如果需要,我们还可以在 jupyter 环境中打开终端窗口
看起来 pynq 环境已在我们自己的板上启动并运行,我们现在可以根据需要开始开发解决方案和覆盖层。


手机电池临时故障解决技术
东京大学研究出超薄柔性纳米纤维压力传感器
小米随身电筒照明和手机充电两不误,仅售价79元
Windows10推送v19564.1000版本 日历APP获全新设计
斯坦德机器人柔性物流升级,「5G」智造全面来袭!
如何为自己的ZYNQ板卡创建Pynq镜像
土壤氮磷钾分析仪的特点及技术指标
品牌运动耳机排行榜,2020年运动蓝牙耳机推荐
2018人工智能商业价值TOP100榜单出炉,AI独角兽深兰科技强势入围
城市管网污水监测方案,科技助力污水排放管理!
三星将为Note7推送“死亡升级”,网友们沸腾了
使用Docker安装WordPress教程
耳机功放电路的原理是怎么样的
四通道超声探伤卡的硬件设计
纳米尺度下的光和物质强耦合系统的研究
三星S8工业设计确实完美,但有一点和苹果差距有点大!
POE网络摄像机/头怎样浪涌静电保护?TVS/ESD二极管如何选型选用?
万用表表笔性能用途
安徽中韩(池州)国际合作半导体产业园揭牌
小身板 大力量!SK1声卡将引领手机直播时代