当前位置: 首页 > article >正文

PYNQ2.7镜像直接升级成3.0以支持XCV(Xilinx Virtual Cable)

文章目录

  • 确保ZYNQ开发板可以联网
    • 电脑共享
    • 开发板配置
  • 安装PYNQ3.0环境
  • 检查环境能否正常运行

前段时间使用PYNQ进行开发时碰到一个很奇怪的bug,想要查看overlay实际运行时的波形,但发现似乎PYNQ的库中并没有提供在线调试的接口。后面经过查找资料发现pynq3.0中增加了对XVC的支持,但目前我使用的版本是2.7,官方提供的PYNQZ2镜像在我的正点原子领航者ZYNQ7020上无法开机,于是考虑能否在2.7的基础上直接将PYNQ升级为3.0,升级过程中遇到了一些问题,但最终可以成功支持XCV,于是写下这篇博客进行记录。

下面是一些说明

  1. 官方镜像无法开机,我也尝试过将官方镜像中BOOT.bin文件替换成目前镜像中的BOOT.bin,尽管这样可以开机,但是PYNQ的环境仍然存在问题
  2. 我使用的2.7镜像是由正点原子提供,该镜像的下载链接可以参考 ZYNQ领航者V2开发板 — 正点原子资料下载中心 1.0.0 文档,登陆密码是 xilinx
  3. 确保ZYNQ开发板可以联网

确保ZYNQ开发板可以联网

可以输入命令 ping www.baidu.com -c 5 来检查开发板能否联网,如果开发板无法联网,可以参考下面的方式

最开始让zynq板子联网的方式是利用Clash自带的允许局域网代理的功能,让ZYNQ挂代理,但不知道为什么,pip在设置代理的时候无法安装包,报下面的错误。考虑换一种方式,这里使用Windows自带的网络共享的功能

Could not find a version that satisfies the requirement xxx

电脑共享

主要思路是将可以访问互联网的无线网卡的网络共享给以太网接口。
打开控制面板->网络和Internet->网络和共享中心->更改适配器设置,找到无线网卡对应的适配器,右击打开属性,点击共享,按照下面的图进行勾选,需要注意的是家庭网络连接那一栏需要填写需要共享的适配器,这里是以太网。
在这里插入图片描述

开发板配置

需要注意的是,开启该功能后,电脑以太网适配器的IP地址会被修改,我这里是 192.168.137.1。如果ZYNQ开发板的IP地址是静态IP,那需要使用命令ifconfig eth0 192.168.137.x 将其IP修改为同网段,这里x可以自己定义。由于我的ZYNQ开发板是DHCP协议动态分配的,所以这里不需要修改。可以使用ping命令确保主机和开发板之间可以通信。
接下来是配置网关和DNS。
使用下面的命令来配置网关:

route add default gw 192.168.137.1

我做完这一步后,开发板已经可以联网,因此不再配置DNS,如有需要请自行上网搜索.
可以使用 ping baidu.com 来检查是否联网

安装PYNQ3.0环境

需要注意的是,pynq2.7之后的版本中,Pynq 和 jupyter 均运行在虚拟环境中(venv),虚拟环境路径为 /usr/local/share/pynq-venv/,在命令行输入python3和pip3均指向的是虚拟环境,可以输入 which python3which pip3 来检查

使用下面的命令安装pynq3.0

pip3 install pynq==3.0.1 -i https://pypi.tuna.tsinghua.edu.cn/simple

直接这么安装会报错:

请添加图片描述

乍一看是Python环境中缺失了 pynqutils 这个库,但如果直接输入 pip3 install pynqutils -i https://pypi.tuna.tsinghua.edu.cn/simple 安装,再次安装 pynq3.0.1 还是会报这个错。仔细查看错误信息,似乎是原本的python3.8环境(/usr/lib/python3/dist-packages/)中缺失了 pynqutils,而不是虚拟环境,但 pip3 明明指向的是虚拟环境中的,但安装时却仍然需要原本的python3.8环境中有 pynqutils,不管怎么说,在原本的python3.8环境中安装 pynqutils 即可。

输入 whereis pip3,找到原本的python3.8环境的pip3,我这里是 /usr/bin/pip3,输入下面命令

/usr/bin/pip3 install pynqutils -i https://pypi.tuna.tsinghua.edu.cn/simple

接下来重新安装 pynq3.0.1,即可安装成功

pip3 install pynq==3.0.1 -i https://pypi.tuna.tsinghua.edu.cn/simple

检查环境能否正常运行

新建一个 ipynb 文件,输入下面的代码运行

from pynq import allocate, MMIO
from pynq import Overlay
from pynq.lib.debugbridge import DebugBridge

会输出下面的警告:

请添加图片描述

第一个警告主要是目前 pydantic 的版本中移除了对应的字段,使用下面的命令安装旧版本的即可

pip3 install pydantic==1.10.19 -i https://pypi.tuna.tsinghua.edu.cn/simple

第二个警告主要是库文件 xrt_device.py 中下面的代码运行错误

请添加图片描述

其实目前环境中存在 xbutil,只是不支持 --version 这个选项,这里直接修改该函数,注释掉所有的代码,直接 return (0, 0, 0)

修改后再次运行代码,不再报警告。

参考博客基于ILA+DebugBridge(XVC)的ZYNQ在线调试生成位流,运行下面的代码,检查环境能否正确运行

xvc_test = Overlay("./xvc_test.bit")
print(xvc_test.is_loaded())
db = DebugBridge(xvc_test.ip_dict['debug_bridge_0'])
# 启动XVC服务器,指定参数来配置服务器的缓冲区长度、地址、端口、重连选项和输出模式
db.start_xvc_server(bufferLen=4096, serverAddress="192.168.137.19", serverPort=2542, reconnect=True, verbose=True)

注意 serverAddress 需要为开发板的IP地址,运行成功会输出 XVC server started,打开 Vivado 可以成功连接该开发板

不使用时记得关闭xvc服务器

db.stop_xvc_server()

http://www.kler.cn/a/453421.html

相关文章:

  • 【自留】Unity VR入门
  • VBA技术资料MF243:利用第三方软件复制PDF数据到EXCEL
  • mac_录屏
  • 5.近实时数仓数据更新和ID 管理上的优化方案
  • 网络安全词云图与技术浅谈
  • Linux:SystemV通信
  • 代码随想录-笔记-其八
  • Jenkins 任意文件读取(CVE-2024-23897)修复及复现
  • 【Vue3学习】使用ref调用子组件的方法,实现子组件的显示与隐藏
  • HarmonyOS NEXT 实战之元服务:静态案例效果---歌单推荐
  • 如何在 Linux 上使用 Rsync 同步本地和远程目录
  • 机器学习之pandas
  • 多功能jquery图片预览放大镜插件
  • 【C++动态规划】1105. 填充书架|2104
  • Unity功能模块一对话系统(1)前置准备
  • 08-排序
  • 题目解析与Python实现:D. Lizards and Basements 2
  • 【golang】map遍历注意事项
  • JVM【Java虚拟机】基础知识(五)
  • ChatGPT与Postman协作完成接口测试(三)
  • 【人工智能】基于Python与Keras的图像风格迁移实现与解析
  • 典型常见的基于知识蒸馏的目标检测方法总结一
  • 每天40分玩转Django:Django部署概述
  • 用微软365邮箱收发邮件【azure-应用注册】
  • 如何通过HTTP API检索Doc
  • 3D坐标下,一点在某一线段上的左右方向的判定