ZYNQ 在嵌入式开发中有什么魔力?
共 2280字,需浏览 5分钟
·
2021-01-09 17:35
关注、星标公众号,直达精彩内容
来源:ZYNQ
作者:watchman
最近公司开始做一个项目,再一次使用到ZYNQ,今天给大家科普一下ZYNQ是什么,以及ZYNQ在嵌入式系统中的应用情况。
ZYNQ是什么?
zynq是Xilinx公司7系列的FPGA,其内部除了具有Xilinx公司FPGA逻辑资源之外,还集成了两个ARM核,可用于嵌入式系统的开发,尤其方便于嵌入式软件与FPGA逻辑相同开发使用。
具体来说,是由一个双核的ARM构成的处理系统PS和一个等价于一个片上FPGA可编程逻辑部分部分构成,它具有集成的存储器和外设的高速通信接口。
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架构
上面这张图是我从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中ARM双核的控制和管理地位,走了不少弯路。大家要认识到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芯片的发展历史、基础架构和应用等方面的知识进行了一定的介绍,想要深入理解,就需要动手实践啦。
‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧ END ‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