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

news/2024/11/18 13:54:17 标签: fpga开发, MPSOC

引言:本文简要介绍FPGA器件技术发展以及当今FPGA器件的体系架构和特性。

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

在本章涵盖的三种器件类型中,FPGA是建立时间最长的,也是Zynq和Zynq MPSoC器件PL元件的基础。因此,我们将从简要的FPGA开发回顾开始,然后对其应用进行一些说明,然后介绍当今FPGA技术的架构和特性。

1. 什么是FPGA?

对于刚接触该领域的读者来说,简要介绍FPGA可能会很有用。FPGA代表现场可编程门阵列(Field-Programmable Gate Array)。首字母缩略词中的“门阵列”部分反映了FPGA器件最初是由逻辑门阵列组成的。现代FPGA不仅仅由简单的门组成,而是包含可重新配置的电路元件。稍后我们将更详细地讨论架构。”现场可编程”反映了FPGA在制造后(“现场”)可由系统开发人员和最终用户进行编程,事实上,它们可以根据需要进行重新编程,以实现新的硬件功能。

Xilinx等FPGA供应商不仅提供物理器件,还提供用于开发FPGA设计并最终编程的开发工具。为了提高生产力,还有预先验证的IP核(称为知识产权、参考设计、文档等)。在某些情况下,支持还扩展到第三方软件公司和设计公司。Zynq和Zynq MPSoC器件共享并扩展用于FPGA设计的工具和资源套件。

2. FPGA的发展

自早期以来,FPGA架构已经以多种方式发展,当时FPGA只包括64个触发器和3输入查找表(LUT,用于实现逻辑功能)。器件的尺寸已经增长,已包括更多数量的逻辑资源,并且这些逻辑资源的架构已经发展。FPGA能够在更高的频率下工作,并且消耗更少的功率。此外,还整合了许多专用资源,包括高速存储器,以及对算术、时钟和互联的支持。

图片

图1:以逻辑单元为单位的相对FPGA尺寸(选定年份和世代)的比较
(注意,对于所示的每一代,内框表示最小的器件,外框表示最大的器件)

暂时着眼于规模,请考虑图1。该图总结了FPGA在“逻辑单元”方面的扩展,“逻辑单元是逻辑密度的度量,从低级别元素中稍微抽象出来,以考虑架构之间的差异。在过去的十五年中,以五年为间隔,给出了最现代的器件的快照,并将其与第一个FPGA(1985年)进行了比较。很明显,今天的FPGA甚至让10年前的FPGA相形见绌,更不用说最早的器件了!请注意,第一个FPGA(XC2064)由图1左侧的小点表示。尤其是近年来,出现了高端、中端和低端器件的选择,在图中分别用红色、绿色和蓝色方框表示。

XC2064与当今最大的可用设备(就逻辑单元而言)Virtex UltraScale+ VU13P设备之间的数字比较如下表所示。这种比较不包括在中间时期引入架构的一些更先进的功能。

表1:基本资源比较(Xilinx的第一个FPGA与最新和最大的FPGA)

图片

a.现代FPGA具有6个输入LUT,早期的设备具有4输入LUT逻辑单元;

b.“逻辑单元”定义为一个4输入LUT和一个触发器。反映出较新器件的逻辑密度增加,6输入LUT和2个触发器被视为约1.6个逻辑单元。

Xilinx FPGA的基本架构仍然是简单数字逻辑元件的二维阵列,分组为CLB。每个CLB包括少量的触发器和查找表(LUT),其中LUT能够实现布尔逻辑功能,以及小型存储器和移位寄存器。CLB的精确组成随着时间的推移而演变,现代技术中的一个CLB比旧设备中的CLB代表了更多的逻辑量。CLB仍然与可编程互连和交换机矩阵连接在一起,尽管这种连接基础设施也有所改进。您可以在图5的底部看到CLB、开关矩阵和可编程互连的阵列结构。

FPGA体系结构不断发展,以满足应用需求。更大的内存块(“块RAM”,以及最近的“超RAM”)提供了密集、高速的内存功能。例如,允许在设备上存储大量的视频数据。专用乘法器在2000年左右被引入,后来发展成为能够进行乘法、加法/减法和其他逻辑功能的集成算术块(DSP48x片)。自2004年推出以来,DSP48x切片已经自行开发,x后缀表示存在几种变体。

