《探索Zynq MPSoC》学习笔记(二)

引言:本文开始学习第二章内容,本文重点介绍FPGA、Zynq和Zynq MPSoC器件技术演进以及Zynq和Zynq MPSoC器件的基本结构和特点。

第二章 FPGA、Zynq和Zynq MPSoC (1)

Zynq MPSoC是Xilinx发布的第一款SoC Zynq-7000片上系统(SoC)的演进。这两个器件都包括处理系统(PS)和可编程逻辑(PL),PL等效于现场可编程门阵列(FPGA)。如图1所示,它在高层次上比较了三种类型器件,Zynq MPSoC中的PS比Zynq中的PS更大、更复杂。

在本章中,将回顾这三种设备类型的特点,并强调它们之间的异同。我们还提出了一些潜在演进的原因。

图片

图1:FPGA、Zynq和Zynq MPSoC的高层次比较

1. 技术演进时间表

Zynq、Zynq MPSoC和FPGA都是当前的技术,并且相互补充。“最佳”选择取决于正在创建的设计的特性。所有三种器件类别都有自己独特的功能平衡,这使得它们中的每一种都特别适合一系列不同的任务和应用程序。

图片

图2:FPGA、Zynq和Zynq MPSoC演进时间表

这本书的许多读者可能都熟悉Zynq,所以我们从那里开始复习,可以将其与较新的Zynq MPSoC器件进行比较。FPGA是两个SoC的PL部分的基础,将在本章后面介绍。

2. Zynq-7000 SoC

Zynq-7000 SoC是Xilinx发布的第一款SoC设备,将基于FPGA的PL与基于Arm的PS相结合。在本节中,我们将简要介绍Zynq的架构和功能,读者可以参考我们上一本书中的详细内容[1]。

2.1  Zynq的结构和特点

为了提供架构的高层次概述,Zynq架构有两个部分:PS和PL,它们之间有一组互连,如图3所示。这些互连基于先进可扩展接口(AXI)标准,这是Arm开发的片上通信标准。

图片

图3:Zynq SoC设备的高级框图(来自“Zynq Book”[3])

将PS处理系统组件与PL耦合是运行嵌入式系统软件的基础要求,特别是操作系统和软件应用程序,需提供专用的优化资源,同时保留FPGA逻辑的所有优点(特别是其强大的并行性和可重配置性)。AXI接口形成了两个部分之间的连接。AXI是针对SoC应用程序进行优化的标准。

图3中PS和PL的相对尺寸未按比例绘制,事实上,Zynq系列中有几个器件,每个器件都具有相同的PS架构和不同大小的PL。

稍后将更详细介绍Zynq架构和Zynq MPSoC器件之间PS和PL架构的差异。

2.1.1 Zynq处理系统 (PS)

Zynq PS部分,如图3中的蓝色部分所示,包括一个应用级处理器和其他组件。这些概述如下(有关详细信息,请参见[3])。

•应用处理器单元(APU):该单元包括双核Arm Cortex-A9处理器以及256KB的片上高速缓存。

•互连和存储器接口:它们分别实现PS和PL之间以及与外部存储器之间的通信。

•I/O外设组:集成外设接口,涵盖通用标准,如USB、UART、SPI、I2C等。

Zynq中的PS有两个处理核,设计者可以选择将两个核心用于同一操作系统,或者在每个操作系统上使用不同的操作系统。稍后,我们将Zynq PS与Zynq MPSoC架构的PS进行比较,并注意到新器件中功能的扩展,特别是,Zynq MPSoC最多有六个处理核心!

2.1.2 Zynq可编程逻辑(PL)

Zynq的PL部分基于Artix-7 FPGA结构(适用于该系列中较小的器件)或Kintex-7 FPGA架构(适用于较大的器件)。这两个变体代表Xilinx 7系列FPGA的成员,其中还包括更高性能的Virtex-7。

与等效的FPGA一样,Zynq PL包括DSP48 Slice切片(用于高速算术的资源)、块RAM、高速收发器、集成通信块以及通用逻辑。在本章的后面,第2.4.3节提供了现代FPGA关于这些资源的更多信息。

