购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.2 Zynq介绍

Zynq是Xilinx推出的新一代全可编程片上系统(APSoC),它将处理器的软件可编程性与FPGA的硬件可编程性进行整合,以提供更强的系统性能、灵活性与可扩展性。与传统SoC(System on Chip)解决方案不同的是,高度灵活的可编程逻辑(FPGA)可以实现系统的优化和差异化,允许添加定制外设与加速器,从而适应各种广泛的应用。

Zynq的本质特征是组合了一个双核ARM Cortex-A9 处理器和一个传统的现场可编程门阵列(FPGA)逻辑部件。由于该新型器件的可编程逻辑部分基于Xilinx 28nm工艺的 7 系列FPGA,因此该系列产品的名称中添加了“7000”,以保持与 7 系列FPGA的一致性,同时也方便日后本系列新产品的命名。

Zynq-7000 系列是Xilinx于 2010 年 4 月推出的行业第一个可扩展处理平台,旨在为视频监视、汽车驾驶员辅助以及工厂自动化等高端嵌入式应用提供所需的处理能力与计算性能。这款基于ARM处理器的SoC可满足复杂嵌入式系统的高性能、低功耗和多核处理能力等要求。

片上系统SoC是指在一个芯片里实现存储、处理、逻辑和接口等各个功能模块,与板上系统相比,SoC的解决方案成本更低,能在不同的系统单元之间实现更快更安全的数据传输,具有更高的整体系统速度、更低的功耗、更小的物理尺寸和更好的可靠性。

1.2.1 Zynq架构简介

Zynq是由两个主要部分组成的:一个由双核ARM Cortex-A9 为核心构成的处理系统(Processing System,PS)和一个等价于一片FPGA的可编程逻辑(Programmable Logic,PL)部分。如图 1.4 所示的Zynq架构中,PS具有固定的架构,包含处理器和系统的存储器;而PL完全是灵活的,给了设计者一块“空白画布”来创建定制的外设。

图 1.4 Zynq架构

在Zynq上,ARM Cortex-A9 是一个应用级的处理器,能运行Linux操作系统,而可编程逻辑是基于Xilinx 7 系列的FPGA架构。Zynq架构实现了工业标准的AXI(Advanced eXtensible Interface,高级可拓展接口),在芯片的两个部分之间实现了高带宽、低延迟的连接。这意味着处理器和逻辑部分各自都可以发挥最佳的用途,而不会产生在两个分立器件之间的接口开销。同时又能获得系统被简化为单一芯片所带来的好处,包括物理尺寸和整体成本的降低。

Zynq PL部分等价于Xilinx 7 系列FPGA,有关FPGA的架构前面章节已经介绍过了,不再赘述。需要说明的是,在Zynq的PL端有一个数模混合模块——XADC,它是一个硬核,包含两个模数转换器(ADC)、一个模拟多路复用器、片上温度和片上电压传感器等。可以利用这个模块监测芯片温度和供电电压,也可以用来测量外部的模拟电压信号。

1.2.2 Zynq PS简介

Zynq实际上是一个以处理器为核心的系统,PL只是它的一个外设。Zynq-7000 系列的亮点在于它包含了完整的ARM处理器系统,且处理器系统中集成了内存控制器和大量的外设,使Cortex-A9 处理器可以完全独立于可编程逻辑单元。而且在Zynq中,PL和PS两部分的供电电路是独立的,这样PS或PL部分不被使用时就可以被断电。

值得一提的是,FPGA可以用来搭建嵌入式处理器,如Xilinx的MicroBlaze处理器或者Intel的Nios Ⅱ处理器都属于“软核”处理器,它的优势在于处理器的数量以及实现方式的灵活性。而Zynq中集成的是一颗“硬核”处理器,它是硅芯片上专用且经过优化的硬件电路。硬核处理器的优势是它可以获得相对较高的性能。另外,Zynq中的硬核处理器和软核处理器并不冲突,完全可以使用PL的逻辑资源搭建一个MicroBlaze软核处理器,与ARM硬核处理器协同工作。需要注意的是,Zynq处理器系统里并非只有ARM处理器,还有一组相关的处理资源,形成了一个应用处理器单元(Application Processing Unit,APU),另外还有扩展外设接口、cache存储器、存储器接口、互联接口和时钟发生电路等。

Zynq处理器系统(PS)示意图如图 1.5 所示,其中右上角区域为APU。

图 1.5 PS系统示意图

(1)APU

如图 1.6 所示,APU主要是由两个ARM处理器核组成的,每个都关联了一些可计算的单元:一个NEONTM媒体处理引擎(Media Processing Engine,MPE)和浮点单元(Floating Point Unit,FPU);一个内存管理单元(Memory Management Unit,MMU)和一个一级cache存储器(分为指令和数据两个部分)。APU里还包含两个ARM处理器共用的一个二级cache存储器和一个片上存储器(On Chip Memory,OCM),它们通过一致性控制单元(Snoop Control Unit,SCU)与ARM核之间形成了桥连接。SCU还部分负责与PL对接,图中没有标出这个接口。

图 1.6 APU简化示意图

(2)外部接口

