嵌入式开发平台Zynq芯片介绍
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 SoC和Zynq 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的软件无线电开发平台在近几年逐渐成为了热门的研究方向,ADI和Xilinx公司合作开发了多套Zynq + AD射频芯片的软件无线电系统,并逐渐普及,所以Zynq即使在通信行业,也有着不错的发展前景。
总结
本文主要对嵌入式开发平台Zynq芯片的发展历史、基础架构和应用等方面的知识进行了一定的介绍,后续博主将会针对Zynq的具体开发流程等技术问题进行博文的更新。
感谢大家支持!