2.1.3 PS和PL之间的接口

Zynq的两个区域之间有九个接口。其中四个互连被指定为“通用”接口,四个互连为“高性能”接口,其余互连为“加速器一致性端口”(ACP),它提供了应用程序处理单元(APU,位于PS内)和PL之间的直接路由。

2.2 Zynq器件

为了对Zynq-7000系列中的器件进行简要比较,请考虑表1,该表汇总了每个芯片的关键特性和参数(请注意,单核Zynq-700S系列不包括在表中)。

表1:Zynq-7000 SoC系列家族器件的比较

图片

a.支持的最大处理器时钟频率取决于器件速度等级。

所有Zynq-7000芯片的PS都是相同的,唯一的区别是支持的最大时钟频率。PL在整个系列中都是相似的,低端器件采用基于Artix-7的逻辑,其余器件采用Kintex-7中的逻辑。专业资源(如DSP片、块RAM存储器和输入/输出资源)的PL尺寸和数量也各不相同。

2.3 Zynq使用模式

设计者以前使用过FPGA,或者使用过处理器,或者两者兼而有之都可以采用Zynq。Zynq在推出时的卖点是提供一种解决方案,用于在单个器件上实现基于处理器的任务,如运行软件和操作系统,以及基于FPGA的处理,并具有高端性能和两个组件之间的高容量互连。如果以前只使用FPGA,那么添加专用硬处理器可以提高性能(与由通用PL资源构建的“软”处理器相比);而另一方面,如果以前单独使用处理器,FPGA逻辑的存在使某些任务能够在硬件中实现,从而提供加速并释放处理器用于其他任务。

以前需要专用处理器和FPGA的系统可以从两个物理器件减少到一个,从而节省了接口工作量、功耗、材料清单成本等。

这些考虑因素在[3]中进一步讨论,特别是Zynq-7000。然而,我们发现类似的因素促使Zynq MPSoC的使用。如接下来所述,Zynq MPSoC提供了处理单元的进一步集成,扩展了Zynq的PS部分,包括实时处理引擎、图形处理器和视频编解码器(某些器件具备),以及功能更强大的应用处理器。

3. Xilinx Zynq MPSoC

与Zynq相比,Zynq MPSoC代表了架构的扩展和扩展。尽管由相同的高级组件(PS和PL,使用AXI互连接口)组成,但PS更为复杂,PL从Xilinx的7系列升级为UltraScale+ FPGA架构。在大多数Zynq MPSoC系列中,PL的尺寸也比Zynq系列器件大。

3.1 Zynq MPSoC的发布

Zynq MPSoC于2015年首次发布,距离Zynq首次发布已有四年时间。在这段时间里,Zynq在各种应用领域得到了广泛应用,通过这一点,对完全集成的“FPGA+处理器”解决方案的需求已经根深蒂固。

Zynq MPSoC提供了增强型PS和更大的PL(有多种不同尺寸可供选择)。Zynq MPSoC系列已经建立了子家族,以满足不同类型的应用及其需求,特别是在PS资源方面。这些子家族通过两个字母的名称来区分:CG、EG和EV,其中两个字符的含义如表2所示。

表2:Zynq MPSoC子族标识符

图片

Zynq MPSoC并没有取代Zynq,而是提供了一种类似形式的扩展和增强解决方案。Zynq器件将继续是低成本、低复杂系统的合适选择。

3.2 Zynq MPSoC体系结构和特点

与Zynq相比,Zynq MPSoC包括一组扩展的资源,有三种变体(即CG、EG和EV子家族)。PS和PL的主要特征如表2.4所示。在后面章节详细了解体系结构时,我们将详细介绍这些资源的功能。

Zynq MPSoC架构的另一个重要发展是其电源管理功能。器件被划分为四个独立的电源域,可以单独操作。这意味着设备的未使用部分可以在不需要时断电,从而提高整体电源效率。另外,安全功能也得到了增强。

