FPGAs,Zynq和Zynq MPSoC器件的特点

fpgas,zynq 和 zynq mpsoc!
zynq mpsoc是zynq-7000 soc(之后简称zynq)的进化版本。zynq是赛灵思发布的集成pl(fpga)和ps设计的最早的一代产品。如图2.1所示,在相对较高层次对比了三种器件。zynq mpsoc的ps部分比zynq的ps部分面积更大,也更复杂。本章,将介绍这三种器件的特点.
2.1 技术时间线
进一步介绍之前,需要指出这三种产品都有各自的优势,在选择时,并不是越贵越好,而是最适合我们设计的选择才是最好的选择。这三种产品都有自己在成本,性能等方面最好的平衡,这使其可适用于不同的任务和应用。
因为大多数读者比较熟悉zynq,因此我们从它开始介绍,以方便后面我们将zynq mpsoc与其进行对比。因为fpga 是所有soc产品的pl部分,因此,我们稍后再做介绍。
2.2 zynq-7000 soc
zynq-7000 soc是xilinx发布的第一款soc器件。集成了基于fpga的pl部分和基于arm的ps部分。这里只对其做简单介绍。更详细介绍可参考[the zynq book](http://www.zynqbook.com/)该书已出中文版。
2.2.1 zynq架构特征
从高层次的角度去看,zynq架构包含ps和pl两部分以及之间的互连线。如图2.3所示。互联遵循axi标准,axi标准是arm开发的片上通信技术标准。
将ps和pl集成到一起一方面能够为运行嵌入式系统中的基于软件的部分提供专用的优化的资源(我的理解是适合运行于处理器的部分),另一方面能够发挥fpga的优势(尤其时其并行性和可配置能力)。axi接口来连接这两个不放呢,axi是专为soc应用优化的一个接口标准。
图2.3中并不是按尺寸比例画的,对于不同的zynq器件,他们有相同的ps架构,但是pl部分的尺寸不同。而对于zynq和zynq mpsoc,其ps和pl部分都是不同的。
zynq ps部分
如图2.3的蓝色部分,是一个应用级的处理器以及相关元件。如下所示:
应用处理单元application processor unit (apu) -这部分包括一个双核 arm cortex-a9处理器,以及256kb的片上缓存。
互连线和存储接口 -用来进行pl和ps通信以及与各自的片外存储单元通信
i/o外设 -一系列集成的外设接口,包括一些常用的标准例如 usb,uart,spi,i2c等
zynq的ps部分包含两个处理核,这使得设计人员可以在两个核上运行相同操作系统,或者每个核运行一个不同的操作系统。后面我们会对比zynq核zynq mpsoc的ps架构,并说明新器件增加的一些功能,实际上,zynq mpsoc具有6个处理核。
最近(应该是2019年),一个轻量级的zynq版本,zynq-7000s发布,该版本ps只包含一个cortex-a9的处理器。
zynq pl部分
zynq的pl部分是基于xilinx的fpga器件的,其pl部分所对应的器件性能决定pl性能,包括xilinx的artix-7,kintex-7以及virtex-7系列器件。像这些fpga一样,其pl部分包含dsp48x slices(高速计算资源),block rams,高速收发器件,以及集成的通信模块。以及通用逻辑。2.4.3节对现代fpga的这些模块进行进一步介绍。
zynq ps与pl部分接口
zynq的pl和ps部分有9个接口,包括4个“通用目的接口”,四个“高性能”接口,以及1个用来ps中apu和pl通信的“加速一致性”接口。
2.2.2 zynq器件
表2.1对zynq-7000系列器件的关键特征和参数进行了对比(注意这里并没有给出单核的zynq-7000s系列对比,可查看zynq-7000 soc data sheet: overview文档)。
对于列出zynq-7000系列器件,除了支持的最大时钟频率其ps部分是没有区别的。而其pl部分与其所基于的fpga型号相似,例如基于artix-7的pl部分与artix-7资源类似。不同型号的pl部分在dsp slices,block ram以及输入输出资源上有所区别。
2.3 xilinx zynq mpsoc
zynq mpsoc是zynq的进阶版本,其ps部分更加复杂,pl部分也由xilinx7系列升级到ultrascale+ fpga架构,对于大多数zynq mpsoc器件,其pl部分的资源和面积要比zynq系列要多。
2.3.1 zynq mpsoc发布
zynq mpsoc是在zynq发布四年之后的2015年发布的。在这四年期间,zynq在应用于了很多领域,因此诞生了fpga+processor的需求。
zynq mpsoc提供了加强版的ps以及更多资源和面积的pl.包含不同子系列以满足不同应用的需求,其不同主要体现在ps资源上。三个子系列分别由两个大写字母表示,分别为cg系列,eg系列以及ev系列,这两个字母的意思如表2.2所示。
zynq mpsoc并不是zynq的替代品,只是以相同的形式提供了一个扩展增强的解决方案。zynq对于更适用相对来说低消耗和稍微简单的系统。
2.3.2 zynq mpsoc架构及其特点
zynq mpsoc的三个子系列ps和pl部分资源如表2.4,在后面几章本书会详细介绍这些特点。
zynq mpsoc架构的另外一个重要特点是其电源管理能力。该器件被分为四个电源区域,可以被单独控制,这意味着可以给闲置部分断电(power down),提高电源效率。另外,zynq mpsoc架构的安全方面也得到了进一步加强。
额外需要强调的是, zynq mpsoc架构pl部分所采用的ultrascale+ fpga架构(2.4.3节讨论)相对于zynq所采用的7系列也有很大增强。两个非常重要的特征是其包含了ultraram以及dsp由dsp48e1发展为dsp48e2。
该器件系列的pl部分对于不同型号资源也不同,表2.3给出了最少和最多资源的情况,与zynq的pl部分(表2.1)相比,zynq mpsoc具有更多的资源,适合开发对pl资源要求更高的加速应用。
2.4 fpga
fpga是以上两种器件pl部分的基础,也是最早出现的器件。因此我们对其发展进行回顾,接着介绍一些应用,最后介绍现代fpga技术的架构和特征。
2.4.1 什么是fpga
(fpga介绍资料较多这不再赘述及翻译)
2.4.2 fpga发展
xilinx的fpga架构从最开始的只有64个触发器和3输入查找表(lut实现逻辑功能)。随着fpga技术的发展,其面积不断增大,逻辑资源不断增加。其架构也在发展,,功耗不断降低,越来越能够用于更高的频率。而且大量的专用资源例如高速存储器,计算模块,时钟和互联也在不断发展。
从fpga的规模来看,用“逻辑单元(logic cells)”来度量逻辑密度,我们从稍微抽象的较低层次考虑体系结构之间的差异。图2.4.张图总结了fpga在“逻辑单元”方面的发展。以5年为一个时间节点展示了过去15年来发展。并将其与第一块fpga(1985年发布)对比,可以看到,如今的fpga即使相对于过去10年的发展已经相当大,更不用是更早期的fpga。可以看到,第一块fpga在图中左侧只能用一个点来表示。另外,今年,也有一些比较先进但相对低端的设备可供需求不高的开发者选择。大框中的小框代表该系列较低端的器件。
仅从逻辑单元方面对比,表2.5给出了xc2064和如今最先进的器件virtex ultrascale+ vu13p的对比。这还不包括近年来不断发展的架构等更先进特征的发展。
xilinx基础的fpga结构仍然是一个二维的数字逻辑元件阵列,以clb分组。每一个clb包含少量的触发器(flip-flop)和查找表(lut),其中lut用来实现布尔逻辑函数,小块存储器以及移位寄存器。从更底层面看,clb的组成随着时间在不断发展,现代的clb比早期的clb含有更更多的逻辑资源。我们保留了这个术语,clb仍然是将可编程互连线(programmable interconnects)和开关矩阵(switch matrices)连接到一起。当然这种连接技术也有了很大提高。在图2.5中,可以看到clb的阵列结构的一个图示,开关矩阵和可编程互连线可在图2.5底部看到。
随着应用要求的发展,fpga架构也在不断发展,更大的存储单元(从bock ram 到最近的 ultra ram)提供了更大密度更高速度的存储能力,例如更大的存储使得能够在器件中存储视频数据。在2000年左右集成了乘法器,之后又集成了算术处理模块(dsp48x slices)能够进行乘法,加减法以及其他的逻辑计算。当然,dsp这些年来也有了很大的发展。
随着fpga技术越来越多的应用于基础通信设施,数据中心,高性能云计算,支持包含高速串口的ip块价值越来越大。
如表2.6所示,除了更大的面积,最新的fpga包含更加专用的资源和功能。
下一节我们继续讨论ultrascale+ fpgas的更多的细节。
现代fpga架构:ultrascale+
现代的fpga架构本质上也是一个器件的二维阵列。从某种意义上与早期的器件类似。其特点正如之前强调的时含有更丰富的资源,器件面积更大。
图2.5时ultrascale+ fpga资源的一个图示,从较高的一个抽象层次来看,该图可认为由竖直方向的一块块区域组成。大部分区域属于通用目的逻辑(general purpose logic)。例如由查找表和触发器组成的clb。还有一部分区域是ultra ram存储块以及dsp58x计算单元,排列在单或双列,组成较窄的竖直条纹区域。
在接口方面,输入/输出块被排列在bank(不好翻译)中,并在主要资源阵列中形成列。输入输出块(iob)支持各种接口标准。另外的连接是以高速串行收发器的形式提供的,这些收发器通常位于fpga边缘的四组。在这些基础上,提供了专用块来支持选定的通信标准(见表2.6)。在fpga结构中还存在用于配置、时钟管理和系统监控的额外资源。
dsp功能
数字信号处理(dsp)的大部分操作都是定点数乘法和加法操作。常见的dsp任务,如有限脉冲响应(fir)滤波和快速傅里叶变换(fft)的计算,主要操作是加法/减法、乘法和采样延迟(sample delays)。在xilinx fpga中,这些操作主要由dsp48x slice完成。这个slice的简化框图如图2.6所示,该图显示了其算法操作和字长(wordlengths),省略了一些附加功能。例如延迟元件,信号路径以及多路复用器等。为了实现fir或者fft,可以将dsp48e2 slices级联到一起(不需要消耗fpga资源)。例如需要实现一个比单独dsp slice字长更长的加法器——比如实现一个96位的加法器——可以将多个dsp48e2组合到一起。
除了计算功能外,dsp48e2 slice还可用于桶形移位寄存器、模式检测(pattern detection)以及其他逻辑操作。更多关于dsp48e2的完整信息,包括与之前的dsp48ex相比的改进细节.可以查看文档:ultrascale architecture dsp slice: user guide
存储支持
fpga中的存储器可以由clb资源组成,由clb组成的的存储资源经常被用来存储少量数据。对于较大的存储,可以用block ram(能够存储36kb,或分为两个18kb的存储器),在ultrascale器件中,集成了具有更大存储能力的ultra ram(每个288kb)。更大的存储器可以通过组合block ram 或者ultra ram实现。
block ram和ultra ram是作为fpga上的专用物理block实现的,而不是由通用的更底层的逻辑元件组成的。它们支持高性能操作,能够以设备支持的最大时钟频率运行。ultra ram在不用时可以单独断电。关于ultra ram的更多细节参考文档:ultraram: breakthrough embedded memory integration on ultrascale+ devices。
图2.7给出了fpga上四种可用的存储资源。
随着器件面积的增加,尤其是ultra ram的引入,片上存储能力不断增强,这使得可以减少甚至消灭对片外存储的依赖。这使得我们减少了额外的系统消耗,接口努力(effort),能耗以及延迟和性能限制。图2.7的每一种存储都有各自的特征,在不同的任务中可以选择合适的。取决于采用的设计方法,设计人员能够选择特定的存储资源或者直接让综合工具去选择。
2.5 对比和讨论:fpga,zynq和zynq mpsoc
这一节总结了fpga,zynq和zynq mpsoc的不同特点,包括其架构、功耗、性能以及他们在嵌入式系统实现时的特点。
2.5.1 架构
(本小节大部分内容前面都已经提到过这里只给出一个结论性表格,更详细的总结可参考原书)
2.5.2 功耗和性能
多年来,在降低电力消耗的同时,在提高性能(即。最大处理频率,或“速度”)。从1985年发布的xilinx fpga到2011年7系列器件,能耗(每个逻辑单元测量)减少了1000倍以上。同时,性能增加了大约100倍。我们下面对这些器件进行一个简单的比较。
功耗
(参考原书)
性能
计算性能通常用最大处理频率来度量。为了比较性能,表2.8比较了ps和pl元件的最大时钟频率。
总之,fpga和soc设备的功耗是密切相关的,因为所有的soc都包括一个与fpga有效相同的pl区域。与zynq和zynq mpsoc相比,zynq mpsoc器件的中的功耗(每个逻辑单元)较低,整体性能较高,这是由于ultrascale+ fpga体系结构的各种优化所致。在ps方面,zynq mpsoc体系结构更加复杂,提供了更高的性能,还包括了电源管理等附加特征。


三星Galaxy S24 Ultra手机发布
突破! 中国造出9nm光刻试验样机!
满足高带宽和低功耗需求的Virtex
苹果明年将在后置三摄像头上添加3D Sensing技术
iPhone手机怎样防止垃圾短信骚扰
FPGAs,Zynq和Zynq MPSoC器件的特点
多项数据显示,制造业或在3月迎来较大反弹
如何为树莓派选择最佳版本的Kodi
SF-EP1C开发板之基于74HC595的数码管实验
一个关于三相Vienna拓扑技术知识(上)
无线dmx512收发器
“曾经月销3万3,如今月销两三千”-全新科鲁兹,这到底是怎样的一款车,竟然落魄到如此下场?
EMC对于存储的重要性
贴片三级管怎么测好坏?
从中国角度看视频滤波器和机顶盒市场
电流前馈P+PI控制器设计如何实现?
2K分辨率升级都有哪些需要注意的呢?
如何使用python进行第一个机器学习项目(详细教程篇)
怎样快速估算PCB表面铜导线电阻值
如何正确使用线束线材测试仪的导通功能