Zynq发展历史

Zynq是由全球最大的可编程逻辑平台供应商,Xilinx,在2011年末发布的具有崭新架构的芯片。熟悉FPGA技术领域的朋友应该了解Xilinx在可编程逻辑界的地位。但是,从Zynq架构的角度来看,它不能被称之为传统的FPGA芯片。Zynq的架构可以通过以下公式来表示:

Zynq = ARM + FPGA

Zynq是世界上首款将高性能ARM Cortex A9核和可编程逻辑FPGA集成到一起的器件。之所以说Zynq不能被称为FPGA,是因为在Zynq中起到核心控制和管理地位的,其实是ARM核芯片,而FPGA可以看作是ARM芯片的外围器件。

迄今为止,Xilinx公司已经发布了两种不同类型的Zynq芯片,分别是Zynq-7000 AP SoCZynq UltraScale+ MPSoC。后者是前者的进化版,Zynq-7000 AP SoC的处理器内核是双核ARM Cortex A9,,而Zynq UltraScale+ MPSoC的内核变成了四核的ARM Cortex A53,而且额外增加了GPU,视频编解码器等,外设资源也更丰富了。简单来说,Xilinx用了三年时间把Zynq 7000性能在抬高了一个档次,于是就有了Zynq UltraScale+。博主本人手中目前只有比较低端的Zynq 7000系列开发板,所以后续的博文都将围绕着Zynq 7000系列芯片的研究进行更新。以后文章中提及的Zynq,都指代Zynq 7000 AP SoC芯片。

Zynq架构


上面这张图是我从Xilinx官网找到的关于Zynq的架构图,仔细观察,我们可以看到,Zynq整体被分为两大部分,分别用绿色调和黄色调背景表示。上半部绿底表示的是ARM Cortex A9双核,下半部黄底表示的是可编程逻辑,也就是FPGA。在Zynq开发中,习惯性将处理器内核部分称为PS(Processing System),FPGA部分成为PL(Programmable Logic)。

PS部分,从图中可以看出,除了双核ARM外,还包括SPI、I2C、CAN、UART、USB等常用总线接口,千兆以太网接口,NOR Flash、NAND Flash、QSPI Flash等存储介质,以及DDR2、DDR3等内存芯片。而PL部分,由可编程逻辑,XADC,PCIE等构成。PS与PL之间由ARM提出的ABMA Interconnect互连模块进行来连接,也就是常用的AXI总线,后续会对其进行详细介绍。

在学习Zynq之前,从架构上对Zynq进行具体地了解有很大帮助。博主是由纯FPGA设计转向Zynq的,在一开始接触的过程中,由于早期的思维,总认为与FPGA开发一样,可编程逻辑是最主要的设计部分,所以忽略了Zynq中ARM双核的控制和管理地位,走了不少弯路。希望朋友们不要和我一样犯这种错误,我也会在后续的文章中具体阐述Zynq的工作方式,让大家认识到ARM核在Zynq开发中起到的配置,主控等作用。

对Zynq开发的个人理解

  • 其实我认为,PL从一定程度上可以被看作是PS中ARM内核的外设,和SPI,I2C总线一样。区别就在于,PL这个外设,我们认为是可以自己定制的,非常灵活,可以满足各种不同场景下的应用需求。从这个角度思考之后,就不难理解,其实传统的FPGA开发,就是Zynq开发过程中对ARM外设进行设计的过程。而在外设设计完成后,我们最终还是要转向ARM内核,再实现对外设的配置和调用。所以,ARM核在Zynq架构中,占据着核心的地位。

  • 当然,这不代表着PL就不重要,如果PS的ARM内核是Zynq的核心,那么PL可编程逻辑就是Zynq开发最有力的武器。之所以Xilinx为ARM核配备了PL的外围可编程逻辑电路,就是因为FPGA设计架构的灵活性,可以完成ARM核不能进行的并行计算加速等高难度任务。因此,Zynq是PS和PL的完美结合,二者的协同工作具有更大的应用潜力和价值。

Zynq的应用

Zynq是面向高端的嵌入式应用场合进行设计和研发的,它天然的异构设计框架使得其较ARM处理器和FPGA的单独使用都有巨大的优势,所以在汽车电子,视频监控以及自动化控制等领域得到了广泛的应用。

博主是信息与通信工程专业的在读研究生,所以格外关注Zynq在通信产业的应用市场。基于Zynq的软件无线电开发平台在近几年逐渐成为了热门的研究方向,ADIXilinx公司合作开发了多套Zynq + AD射频芯片的软件无线电系统,并逐渐普及,所以Zynq即使在通信行业,也有着不错的发展前景。

总结

本文主要对嵌入式开发平台Zynq芯片的发展历史、基础架构和应用等方面的知识进行了一定的介绍,后续博主将会针对Zynq的具体开发流程等技术问题进行博文的更新。

感谢大家支持!

