ZYNQ简介
ZYNQ 是赛灵思公司(Xilinx)推出的新一代全可编程片上系统(APSoC),它将处理器的软件可编程 性与 FPGA 的硬件可编程性进行完美整合,以提供无与伦比的系统性能、灵活性与可扩展性。
ZYNQ简介
-
Zynq-7000 系列是 Xilinx 于 2010 年 4 月推出的行业第一个可扩展处理平台
-
基于 ARM 处理器的 SoC 可满足复杂嵌入式系统的高性能、低功耗和多核处理能力等要求。
-
组合了一个双核 ARM Cortex-A9 处理器和一个传统的现场可编程门阵列 (FPGA)逻辑部件
-
ZYNQ 的全称是 Zynq-7000 All Programmable SoC
SOC概念介绍
一个能够实现一定功能的电路系统由多个模块构成,如处理器、接口、存储器、模数转换器等等。这些功能模块可以由分立的器件来实现,然后在印刷电路板(PCB)上组合起来,最终形成板上系统 (System-on-a-Board)。
板上系统的示意图
-
片上系统 SoC 在一个芯片里就实现了存储、处理、逻辑和接口等各个功能模块,而不是 像板上系统那样,需要用几个不同的物理芯片来实现
-
与板上系统相比,SoC 的解决方案成本更低,能在不同的系统单元之间实现更快更安全的数据传输,具有更高的整体系统速度、更低的功耗、更小的物理尺寸和更好的可靠性。
可编程片上系统(SOPC,System-on-Progammable-Chip)提供了一个更灵活的解决方案:一种在可编程、可重新配置的芯片上实现的 SoC
FPGA 天生的灵活性使其可以被随心所欲地重新配置,以实现不同系统的功能,包括嵌入式处理器。
和使用 ASIC 来实现 SoC 相比,FPGA 能构成更为基础灵活的平台,方便系统的升级。
ZYNQ 是由两个主要部分组成的:
- 一个由双核 ARM Cortex-A9 为核心构成的处理系统(PS,Processing System)
- 一个等价于一片 FPGA 的可编程逻辑(PL,Programmable Logic)部分
ZYNQ 架构的简化模型:
SPLD 和 CPLD 电路中,都采用了与或逻辑阵列加上输出逻辑单元的结构形式。
FPGA 则采用了完全不同的电路结构形式(查找表,LUT)
FPGA的用途
作为一种可编程器件,FPGA 能实现任何数字器件的功能,上至高性能 CPU,下至简单的 74 电路,都可以用 FPGA 来实现。
可编程逻辑天生就为并行地实现算法提供了理想的资源。比如在图像处理中,要同时对大量的像素点进行数学运算,而 FPGA 就很适合像这种像素点级别的图像处理所需的快速、并行的操作。
ZYNQ PL简介
ZYNQ PL部分等价于 Xilinx 7 系列 FPGA,
简化的 FPGA 基本结构由 6 部分组成,分别为可编程输入/输出单元、基本可编程逻辑单元、嵌入式块 RAM、丰富的布线资源、底层嵌入功能单元和内嵌专用硬核等,
CLB 是逻辑单元的最小组成部分,在 PL 中排列为一个二维阵列,通过可编程互联连接到其他类似的资源。每个 CLB 里包含两个逻辑片,并且紧邻一个开关矩阵
嵌入式块RAM
目前大多数 FPGA 都有内嵌的块 RAM(Block RAM),FPGA 内部嵌入可编程 RAM 模块,大大地拓 展了 FPGA 的应用范围和使用灵活性。
Zynq-7000 里的块 RAM 和 Xilinx 7 系列 FPGA 里的那些块 RAM 是等同的,它们可以实现 RAM、ROM 和 先入先出(First In First Out,FIFO)缓冲器。每个块 RAM 可以存储最多 36KB 的信息,并且可以被配置 为一个 36KB 的 RAM 或两个独立的 18KB RAM。默认的字宽是 位,这样的配置下每个 RAM 含有 2048 个 存储单元。
RAM 还可以被“重塑”来包含更多更小的单元(比如 4096 个单元 x9 位,或 8192×4 位),或是另外做成更少更长的单元(如1024单元 x36 位, 512×72 位)。
把两个或多个块 RAM 组合起来可以形成更 大的存储容量。
除了块 RAM,还可以灵活地将 LUT 配置成 RAM,ROM,FIFO 等存储结构,这种技术被称为分布式 RAM。
根据设计需求,块RAM的数量和配置方式也是器件选型的一个重要标准。
丰富的布线资源
布线资源连通 FPGA 内部的所有单元,而连线的长度和工艺决定着信 在连线上的驱动能力和传输速 度。
FPGA 芯片内部有着丰富的布线资源,这些布线资源根据工艺、长度、宽度和分布位置的不同而划分为 4 类不同的类别:
- 第一类是全局布线资源,用于芯片内部全局时钟和全局复位/置位的布线
- 第二类是长线资源,用以完成芯片 Bank 间的高速信 和第二全局时钟信 的布线
- 第三类是短线资源,用于完成基本逻辑单元之间的逻辑互连和布线
- 第四类是分布式的布线资源,用于专有时钟、复位等控制信 线
设计者不需要直接选择布线资源,**布局布线器可自动地根据输入逻辑 表的拓扑结构和约束条件选择布线资源来连通各个模块单元。**从本质上讲,布线资源的使用方法和设计的结果有直接的关系。
底层嵌入功能单元
底层嵌入功能单元的概念比较笼统,这里指的是那些通用程度较高的嵌入式功能模块,比如 PLL (Phase Locked Loop)、DLL(Delay Locked Loop)、DSP、CPU 等。
随着 FPGA 的发展,这些模块被越来越多地嵌入到 FPGA 的内部,以满足不同场合的需求
大多数 FPGA 厂商都在 FPGA 内部集成了 DLL 或者 PLL 硬件电路,用以完成时钟的高精度、低抖动的倍频、分频、占空比调整、相移等功能。目前,高端 FPGA 产品集成的 DLL 和 PLL 资源越来越丰富, 功能越来越复杂,精度越来越高。
内嵌专用硬核
内嵌专用硬核与前面的底层嵌入单元是有区分的,内嵌专用硬核主要指那些通用性相对较弱,不是所有 FPGA 器件都包含硬核。
在ZYNQ的PL 端有一个数模混合模块——XADC,它就是一个硬核。XADC包含两个模数转换器(ADC), 一个模拟多路复用器,片上温度和片上电压传感器等。可以利用这个模块监测芯片温度和供电电压, 也可以用来测量外部的模拟电压信 。
ZYNQ PS简介
ZYNQ 实际上是一个以处理器为核心的系统,PL 只是它的一个外设。
Zynq-7000 系列的亮点在于它包含了完整的 ARM 处理器系统,且处理器系统中集成了内存控制器和大量的外设,使 Cortex-A9 处理器可以完全独立于可编程逻辑单元。而且实际上 在 ZYNQ 中,PL 和 PS 两部分的供电电路是独立的,这样 PS 或 PL 部分不被使用的话就可以被断电。
FPGA 可以用来搭建嵌入式处理器,像 Xilinx 的 MicroBlaze 处理器 或者 Altera 的 Nios II 处理器,像这种使用 FPGA 的可编程逻辑资源搭建的处理器称之为“软核”处理器,它的优势在于处理器的数量以及实现方式的灵活性。
ZYNQ 中集成的是一颗“硬核”处理器,它是硅芯片上专用且经过优化的硬件电路,硬核处理器的优势是它可以获得相对较高的性能。另外,ZYNQ中的硬件处理器和软核处理器并不冲突,完全可以使用 PL 的逻辑资源搭建一个 Microblaze 软核处理器,来和 ARM 硬核处理器协同工作。
Zynq 处理器系统里并非只有 ARM 处理器,还有一组相关的处理资源,形成了一个应用处理器单元(Application Processing Unit,APU),另外还有扩展外设接口、cache 存储器、存储器接口、 互联接口和时钟发生电路等。
ZYNQ 处理器系统(PS)示意图如下
外部接口
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 与 PL 的 AXI 接口