如图1.5 所示,Zynq PS实现了众多接口,既有PS和PL之间的,也有PS和外部部件之间的。PS和外部接口之间的通信主要是通过复用的输入/输出(Multiplexed Input/ Output,MIO)实现的,它提供了可以灵活配置的 54 个引脚,这表明外部设备和引脚之间的映射是可以按需定义的。当需要扩展超过 54 个引脚时,可以通过扩展MIO(Extended MIO,EMIO)来实现,EMIO并不是PS和外部连接之间的直接通路,而是通过共用PL的I/ O资源来实现的。

PS中可用的I/ O包括标准通信接口和通用输入/输出(General Purpose Input/ Output,GPIO),GPIO可以用作各种用途,包括简单的按钮、开关和LED。 PS的外部接口如表 1.2 所示。

表 1.2 PS的外部接口

续表

(3)存储器接口

Zynq-7000 AP SoC上的存储器接口单元包括一个动态存储器控制器和几个静态存储器接口模块。动态存储器控制器可以用于DDR3、DDR3L、DDR2 或LPDDR2。静态存储器控制器支持一个NAND闪存接口、一个Quad-SPI闪存接口、一个并行数据总线和并行NOR闪存接口。

(4)片上存储器

片上存储器包括 256 kB的RAM(OCM)和 128 kB的ROM(BootROM)。OCM支持两个64 位AXI从机接口端口,一个端口专用于通过APU SCU的CPU/ ACP访问,而另一个是由PS和PL内其他所有的总线主机所共享的。BootROM是Zynq芯片上的一块非易失性存储器,它包含了Zynq所支持的配置器件的驱动。BootROM对于用户是不可见的,专门保留且只用于引导的过程。

(5)AXI接口

Zynq将高性能ARM Cotex-A系列处理器与高性能FPGA在单芯片内紧密结合,为设计带来了如减小体积和功耗,降低设计风险,增加设计灵活性等诸多优点。在将不同工艺特征的处理器与FPGA融合在一个芯片上之后,片内处理器与FPGA之间的互联通路就成了Zynq芯片设计的重中之重。如果Cotex-A9 与FPGA之间的数据交互成为瓶颈,那么处理器与FPGA结合的性能优势就不能发挥出来。

Xilinx从Spartan-6 和Virtex-6 系列开始使用AXI协议来连接IP核。在 7 系列和Zynq 7000 AP SoC器件中,Xilinx在IP核中继续使用AXI协议。AXI的英文全称是Advanced eX tensible Interface,即高级可扩展接口,它是ARM公司所提出的AMBA(Advanced Microcontroller Bus Architecture)协议的一部分。

AXI协议是一种高性能、高带宽、低延迟的片内总线,具有如下特点:

①总线的地址/控制和数据通道是分离的。

②支持不对齐的数据传输。

③支持突发传输,突发传输过程中只需要首地址。

④具有分离的读/写数据通道。

⑤支持显著传输访问和乱序访问。

⑥更加容易进行时序收敛。

在数字电路中只能传输二进制数 0 和 1,因此可能需要一组信号才能高效地传输信息,这一组信号就组成了接口。AXI4 协议支持以下三种类型的接口:

①AXI4:高性能存储映射接口。

②AXI4-Lite:简化版的AXI4 接口,用于较少数据量的存储映射通信。

③AXI4-Stream:用于高速数据流传输,非存储映射接口。

首先解释一下存储映射(Meamory Map)的概念。如果一个协议是存储映射的,那么主机所发出的会话(无论读或写)就会标明一个地址。这个地址对应于系统存储空间中的一个地址,表明是针对该存储空间的读写操作。

AXI4 协议支持突发传输,主要用于处理器访问存储器等需要指定地址的高速数据传输场景。AXI-Lite为外设提供单个数据传输,主要用于访问一些低速外设中的寄存器。而AXI Stream接口则像FIFO一样,数据传输时不需要地址,在主从设备之间直接连续读写数据,主要用于如视频、高速AD、PCIe、DMA接口等需要高速数据传输的场合。

PS和PL之间的主要连接是通过一组 9 个AXI接口,每个接口由多个通道组成。这些形成了PS内部的互联以及与PL的连接,如表 1.3 所示。

表 1.3 PS与PL的AXI接口

表 1.3 给出了每个接口的简述,标出了主机和从机。需要注意的是,接口命名的第一个字母表示的是PS的角色,也就是说,第一个字母“M”表示PS是主机,而第一个字母“S”表示PS是从机。

表 1.3 中PS和PL之间的 9 个AXI接口可以分成三种类型:

①通用AXI(General Purpose AXI,GP):一条 32 位数据总线,适合PL和PS之间的中低速通信。接口是透传的,不带缓冲。总共有四个通用接口,两个PS做主机,另两个PL做主机。

②加速器一致性端口(Accelerator Coherency Portt,ACP):在PL和APU内的SCU之间的单个异步连接,总线宽度为 64 位。这个端口用来实现APU cache和PL的单元之间的一致性。PL做主机,PS做从机。

③高性能端口(High Performance Ports,HP):4 个高性能AXI接口,带有FIFO缓冲来提供“批量”读写操作,并支持PL和PS中的存储器单元的高速率通信。数据宽度是 32 或 64位,在所有 4 个接口中,PL都是做主机的。

上面的每条总线都是由一组信号组成的,这些总线上的会话是根据AXI4 总线协议进行通信的。 gxSTL1rXnSC2FwPPWlo+Bh0h5yBJMiUDZY+p/8LY1C6dHuOrDxa0d/i9W5ZmPwsW

点击中间区域
呼出菜单
上一章
目录
下一章
×

打开