此外,需要强调的是,Zynq MPSoC得益于UltraScale+ FPGA体系结构(将在第4.3节中进行介绍),其中包括对Zynq使用的7系列体系结构的某些改进。两个特别显著的区别特征是包含了UltraRAM,以及将DSP Slices进一步升级为DSP48E2(DSP48E1包含在Zynq中)。

表3中突出显示了资源最小和最大的器件。通过与表1进行比较,请注意,Zynq MPSoC系列包括具有比Zynq系列大得多的PL面积的器件。这使得Zynq MPSoC在需要大量使用PL时成为更好的选择,例如,作为嵌入式系统设计的一部分,用于一组复杂算法的硬件加速。

表3:基本资源比较(最小和最大Zynq MPSoC的PL)

图片

a.不包括高速串行接口。

表4:Zynq MPSoC的特性概述(按子家族)[24]

图片

各种Zynq MPSoC芯片还包含不同数量的其他PL资源类型(DSP48x Slices、块RAM等)—有关完整信息,请参阅详细的技术手册。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/910604.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

mac 本地docker-mysql主从复制部署

mac 本地docker-mysql主从复制部署,服务器同理 1.本地docker启动两个mysql服务.端口号不一样 没有选择挂载到宿主机.只做测试用. 只是端口号不一样容器删掉.就没有数据了. 生产测试,需要挂在 master docker run -d --name mysql-slave -p 3308:3306 \ -e MYSQL_ROOT_PASSWORD…

七.numpy模块

NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。 NumPy 的前身 Numeric 最早是由 Jim Hugunin 与其它协作者共同开发,2005 年,Travis Oliphant…

测试用例小锦囊——基于思维导图的测试用例生成和维护

敲黑板,测试用例真的很重要! 测试用例是测试工作的基础,通过提供结构化和系统化的方法,来帮助验证软件产品的功能是否按预期正确实现,从而确保软件质量,提升用户满意度。 测试用例的关键要素包括用例编号、…

Linux网络命令:用于查看和修改路由表的重要工具ip route 详解

目录 一、概述 二、用法 1、基本语法 2、参数说明 3、常用选项 4、获取帮助 三、基本用法示例 1、 查看路由表 2、 添加路由 3、 删除路由 4、 修改路由 5、 添加默认路由 6、 删除默认路由 四、路由表管理 1、查看所有路由表 2、指定路由表 五、其他选项 1、…

银行信贷风控专题:Python、R 语言机器学习数据挖掘应用实例合集:xgboost、决策树、随机森林、贝叶斯等

银行信贷风控专题:Python、R 语言机器学习数据挖掘应用实例合集:xgboost、决策树、随机森林、贝叶斯等 原创 拓端研究室 全文链接:https://tecdat.cn/?p38026 在当今金融领域,风险管控至关重要。无论是汽车贷款违约预测、银行挖掘…

容器内pip安装Apache Airflow的经历:如何重置初始密码

背景 Apache Airflow™https://github.com/apache/airflow 是一个开源平台,用于开发、调度和监控面向批处理的工作流程。Airflow 可扩展的 Python 框架使您能够构建几乎可以连接任何技术的工作流程。Web 界面有助于管理工作流程的状态。Airflow 可以通过多种方式部…

RHCE作业四

一要求: 1.搭建dns服务器能够对自定义的正向或者反向域完成数据解析查询。 2.配置从DNS服务器,对主dns服务器进行数据备份。 二操作: 主服务器 1.安装 2主配置真反向 3正反设置 区域 1安装 2添加allow-transfer 3增量 4重启 Systemctl …

算法练习:1658. 将 x 减到 0 的最小操作数

题目链接:1658. 将 x 减到 0 的最小操作数 这道题目的意思就是,给定一个整数数组,和一个x,只能从数组最左边或者最右边进行删除,使得x恰好等于0,并且要操作次数最少的情况,否则返回-1. 这道题直…

职场如雷场,稍有不慎就会被炸翻?十大生存法则送给你

大多数人的一生都要经历过:求学,入职,退休三个阶段。其中职场生涯一般都在30至40年左右,占据了人生的大部分时间,而这段时间,是每个人最年富力强,精力充沛的时光。 那么,如何把这人…