支持硬IP块形式的高速接口(即在器件上的硅中物理实现的功能块)与高速串行接口一起集成到选定的FPGA中。随着FPGA技术在通信基础设施、数据中心、高性能和云计算中的广泛应用,这些资源非常有价值。

如表2所示,除了更大的规模外,最新的FPGA还包括重要的专用资源和功能。

表2:关于UltraScale+ FPGA示例的高级资源

图片

3. 现代FPGA体系结构:UltraScale+

现代FPGA本质上是一个二维的元件阵列,从这个意义上说,它们与早期的器件相似。然而,阵列的组成在资源方面要丰富得多;当然,正如前面强调的那样,器件更大。

图2是UltraScale+ FPGA资源布局。在高抽象级别上,FPGA器件布局包括包含不同类型资源的垂直区域。器件的大部分区域被分配为通用逻辑,即CLB,主要由LUT和触发器组成。块RAM和超级RAM存储块以及DSP48x算术Slices,排列在器件上的单列或双列中,形成薄的垂直“条纹”。

图片

图2:UltraScale+布局示例

在接口方面,输入/输出块按组排列,并在资源的主阵列内形成列。IOB可以支持各种接口标准。以高速串行收发器的形式提供了额外的连接,这些收发器通常位于FPGA的边缘,每组四个。在这些附近,提供了专用块来支持选定的通信标准(如表2所示)。FPGA结构中还存在用于配置、时钟管理和系统监控的其他资源。

3.1 DSP功能

数字信号处理(DSP)在很大程度上依赖于定点乘法和加法运算。常见的DSP任务,如有限脉冲响应(FIR)滤波和快速傅立叶变换(FFT)的计算,完全由加法器/减法器、乘法器和采样延迟构成。

对这些操作的支持是通过Xilinx FPGA中的DSP48x切片(特别是UltraScale+设备中的DSB48E2变体)提供的。图3提供了该切片的简化框图,显示了算术运算和字长,但省略了一些补充功能,如延迟元件、信号路径和多路复用器。DSP48E2片可以级联在一起(不需要使用架构资源),以创建有限脉冲响应(FIR)滤波器或快速傅立叶变换(FFT)结构。在需要比单个DSP片上可用的更长的字长的情况下,例如,为了实现高达96位的非常宽的加法器可以组合两个或多个DSP48E2片。

除了算术功能外,DSP48E2片还可用于桶移位、模式检测和其他逻辑运算。关于DSP48E2的完整信息,包括与以前的DSP48x切片相比的改进细节,可以在[21]中找到。

图片

图3:用于高速运算的DSP48E2片的简化框图

3.2 内存支持

存储器可以使用CLB资源在FPGA上实现,这通常是存储少量数据的首选方法。对于较大的存储器,有块RAM(能够存储36Kb,或充当两个较小的18Kb部分),而在UltraScale设备中,有具有更大存储能力的Ultra RAM(每个288Kb)。可以通过组合块RAM或超级RAM来创建更大的存储器。块RAM和超级RAM由FPGA上的专用物理块实现,而不是由通用的低电平逻辑元件构成。它们能够在器件支持的最大时钟频率下运行,实现高性能操作。如果当前配置不使用Ultra RAM,也可以将其断电,或者在操作设计不需要时长时间进入睡眠模式。

数据存储有四种可能性,如图4所示。

图片

图4:FPGA存储器类型的比较

随着更大的设备,特别是Ultra RAM的引入,可在芯片上存储比前几代更多的数据。这是有利的,因为它减少或消除了对片外存储器的要求,以及隐含的额外系统成本、接口工作、功耗和延迟,以及性能限制。每种内存类型都具有使其成为某些任务的最佳选择的特性。根据所采用的设计方法,设计者可以明确地针对特定的内存资源,或者允许合成工具做出这些决定。

4.比较与讨论:FPGA与Zynq与Zynq-MPSoC

本节将总结FPGA、Zynq和Zynq MPSoC在架构、功耗和性能以及嵌入式系统实现功能方面的差异。还将提及特别适合于这些器件的应用。关于设计方法、嵌入式系统实现和应用的进一步讨论将在本书后面进行,重点讨论Zynq MPSoC。

4.1架构

在比较FPGA、Zynq和Zynq MPSoC器件的架构时,我们可以总结出三个关键区别

•Zynq和Zynq MPSoC都提供硬处理器,而FPGA则不提供。

