PYNQ系列学习(二)——pynq与zynq对比(一)

Zynq可扩展处理平台是赛灵思新一代 FPGA的可编程技术的产品系列。与采用嵌入式处理器的FPGA不同,Zynq产品系列的处理系统不仅能在开机时启动,而且还可根据需要配置可编程逻辑。采用这种方法,软件编程模式与全功能的标准ARM处理SoC毫无二致。
与之相关和不同的是,PYNQ = Python + ZYNQ,即将ZYNQ部分功能的Python化,直接调用Python库和FPGA硬件库进行功能的开发。
1. 实例图片
下面是ZYNQ系列与PYNQ系列中两款具有代表性的开发板:
ZYNQ系列——ZYNQ7000

PYNQ系列——PYNQ_z2

2. ZYNQ优点
1. 一般基于C/C++开发,功能更全面、扩展性更强。

2. ZYNQ相比于PYNQ更成熟,相关的学习教程较多,便于学习与开发过程中问题的解决
3. PYNQ优点
1、Python用于ZYNQ开发,Python库和FPGA硬件库可以直接调用,极大加快开发进程、缩短开发周期、降低开发难度,更方便、快捷;使用 Jupyter 在线编程工具,简单易行。
下面是小编利用python语言编写的简单函数:

下面是jupyter_notebook界面,简单易操作:

2. 用PYNQ开发,当Python有更加有效的可用库时(如图像处理—OpenCV),其性能要比C/C++开发更强。

下面是利用opencv库,所编写的人脸检测代码的一部分:

运行结果:

4. 总结
通过以上介绍,我们可以总结出ZYNQ与PYNQ的区别与联系:PYNQ是ZYNQ与python库的结合,前者学习与开发性较好,而后者的功能多样性与扩展性更好。
因此,在二者使用的选取上,可以分别从以下角度考虑:
1. 要用于个人学习与开发,PYNQ的功能(如嵌入式、AI终端实现等)应该完全足够。(一般用Python应该就够了,需要的话再结合C/C++、设计新的硬件库等);
2. 若要研发类似PYNQ的板子,可以借鉴:在ZYNQ基础上加入Python内核和Python编译环境的网络服务器以及FPGA硬件库等。
PYNQ系列学习(二)——pynq与zynq对比(一)的更多相关文章
- EasyUI系列学习(二)-使用EasyUI
一.引入必要文件 <!--1.0引入jQuery核心库--> <script src="jquery-easyui-1.4.4/jquery.min.js"> ...
- Java系列学习(二)-配置开发环境
1.设置系统环境变量 1.1.设置JDK的Path路径 作用:通过path环境变量,将JDK安装目录下的bin目录配置到path变量下,可使javac指令和java指令在任意目录下运行 方法一:直 ...
- 【lucene系列学习二】Lucene实现高亮显示关键词
首先,导入下图所示库 然后,import org.apache.lucene.search.highlight.*; 下面,我们新建一个实现高亮显示功能的函数 public static String ...
- CISCO、H3C、华为三层交换机端口二三层切换命令对比
很多人都在问H3C是否有像CISCO三层端口切换类似的命令 switchport . 答案是肯定的.有.很多人都不知道. 其实无论是思科还是H3C还是华为他们都有这样的命令.但是在H3C和华为中不经常 ...
- SVN系列学习(二)-小乌龟的安装与配置
1.TortoiseSVN的介绍 TortoiseSVN是Subversion版本控制系统的一个免费开源客户端,可以超越时间的管理文件和目录. 2.TortoiseSVN的安装 下载地址:http:/ ...
- NHibernate系列学习(二)-使用sql和hql以及linq
1.本文主要介绍了NH的三种查询方式 2.界面查看 3.代码架构 4.代码详情 namespace KimismeDemo { public partial class Form2 : Form { ...
- MVC系列学习(二)-初步了解ORM框架-EF
1.新建 一个控制台项目 2.添加一个数据项 a.选择数据库 注:数据库中的表如下: b.选择EF版本 c.选择表 3.初步了解EF框架 看到了多了一个以 edmx后缀的文件 在edmx文件上,右击打 ...
- rdb和aof二种持久化方式对比(Redis)
我们已经知道对于一个企业级的redis架构来说,持久化是不可减少的 企业级redis集群架构:海量数据.高并发.高可用 持久化主要是做灾难恢复,数据恢复,也可以归类到高可用的一个环节里面去 比如你re ...
- Maven系列学习(二)Maven使用入门
Maven使用入门 通过上一节的学习,我们已经了解和配置好了Maven,接下来需要编写代码了 1.POM(Project Object Model,项目对象模型) 和Make的Makefile类似,M ...
随机推荐
- javascript动态添加html节点
之前一直没怎么接触需要动态添加和删除html节点的项目,这次项目中用到了,也学习了. 在一个<table id="tab">标签中添加一个<tr id=" ...
- Nginx安装与配置文件nginx.conf详解
引用“http://ixdba.blog.51cto.com/2895551/790611” 1.安装Nginx在安装Nginx之前,需确保系统已经安装了gcc. openssl-devel. pcr ...
- Scyther Advanced Topics
建立非对称秘钥对 声明一个公钥函数和一个私钥函数: const pk2: Function ; const sk2: Function : 我们还声明这些函数代表非对称密钥对: inversekeys ...
- roles
nginx 官方下载 [root@ansible roles]# tree yngx yngx ├── defaults ├── files │ ├── blog.conf │ ├── edu ...
- lombok自定义扩展实践
lombok是一款能够在java代码编译阶段改变代码的插件.比如生成setter和getter方法,生成log类变量等,能够简化一些特定的模版式代码.本文将以实现一个基于特定注解生成日志代码的方式,简 ...
- STL的sort函数是使用什么排序算法的?
先占坑,大概就是主要快速排序+插入排序+堆排序的合体
- linux crontab 鉴定令牌不再有效,需要新的鉴定令牌 [ You (root) are not allowed to access to (crontab) because of pam configuration.]
用户root 解决方法: 用root用户,执行 chage -M 99999 root 更改有效期为99999天.
- Pthon操作Gitlab API----批量删除,创建,取消保护
1.需求:大批量的应用上线后合并到Master,其他的分支develop/test/uat等需要同步最新代码的操作. 2.操作:可以通过传参 ,列表 的方式把每个项目的id值填入,才能对相关项目进行批 ...
- 多任务3(协程)--yield完成多任务交替执行
协程是并发,单线程,一次执行一个 来回切换 代码: import time def task_1(): while True: print("-----1-----") time. ...
- 阿里云轻量级服务器和NGINX部署Django项目
部署条件: 1.一台阿里云服务器(本人的是CentOS系统的服务器) 2.已经构建好的项目 3.服务器上安装并配置Nginx 首先第一步:在服务器上安装并配置Nginx 进入服务器 $ ssh roo ...