ZYNQ简介

ZYNQ简介

ZYNQ 是赛灵思公司(Xilinx)推出的新一代全可编程片上系统(APSoC),它将处理器的软件可编程 性与 FPGA 的硬件可编程性进行完美整合,以提供无与伦比的系统性能、灵活性与可扩展性。

ZYNQ简介
  1. Zynq-7000 系列是 Xilinx 于 2010 年 4 月推出的行业第一个可扩展处理平台

  2. 基于 ARM 处理器的 SoC 可满足复杂嵌入式系统的高性能、低功耗和多核处理能力等要求。

  3. 组合了一个双核 ARM Cortex-A9 处理器和一个传统的现场可编程门阵列 (FPGA)逻辑部件

  4. 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 接口

    image-20220707165104908
  • 上图给出了每个接口的简述,标出了主机和从机(按照惯例,主机是控制总线并发起会话的,而从机是做响应的)

    接口命名的第一个字母表示的是 PS 的角色,也就是说,第一个字母 “M” 表示 PS 是主机,而第一个字母“S”表示 PS 是从机。

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

    1. 通用 AXI(General Purpose AXI):一条 32 位数据总线,适合 PL 和 PS 之间的中低速通信。接口是透传的不带缓冲。总共有四个通用接口:两个 PS 做主机,另两个 PL 做主机。
    2. 加速器一致性端口(Accelerator Coherency Port):在 PL 和 APU 内的 SCU 之间的单个异步连接, 总线宽度为 64 位。这个端口用来实现 APU cache 和 PL 的单元之间的一致性。PL 是做主机的。
    3. 高性能端口(High Performance Ports):四个高性能 AXI 接口,带有 FIFO 缓冲来提供“批量”读写操作,并支持 PL 和 PS 中的存储器单元的高速率通信。数据宽度是 32 或 64 位,在所有四个接口中 PL 都是做主机的。

    上面的每条总线都是由一组信 组成的,这些总线上的会话是根据 AXI4 总线协议进行通信的。

    参考

    正点原子–1_启明星ZYNQ之FPGA开发指南_V2.0

    声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

    上一篇 2022年6月6日
    下一篇 2022年6月6日

    相关推荐