•Zynq MPSoC的PS比Zynq的更大、更强、更多样。

•最大的FPGA比最大的Zynq和Zynq MPSoC设备提供更多的PL。

Zynq是Xilinx的第一款SoC设备,将应用级处理器与FPGA逻辑相结合。Zynq MPSoC代表了Zynq的演变,其提供了更广泛的处理资源;例如,Zynq MPSoC提供实时处理器、图形处理器以及应用处理器。另一方面,Zynq只有一个应用程序处理器。FPGA不包括硬处理器,尽管一个或多个“软”处理器可以合并到基于FPGA的系统中(即,由通用逻辑构建,有关此主题的更多讨论,请参见第5.3节)。

所有三种器件类型都包括PL。自FPGA首次发布以来,PL的架构已经发展了30多年,已经开发了许多不同的代。另一方面,Zynq和Zynq MPSoC具有与特定代FPGA逻辑相关的PL区域的特征区域。具体来说,Zynq采用7系列逻辑,而Zynq MPSoC采用UltraScale+逻辑。在CLB布局、DSP和存储器、互联、时钟和电源功能方面存在许多差异。

表7提供了可用资源的快速比较。我们可以看到,最新的FPGA虽然不包括处理系统,但提供的PL量最大,大约是最大的Zynq MPSoC的三倍。还值得注意的是,Zynq MPSoC设备包括比Zynq大得多的PL部分,以及扩展的PS功能。

在FPGA和SoC设备的PL部分,接口资源由通用I/O和高速串行收发器组成,并由强化的IP资源补充,以支持以太网和PCI Express等标准。Zynq和Zynq MPSoC设备的PS部分提供了进一步的标准接口(例如CAN、I2C、USB等)作为强化资源。Zynq MPSoC包括Zynq上不存在的一些硬化界面,例如因特拉肯界面作为硬化块被包括在选定的Zynq MPC芯片上。

表7:FPGA、Zynq-7000 SoC和Zynq-MPSoC之间的资源比较

图片

4.2功耗和性能

多年来,在提高性能(即最大处理频率或“速度”)的同时,在降低功耗方面取得了相当大的进展。从1985年引入Xilinx FPGA到2011年发布7系列器件,能耗(按每个逻辑单元测量)减少了1000倍以上。在同一时期,业绩增长了约100倍。

4.2.1功耗来源

由于便于编程和保持设备配置所需的底层架构,可编程设备的功耗自然高于固定功能等效IC。

在FPGA术语中,我们通常指功耗的两个元素,静态功率和动态功率,其可以定义如下:

静态功率—就保持其配置而言,这包括芯片运行所需的功率。静态功率是由于晶体管漏电流(即即使晶体管处于“关断”状态也会流过晶体管的电流)而产生的,并且随着器件的尺寸(即晶体管数量的增加)而增加。静态功耗也随工艺技术、电压和工作温度而变化。

动态功率—由于开关活动,芯片上的设计操作产生的额外功率。它是频率相关的,例如,如果触发器在200MHz下切换,将比100MHz消耗更多的功率。动态功耗可以随着时间的推移而变化,这取决于电路元件的活动,也取决于所提供的电压电平以及用于实现设计的逻辑和路由。工程师可以通过优化其低功耗设计来影响动态功率,例如,通过确保电路元件的时钟频率不高于所需的频率。

4.2.2功耗的提高

工艺技术的进步,即使用具有越来越小的特征尺寸的ASIC制造工艺,在一定程度上解释了上述功耗和性能的改进。这在很大程度上符合摩尔定律(也就是说,英特尔联合创始人戈登·摩尔在1965年做出的预测,即芯片上的晶体管数量大约每两年翻一番)。然而,现在人们普遍猜测,摩尔定律的终点可能很近。以较小的工艺几何形状进行制造变得越来越困难,成本也越来越高。

在FPGA方面,随着工艺几何结构的缩小,仍然可以实现性能增益,但额外的漏电流会增加静态功耗。这限制了纯粹通过在较小尺寸中制造相同类型的晶体管来实现进一步的FPGA/SoC功率降低的可能性。然而,晶体管结构的转变,从平面式到“FinFET”,带来了好处。Xilinx首次在其16nm器件中采用FinFET,其中包括UltraScale+ FPGA和Zynq MPSoC。

为了应对制造趋势的放缓,重点已转向架构改进,以及开发设计工具和方法,使系统能够更高效地实现。

