1、ZYNQ介绍
1、ZYNQ 简介
ZYNQ 是赛灵思公司(Xilinx)推出的新一代全可编程片上系统(APSoC),它将处理器的软件可编程性与 FPGA 的硬件可编程性进行完美整合,以提供无与伦比的系统性能、灵活性与可扩展性。与传统SoC 解决方案不同的是,高度灵活的可编程逻辑(FPGA)可以实现系统的优化和差异化,允许添加定制外设与加速器,从而适应各种广泛的应用。
ZYNQ 的本质特征是它组合了一个双核 ARM Cortex-A9 处理器和一个传统的现场可编程门阵列(FPGA)逻辑部件。由于该新型器件的可编程逻辑部分基于赛灵思 28nm 工艺的 7 系列 FPGA,因此该系列产品的名称中添加了“7000”,以保持与 7 系列 FPGA 的一致性,同时也方便日后本系列新产品的命名。
Zynq-7000 系列是 Xilinx 于 2010 年 4 月推出的行业第一个可扩展处理平台,旨在为视频监视、汽车驾驶员辅助以及工厂自动化等高端嵌入式应用提供所需的处理能力与计算性能。这款基于 ARM 处理器的SoC 可满足复杂嵌入式系统的高性能、低功耗和多核处理能力等要求。
Zynq-7000 系列是 Xilinx 公司推出的全可编程片上系统(All Programmable SoC) ,包含 PS(Processing System,处理器系统)和 PL(Programmable Logic,可编程逻辑)两部分。 Zynq SoC 整合了ARM 双核 cortex-A9 处理器和 Xilinx 7 系列 FPGA 架构,使得它不仅拥有 ASIC 在能耗、性能和兼容性方面的优势,而且具有 FPGA 硬件可编程性的优点。
Zynq-7000 系列具有丰富的型号,如 XC7Z010、 XC7Z020 和 XC7Z030 等, 领航者 ZYNQ 底板搭配的核心板有两种型号,分别为 ZYNQ-7020(XC7Z020)和 ZYNQ-7010(XC7Z010)。 XC7Z020 内部的 LC(Logic Cell, 逻辑单元) 达到 85K, XC7Z010 的内部 LC 为 28K。
ZYNQ 的全称是 Zynq-7000 All Programmable SoC,也就是说, ZYNQ 实际上是一个片上系统(Systemon Chip, SoC)。那么, 什么是“SoC”?
(1)板上系统(System-on-a-Board)
一个能够实现一定功能的电路系统由多个模块构成, 如处理器、接口、存储器、模数转换器等等。 这些功能模块可以由分立的器件来实现,然后在印刷电路板(PCB)上组合起来, 最终形成板上系统(System-on-a-Board)。 板上系统的示意图如下所示:
在上图所示的板上系统中, 绿色的矩形代表印刷电路板(PCB),上面各种颜色的小矩形代表了系统中各个功能模块, 如存储器等。 这些模块的功能都由一个个独立的硅芯片分别实现的,它们之间通过 PCB上的金属走线连接, 最终构成一个完整的系统。
(2)片上系统(System-on-Chip,简称SOC)
片上系统(System-on-Chip)指的是在单个硅芯片就可以实现整个系统的功能,其示意图如下所示:
如上图所示,片上系统 SoC 在一个芯片里就实现了存储、处理、逻辑和接口等各个功能模块,而不是像板上系统那样,需要用几个不同的物理芯片来实现。与板上系统相比, SoC 的解决方案成本更低,能在不同的系统单元之间实现更快更安全的数据传输,具有更高的整体系统速度、更低的功耗、更小的物理尺寸和更好的可靠性。
1)基于ASIC的SOC
在过去, SoC 这个术语常用于指专用集成电路(Application Specific Integrated Circuit, ASIC)。基于ASIC 的 SoC 的代表性例子包括在 PC、平板和智能手机上使用的处理器, 如华为旗舰手机中的麒麟系列芯片。这些处理器典型地是由至少两个处理器核、存储器、图形处理器、接口和其他功能模块组合起来的。
基于 ASIC 的 SoC 的主要缺点有两个: 1、开发周期长且成本巨大; 2、缺乏灵活性。开发 ASIC 时不可重用的工程投入是巨大的,使得这种 SoC 类型只适合于大批量而且寿命有限的产品中。
ASIC SoC 的局限性导致它们不适用于很多应用,特别是当快速投入市场能力、灵活性和升级能力已经成为重要的关键因素。对于小批量或中批量的产品, ASIC SoC 也不是好的解决方案。
2)可编程片上系统(SOPC, System-on-Progammable-Chip)
可编程片上系统(SOPC, System-on-Progammable-Chip)为上述应用提供了一个更灵活的解决方案:一种在可编程、可重新配置的芯片上实现的 SoC。其中,可编程的芯片指的就是 FPGA。 FPGA 天生的灵活性使其可以被随心所欲地重新配置,以实现不同系统的功能,包括嵌入式处理器。和使用 ASIC 来实现SoC 相比, FPGA 能构成更为基础灵活的平台, 方便系统的升级。
3)全可编程片上系统(APSoC, All-Programmable SoC)
相比于 SOPC, ZYNQ 为实现灵活的 SoC 提供了一个更加理想的平台: Xilinx 将其打造成“全可编程片上系统(APSoC, All-Programmable SoC)”。它将处理器的软件可编程性与 FPGA 的硬件可编程性进行完美整合,以提供无与伦比的系统性能、灵活性与可扩展性。
ZYNQ 是由两个主要部分组成的:一个由双核 ARM Cortex-A9 为核心构成的处理系统(PS,Processing System),和一个等价于一片 FPGA 的可编程逻辑(PL, Programmable Logic)部分。 ZYNQ 架构的简化模型如下图所示:
在上图中, PS 具有固定的架构,包含了处理器和系统的存储器;而 PL 完全是灵活的,给了设计者一块“空白画布”来创建定制的外设。
在 ZYNQ 上, ARM Cortex-A9 是一个应用级的处理器,能运行像 Linux 这样的操作系统,而可编程逻辑是基于 Xilinx 7 系列的 FPGA 架构。 ZYNQ 架构实现了工业标准的 AXI 接口,在芯片的两个部分之间实现了高带宽、低延迟的连接。这意味着处理器和逻辑部分各自都可以发挥最佳的用途,而不会产生在两个分立器件之间的接口开销。与此同时,又能获得系统被简化为单一芯片所带来的好处,包括物理尺寸和整体成本的降低。
早期生产的数字集成电路逻辑功能都是固定不变的。要想改变它的逻辑功能,就必须改变内部各单元电路之间的连接,而这种连接在集成电路制作过程中已经固定下来了。
允许用户自行修改内部连接的集成电路:可编程逻辑器件(Programmable Logic Device)。
(1)、PLD内部的电路结构可以通过写入编程数据来设置;
(2)、写入PLD的编程数据还可以擦除重写;
PLD的逻辑功能可以由使用者通过编程来设定。
常用的可编程逻辑器件:
CPLD复杂可编程逻辑器件(Complex Programmable Logic Device)
FPGA现场可编程门阵列(Field Programmable Gate Array)
本质差异:电路结构不同。
CPLD:基于“乘积项”的与或逻辑阵列
FPGA:基于“查找表”(,Look UP Table)的CLB阵列
什么是FPGA?
一种可通过编程来修改其逻辑功能的数字集成电路(芯片)
ZYNQ PL 部分等价于 Xilinx 7 系列 FPGA,因此我们将首先介绍 FPGA 的架构。简化的 FPGA 基本结构由 6 部分组成,分别为可编程输入/输出单元、基本可编程逻辑单元、嵌入式块RAM、丰富的布线资源、底层嵌入功能单元和内嵌专用硬核等,如下图所示:
ZYNQ PL 架构的示意图,如下所示:
3、ZYNQ PS 简介
ZYNQ 实际上是一个以处理器为核心的系统, PL 只是它的一个外设。 Zynq-7000 系列的亮点在于它包含了完整的 ARM 处理器系统,且处理器系统中集成了内存控制器和大量的外设, 使 Cortex-A9 处理器可以完全独立于可编程逻辑单元。 而且实际上在 ZYNQ 中, PL 和 PS 两部分的供电电路是独立的,这样 PS 或 PL 部分不被使用的话就可以被断电。
在前面我们介绍 SOPC 时提到过, FPGA 可以用来搭建嵌入式处理器,像 Xilinx 的 MicroBlaze 处理器或者 Altera 的 Nios II 处理器。 像这种使用 FPGA 的可编程逻辑资源搭建的处理器我们称之为“软核”处理器,它的优势在于处理器的数量以及实现方式的灵活性。而 ZYNQ 中集成的是一颗“硬核”处理器, 它是硅芯片上专用且经过优化的硬件电路, 硬核处理器的优势是它可以获得相对较高的性能。 另外, ZYNQ 中的硬件处理器和软核处理器并不冲突,我们完全可以使用 PL 的逻辑资源搭建一个 Microblaze 软核处理器,来和 ARM 硬核处理器协同工作。
需要注意的是, Zynq 处理器系统里并非只有 ARM 处理器,还有一组相关的处理资源,形成了一个应用处理器单元(Application Processing Unit, APU),另外还有扩展外设接口、 cache 存储器、存储器接口、互联接口和时钟发生电路等。
ZYNQ 处理器系统(PS) 示意图如下所示,其中红色高亮区域为 APU。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)