上图给出了每个接口的简述,标出了主机和从机(按照惯例,主机是控制总线并发起会话的,而从机是做响应的)
接口命名的第一个字母表示的是 PS 的角色,也就是说,第一个字母 “M” 表示 PS 是主机,而第一个字母“S”表示 PS 是从机。
PS 和 PL 之间的 9 个 AXI 接口可以分成三种类型
- 通用 AXI(General Purpose AXI):一条 32 位数据总线,适合 PL 和 PS 之间的中低速通信。接口是透传的不带缓冲。总共有四个通用接口:两个 PS 做主机,另两个 PL 做主机。
- 加速器一致性端口(Accelerator Coherency Port):在 PL 和 APU 内的 SCU 之间的单个异步连接, 总线宽度为 64 位。这个端口用来实现 APU cache 和 PL 的单元之间的一致性。PL 是做主机的。
- 高性能端口(High Performance Ports):四个高性能 AXI 接口,带有 FIFO 缓冲来提供“批量”读写操作,并支持 PL 和 PS 中的存储器单元的高速率通信。数据宽度是 32 或 64 位,在所有四个接口中 PL 都是做主机的。
上面的每条总线都是由一组信 组成的,这些总线上的会话是根据 AXI4 总线协议进行通信的。
参考
正点原子–1_启明星ZYNQ之FPGA开发指南_V2.0
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!