嵌入式开发平台Zynq芯片介绍相关推荐

  1. 保姆级教程:Linux(Ubuntu 18.04)下VSCode配置与嵌入式开发平台X2000_Halley5调试环境搭建

    保姆级教程:Linux(Ubuntu 18.04)下VSCode配置与嵌入式开发平台X2000_Halley5调试环境搭建 写在前面 配置VSCode的编译环境 配置VSCode的gdb调试环境 配置 ...

  2. 物联网时代的嵌入式开发平台

    http://geek.csdn.net/news/detail/65026 作为典型的嵌入式开发,物联网应用的开发与互联网应用从硬件配置到运行环境有巨大的不同.本文介绍了当前物联网开发者面临的挑战, ...

  3. iTOP-4418嵌入式开发板接口基本介绍

    iTOP-4418嵌入式开发板是迅为电子设计研发的一款四核Cortex-A9开发板,可广泛适用于工控.智能家居.医疗.多媒体.安防.车载.金融.消费电子.手持设备.显示控制.教学.电力.通讯等领域. ...

  4. linux-ARM开发板--嵌入式开发平台-选型

    最近有一个项目以前一直在用工控机实现,现在需要优化功能.缩减成本,故有寻找linux-ARM开发板的需求:后期有很大可能还会自己会画PCB板.内核裁剪等设计的需求: 1.根据需求,限定了选型开发的基本 ...

  5. 米尔STM32MP135核心板 又一款入门级嵌入式开发平台

    自2007年意法半导体(ST)推出STM32首款Cortex-M内核 MCU,十几年来,ST在MCU领域的发展是飞速向前的.而2019年ST发布了全新的STM32MPU系列产品线,STM32MP1作为 ...

  6. 8ms入门教程| 安利!开发者用好这个嵌入式开发平台,准点下班不是梦!

    最近很多小伙伴对嵌入式开发工具平台比较感兴趣,今天主要给大家分享一个快速输出原型的工具平台. 8ms--1小时快速输出产品原型工具平台! 8ms是基于web的嵌入式或单片机终端UI及功能程序可视化开发 ...

  7. 可视化开发平台的内容介绍

    在办公自动化发展的年代,做好数据管理是提升企业经营管理水平的重要依据.运用可视化开发平台可以提升企业的办公效率,沟通各部门之间的协作,实现数字化发展.那么,可视化开发平台的内容都有哪些?今天我们一起在 ...

  8. agilebpm脑图_设计开发平台前端框架介绍 | AgileBPM 敏捷工作流开发平台—开源免费-基于 Activiti 工作流引擎、Flowable...

    目前设计平台前端是独立部署的,引入了 Angular 和 Vue,您可以根据自己技术强项 选择使用 Angular 或者 Vue,他们引入的成本都很小. 比如我们团队使用 Angular 很多年了,依 ...

  9. salesforce.com开发平台 Apex语言介绍 (一.基础语法介绍)

    概要 Salesforce.com 的Apex语言是在Salesforce.com平台上执行的一种强类型编程语言.Apex被用作添加应用程序的业务逻辑(Business Logic),开发数据库触发器 ...

最新文章

  1. 程序员面试题精选100题(13)-第一个只出现一次的字符[算法]
  2. Java动态代理代码案例:使用jdk自带的Proxy只能对有接口的类进行动态代理
  3. mysql数据库(10):数据 备份
  4. 编译自己功能定制的Fedora7内核
  5. pytorch求范数函数——torch.norm
  6. 《Google工作整理术》读后感
  7. 加密html文件如何转换为pdf,PPT转成PDF后如何加密?其实真的很简单!
  8. Qt 矢量图标使用 FontAwesome Icon
  9. 简单说下HTTP代理、HTTPS代理、SOCKS代理的原理区别,charles抓包HTTPS原理
  10. 从零开始的unity2d写游戏1#
  11. 没有换行又很多很多行的代码,如何快捷换行?
  12. 单片机8位抢答器实训机电报告_16路抢答器单片机实训报告.docx
  13. job处理缓慢的性能问题排查与分析(r4笔记第18天)
  14. python替换excel字符串_【Python代替Excel】9:列表、字符串、字典、推导式
  15. 10.(后端)响应信息优化
  16. 测量学(三)测量点制图转CAD格式
  17. 一步步教你mybatis分页,mybatis分页拦截器 使用,mybatis拦截器分页
  18. 科学-地理:地理(地球科学)百科
  19. linux内核源代码情景分析(第五章 文件系统)
  20. python列表转字节_Python3中内置类型bytes和str用法及byte和string之间各种编码转换,python--列表,元组,字符串互相转换...

热门文章

  1. RK3399驱动开发 | 02 - 使用Linux自带的硬件看门狗驱动(SGM706B)
  2. 计算机现场质量检验报告单,3·15特辑 | 军工品质!华硕TUF-RTX2060-O6G-GAMING品质检测报告...
  3. 走过 30 年:银行数据库的下一步是国产化
  4. 【运维心得】H3C-msr3620启动后sys灯常亮的另类解决
  5. C语言实验——判断素数(循环结构java)
  6. 苹果x支持5g吗_iPhone12支持5G采用A14+X55基带方案,5G时代苹果还能一直优秀吗?...
  7. 【转】怎么下载优酷视频
  8. 爱奇艺号微前端架构实践
  9. mysql安装与卸载
  10. [博创智联]创新创客智能硬件平台——认识实验箱