在UltraScale和最近的UltraScale+ FPGA系列中,引入了新的体系结构功能来降低功耗,例如对CLB体系结构、DSP48x片和内存结构的改进,以及更高效的互连。还有一些器件选项可以在较低的内核电压下运行,这允许设计者权衡功耗与性能。诸如时钟门控(即,确保设备的未使用部分不主动工作并消耗能量)之类的技术也在降低功耗方面发挥作用。7系列FPGA和Zynq引入了一种“智能”时钟门控功能,可以自动应用时钟门控,而无需设计师手动将其纳入系统。Xilinx设计工具定期更新,以利用新一代的架构发展。

具体而言,在Zynq MPSoC中,平台管理单元(PMU)能够控制功率域和构成PS的各种处理引擎。由于大多数设计不会使用所有可用功能,因此可以通过关闭未使用的功能来实现节能。PMU还具有其他系统初始化功能,将在第10章中进一步讨论。

4.2.3性能

计算性能通常根据最大处理频率进行量化。为了比较性能,考虑PS和PL元件的最大时钟频率是有趣的。

表8:UltraScale+FPGA、Zynq-7000和Zynq-MPSoC的最大时钟频率

图片

a.实际数字取决于速度等级和工作电压。

总之,FPGA和SoC器件的功耗密切相关,因为所有SoC都包括与FPGA有效相同的PL区域。与Zynq和Zynq MPSoC相比,由于UltraScale+ FPGA体系结构中的各种优化,Zynq MP SoC设备的PL功耗(每个逻辑单元)更低,总体性能更高。就PS而言,Zynq MPSoC架构更为复杂,提供了更高的性能,还包括用于电源管理的附加功能。

4.3嵌入式系统实现

用FPGA等可编程器件实现嵌入式系统的愿望推动了Xilinx SoC器件的发展,以前是Zynq,最近是Zynq-MPSoC。

嵌入式系统(通常是一个或多个处理器、存储器、外围设备和互连,以及与外部存储器或其他组件的连接)可以使用单个可编程器件创建。有了处理器,系统可以支持软件应用程序,通常在操作系统上运行。该器件的可编程特性具有现场升级和运行时重新配置的常见优势,FPGA逻辑的并行架构支持加速适当的任务。

Zynq和Zynq MPSoC处理器具有相关联的存储器以及所选元件之间的互连。与Zynq相比,该Zynq MPSoC具有更多的专用处理元件。例如,已经引入了专用实时处理器来补充应用程序处理器。

FPGA支持嵌入式系统设计已经有一段时间了,最显著的是通过MicroBlaze处理器,这是一种由用户配置为IP核心的“软”处理器,由FPGA上的CLB资源构建。(这里的术语“软”与“硬”形成对比,这意味着器件上存在专用处理器。)

MicroBlaze等软处理器的一个明显优势是其灵活性。这些处理器可以针对预期应用进行定制,例如,如果不需要浮点支持,则可以省略浮点支持,这减少了实现处理器所需的PL资源。明显的缺点是性能劣势,硬处理器的性能远高于软处理器。为了量化差异,MicroBlaze处理器在UltraScale FPGA中的工作频率最高可达400MHz左右(取决于MicroBlaze核心的配置)。与Zynq和Zynq MPSoC设备中的应用程序处理器相比,这是一个低得多的性能水平。

因此,我们可以得出结论,SoC对于嵌入式系统来说更为优化。它们提供专用的高性能处理资源,能够在比基于FPGA的软处理器高得多的时钟频率下工作。Zynq MPSoC具有丰富多样的处理资源,可实现实时处理和图形处理。同时,仍然有机会在PL部分中使用一个或多个MicroBlaze实例,以补充位于PS中的主处理器。

4.4应用

FPGA已成为需要实现计算复杂系统的应用程序的首选平台,尤其是未来需要更新的情况下。由于FPGA具有可重新编程的特性,它支持现场升级,甚至可以实现动态重新配置的系统,即将器件重新编程作为正常操作的一部分。特别适合FPGA的应用示例包括移动基站信号处理、视频压缩和解压缩、雷达系统、数据中心的高速交换和路由基础设施等。每种情况下,处理都需要具有确定性和高性能,同时为引入新标准、配置或算法提供了潜力。