这款神器,运维绝杀 !!!

项目简介 CrowdSec 是一款开源的、基于社区协作的网络安全防护工具,它通过分析和共享IP信誉数据来对抗恶意行为。该软件不仅支持IPv6,而且相较于传统的Python实现,其采用Go语言编写,运行速度提升了60倍。CrowdSec 利用Grok模式解析…

[C++] cpphttplib使用https而不是http

前言 首先我们假设是直接使用 httplib.h 的源文件。 支持 https 根据readme来看,需要开启一个宏,链接libssl和libcrypto就可以了。 下载openssl 保姆级OpenSSL下载及安装教程 选择非light的版本,这样才会有头文件和lib库引入文件。 编写C…

gitee 使用 webhoot 触发 Jenkins 自动构建

一、插件下载和配置 Manage Jenkins>Plugin Manager 搜索 gitee 进行安装 插件配置 1、前往Jenkins -> Manage Jenkins -> System -> Gitee Configuration -> Gitee connections 2、在 Connection name 中输入 Gitee 或者你想要的名字 3、Gitee host URL 中…

MDC(重要)

1.简介 MDC 介绍​ MDC(Mapped Diagnostic Context,映射调试上下文)是 log4j 和 logback 提供的一种方便在多线程条件下记录日志的功能。MDC 可以看成是一个与当前线程绑定的Map,可以往其中添加键值对。MDC 中包含的内容可以被同一…

Linux—进程学习-01

目录 Linux—进程学习—11.冯诺依曼体系结构2.操作系统2.1操作系统的概念2.2操作系统的目的2.3如何理解管理2.4计算机软硬件体系的理解2.5系统调用和库函数的概念 3.进程3.1进程是什么3.2管理进程3.2.1描述进程-PCB3.2.2组织进程3.2.3总结 3.3查看进程 4.与进程有关的系统调用 …

初始JavaEE篇——多线程(5):生产者-消费者模型、阻塞队列

找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程程(ಥ_ಥ)-CSDN博客 所属专栏:JavaEE 文章目录 阻塞队列生产者—消费者模型生产者—消费者模型的优势:生产者—消费者模型的劣势: Java标准库中的阻…

Redis常见面试题(二)

Redis性能优化 Redis性能测试 阿里Redis性能优化 使用批量操作减少网络传输 Redis命令执行步骤:1、发送命令;2、命令排队;3、命令执行;4、返回结果。其中 1 与 4 消耗时间 --> Round Trip Time(RTT,…

Scala学习记录,List

List是一个不可变(immutable)的序列。特点:数据是有序的 前面学习的Set,Map数据是无序的;Array是有序的,Array数组物理空间上是连续的 List可变不可变: list中不可变的列表是不能修改的 list…

【从零开始的LeetCode-算法】1456. 定长子串中元音的最大数目

给你字符串 s 和整数 k 。 请返回字符串 s 中长度为 k 的单个子字符串中可能包含的最大元音字母数。 英文中的 元音字母 为(a, e, i, o, u)。 示例 1: 输入:s "abciiidef", k 3 输出:3 解释&#xff1a…

0-基于图的组合优化算法学习(NeurIPS 2017)(未完)

文章目录 Abstract1 Introduction2 图上的贪婪算法的通用表述3 表示:图嵌入3.1 Structure2Vec3.2 参数化 Q ^ ( h ( S ) , v ; Θ ) \widehat{Q}(h(S), v; \Theta) Q ​(h(S),v;Θ)4 Training: Q-learningAbstract 为NP-hard组合优化问题设计好的启发式或近似算法通常需要大…

RK3568平台开发系列讲解(设备树篇)设备树(device Tree)的由来

🚀返回专栏总目录 文章目录 一、设备树的由来二、设备树的组成沉淀、分享、成长,让自己和他人都能有所收获!😄 一、设备树的由来 首先不得不提到Linus的一封重要的邮件:(硬件解耦)(可以复用的代码) Gaah. Guys, this whole ARM thing is a f*cking pain in the ass.…