【PYNQ Lab1 】PYNQ框架初识 PYNQ学习心得总结

PYNQ简介

PYNQ 是 一种框架,可以简单理解为ZYNQ上的python。PYNQ是Xilinx的一个开源项目,其硬件本质还是ZYNQ。很多人以为PYNQ是独立的一种开发板,但其实其pynq最初本质就是代码框架,并没有实体架构的,现在出的PYNQ -Z2 Z1本质上其实还是ZYNQ芯片。

PYNQ的优势:

PYNQ的优势是减少了RTL级别开发的难度,使得现在主流Pyhton可以加入到硬件开发这一领域中,并且大量的python库函数可以方便使用。简单来说使用PYNQ会减少开发周期,大大提高ZYNQ开发速度。并且使用更多丰富的库。

PYNQ的内部实现要点:

  1. 硬件库 overlay。
  2. pynq使用python对处理器和overlay进行编程。
  3. pynq是基于web的体系架构,pynq并入了开源的Jupyter notebook架构。可以直接在Zynq的ARM上运行 IPython 内核和web服务器。也就是说我们主要通过web浏览器对其进行编程。

要注意的点:

PYNQ并不是通过Python语言对FPGA直接编程,而是一种从python到RTL的映射,内部实现仍然是RTL的,只是向上封装了一套接口,提供给python语言。

PYNQ架构:

在这里插入图片描述

主要是分四层:

1.FPGA硬件层
2.Linux内核
3.python软件层
4.jupyter notebook的应用层

硬件层:主要还是Zynq那一套 PL+PS,但是现在整个关于fpga的部分被称作 overlay,面向多用户生成不同的bitstream,可以通过软件API调用,动态切换FPGA的一些功能。
软件层:其运行在ZYNQ的PS里面。主要是由Ubuntu系统内的python组成。PYNQ的API库则提供了连接软硬件的功能,这使得我们可以从python访问到硬件资源。
应用层主要由运行在 Python 之上的 Jupyter Notebook 和 IPython 构成。Jupyter Notebook 是一个基于浏览器的交互式计算环境,基于Python 内核和 Websocket 协议。在 Jupyter Notebook 提供的环境中,可以在其中记录代码、运行代码并查看结果,可视化数据分析并查看输出结果。这些特性使其成为一款执行端到端数据科学工作流程的便捷工具,可以用于数据清理、统计建模、构建和训练机器学习模型,可视化数据以及许多其他用途。通过 Jupyter 创建的交互式 notebook 文档,支持实时代码、交互式小部件、绘图、Markdown、方程式、图像和视频。

注意:PYNQ同时包含了软件驱动和硬件驱动,所以必需同时部署二者才能正常工作。

关于Overlay

Overlay相当于一种模式的IP, 但是在PYNQ下,fpga的一些PL设计叫做Overlay。可以用Python接口来编程和控制overlay。默认启动时会下载base的overlay到PL中。base overlay相当于是开发板的参考设计。

新的overlay可以上传或者复制到开发板上。并且可以在系统运行的时候加载到PL中。

Overlay主要三部分:

  1. 配置FPGA的bit流文件
  2. tcl文件,配置IP的hwh文件
  3. Python的API

实例:

from pynq import Overlay
overlay_design = Overlay("base.bit")

更多学习资源:

http://www.pynq.io/
https://pynq.readthedocs.io/en/latest/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值