即使在可编程性不是关键问题的情况下,由于开发ASIC的非经常性工程(NRE)成本很高,FPGA通常比体积低于某个阈值的ASIC更受欢迎。人们普遍认为,这一阈值正在上升,这意味着ASIC现在只被认为适用于非常大容量的应用,或者当有特殊要求时,如最小形状因数或非常低的功率设计。

迄今为止提到的所有FPGA优点也适用于Zynq和Zynq MPSoC。通过增加处理器功能,这些设备专门满足可能需要单独处理器和FPGA的应用,将运行软件代码的能力与高速并行处理相结合。在Zynq MPSoC中,专用的实时处理能力、GPU和视频编解码器使系统能够在单个设备上实现复杂的系统。应用包括“大数据”分析、高级驾驶员辅助系统(ADAS)、广播摄像设备、导航系统和许多其他系统。我们将在第5章中进一步探讨应用程序。

5. 章节小结

本章介绍并比较了FPGA、Zynq和Zynq MPSoC。概述了每种器件的基本结构和特点,并介绍了它们的重要特点。我们特别看到,Zynq和Zynq MPSoC为标准FPGA可编程逻辑添加了一个处理系统,并且与Zynq相比,Zynq MPSoC中的处理系统提供了扩展的功能和性能。同样显而易见的是,随着Zynq MPSoC的发布,SoC器件上提供的PL已经大大扩展,我们注意到UltraScale+ FPGA所享有的功率和性能优势也适用于Zynq MPSoC器件。


http://www.niftyadmin.cn/n/5756115.html

相关文章

reactflow 中 reactflowprovider 组件作用

1. 提供全局状态管理 它主要用于提供全局的状态管理。它包裹整个 React Flow 应用或者相关的组件树,使得在这个范围内的所有子组件都能够访问和共享与 React Flow 相关的状态。 例如:在一个复杂的流程图绘制应用中,可能有多个组件需要知道当…

如何在vscode 中打开新文件不覆盖上一个窗口

在 VSCode 中,如果你单击文件时出现了覆盖Tab的情况,这通常是因为VSCode默认开启了预览模式。在预览模式下,单击新文件会覆盖当前预览的文件Tab。为了解决这个问题,你可以按照以下步骤进行操作 1.打开VSCode:启动你的…

Android 源码编译资料集

1、window环境下载Android系统源代码的方法 window环境下载Android系统源代码的方法 - yongfengnice - 博客园 2、安卓构建参考 构建 Android | Android Open Source Project 3、使用windows系统的WSL编译Android10系统 Android系统开发 使用windows系统的WSL编译Androi…

nodejs+mysql+vue3 应用实例剖析

文章目录 node.js vue3 mysql 应用后端实现(koa部分)1. 项目初始化与依赖安装2. 目录结构3. config/db.js - 数据库配置与连接4. models/user.js - 用户模型及数据库操作5. controllers/authController.js - 认证控制器6. controllers/userController.j…

Oracle Instant Client 23.5安装配置完整教程

Oracle Instant Client 23.5安装配置完整教程 简介环境要求安装步骤1. 准备工作目录2. 下载Oracle Instant Client3. 解压Instant Client4. 安装依赖包5. 配置系统环境5.1 配置库文件路径5.2 配置环境变量 6. 配置Oracle钱包(可选) 验证安装常见问题解决…

基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络

一、介绍 垃圾识别分类系统。本系统采用Python作为主要编程语言,通过收集了5种常见的垃圾数据集(‘塑料’, ‘玻璃’, ‘纸张’, ‘纸板’, ‘金属’),然后基于TensorFlow搭建卷积神经网络算法模型,通过对图像数据集进…

Java在移动端小程序开发中的性能优化研究

Java在移动端小程序开发中的性能优化研究 第一章 绪论 1.1 研究背景及意义 随着移动互联网的快速发展,移动端小程序以其即点即用的便捷性和轻量级特性,迅速成为用户获取服务的首选方式。在此背景下,研究Java在移动端小程序开发中的性能优化,对于提升用户体验、减少资源消…

9.2 使用haarcascade_frontalface_default.xml分类器检测视频中的人脸,并框出人脸位置。

1)程序代码: # 2.使用haarcascade_frontalface_default.xml分类器检测视频中的人脸,并框出人脸位置 import cv2# 加载人脸检测的 Haar 级联分类器 face_cascade cv2.CascadeClassifier(./data/haarcascades/haarcascade_frontalface_defaul…