![AMD FPGA设计优化宝典:面向Vivado/SystemVerilog](https://wfqqreader-1252317822.image.myqcloud.com/cover/811/47793811/b_47793811.jpg)
第1章 FPGA技术分析
1.1 芯片架构的演变
FPGA,英文全称是Field Programmable Gate Array,中文意思是现场可编程门阵列,是在PAL(Programmable Array Logic,可编程阵列逻辑)、GAL(Generic Array Logic,通用阵列逻辑)、CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件)等可编程器件的基础上进一步发展的产物。作为ASIC(Application Specific Integrated Circuit,专用集成电路)领域中的一种半定制电路,FPGA既弥补了全定制电路的不足,又克服了原有可编程器件门电路数目有限的缺点。
FPGA的两个主要特征就体现在其名称中,即“现场”和“可编程”。“现场”意味着工程师只需要一台计算机,安装了FPGA厂商提供的开发软件,外加焊接了FPGA芯片的板卡,即可完成从模型搭建到生成烧写文件的全过程;“可编程”意味着工程师可以根据设计需求,通过编程方式把FPGA内部逻辑块连接起来,这就好比把一个电路试验板放在了一颗芯片里。一个出厂后的成品FPGA内部的逻辑块和连接可以按照工程师的需要而改变,所以FPGA可以完成特定的逻辑功能。更重要的是这种编程是可以反复操作的,即编程、除错、再编程。正因为如此,FPGA也被称为“液体硬件”。
一般情况下,FPGA比ASIC的速度要慢,实现同样的功能FPGA需要的面积更大,功耗也更高。但相比于ASIC,FPGA的优势也很明显:①快速成品——这有助于缩短产品上市时间;②反复编程——这使得工程师可以根据设计需求修改电路功能,同时也有助于除错;③较低的调试成本——厂商开发工具如Vivado,下载器如Xilinx Platform Cable Usb,外加FPGA板卡即可进行调试。
FPGA芯片起源于Xilinx(赛灵思)公司。1985年,首款FPGA即赛灵思XC2064,采用双列直插式封装,也称为DIP封装(Dual In-line Package),如图1-1所示,只包含64个可配置逻辑模块,每个模块含有两个3输入查找表(LUT:Look-Up Table,后文介绍时“查找表”和“LUT”会交替使用)和一个触发器(FF:Flip-Flop,后文介绍时“触发器”和“FF”会交替使用)。按照现在的方式计算,该器件有64个逻辑单元——不足1000个逻辑门。这也构成了早期FPGA的基本架构:可配置逻辑模块(CLB:Configurable Logic Block)、开关矩阵(Switch Matrix,也称为Switch Box)、互连线(Interconnect Wires)和输入/输出引脚,如图1-2所示。较为简单的结构决定了其主要扮演胶合逻辑的角色。
![](https://epubservercos.yuewen.com/23E432/27210676502898006/epubprivate/OEBPS/Images/45725_11_1.jpg?sign=1738881431-FeMTSro8cM9q1ZWAQH93n7DQDj6MGyyc-0-85d69ea62b601a053658bb84e26a1570)
图1-1
![](https://epubservercos.yuewen.com/23E432/27210676502898006/epubprivate/OEBPS/Images/45725_11_2.jpg?sign=1738881431-2MlagV43S7jsN2MPwGh8rxDNxKlP2xiV-0-bdd3a3171d66cad022ca5952016db995)
图1-2
在摩尔定律的推动下,Xilinx在2001年推出了基于150nm工艺制程的Virtex-II FPGA,最大亮点是嵌入了硬核的18×18的有符号数乘法器和18Kb的Block RAM(简写为BRAM),如图1-3所示(图中未包含布线资源和输入/输出引脚)。其中XC2V8000中包含168个乘法器和168个Block RAM,这大大提升了FPGA的计算能力。
![](https://epubservercos.yuewen.com/23E432/27210676502898006/epubprivate/OEBPS/Images/45725_11_3.jpg?sign=1738881431-OjUDcWpFypryQoqbURRF0AL7SqQ7uAOw-0-4fc794629b4724b789dd7a33944e5d21)
图1-3
时隔一年,也就是2002年,Xilinx推出了基于130nm工艺制程的Virtex-II Pro FPGA,在Virtex-II的基础上嵌入了硬核PowerPC 405处理器(简写为PPC405),这是当时IBM公司的RISC CPU(Reduced Instruction Set Computer,精简指令集中央处理器),主频最高可达400MHz。同时,在接口方面,Virtex-II Pro集成了硬核高速收发器,传输速率最高可达6.25Gb/s,如图1-4所示。其中XC2VP70所包含的高速收发器个数达到了20个。
![](https://epubservercos.yuewen.com/23E432/27210676502898006/epubprivate/OEBPS/Images/45725_12_1.jpg?sign=1738881431-DAJPS3HYxbsLjFwYQtJMrYSrHSCx5Qkt-0-6abfb89353b746e1e164568877ed1ca0)
图1-4
2004年,Xilinx推出了基于90nm工艺制程的Virtex-4 FPGA。采用了基于列的ASMBL(Advanced Silicon Modular Block)架构,如图1-5所示,极大地提升了FPGA的可编程能力,使得其成为ASIC的强有力的替代者。FPGA也由胶合逻辑的角色变为平台级产品。通过不同列(CLB列、DSP列、BRAM列、GT列等)的组合,Virtex-4 FPGA形成了三个平台级家族:LX、FX和SX,给用户提供了多种选择以应对不同的应用场景。其中,LX面向高性能逻辑应用,CLB列会更多一些,XC4VLX200中的逻辑单元(Logic Cell,1个Logic Cell等于1个4输入LUT+1个触发器+1个进位链)达到了200 448个;SX面向高性能数字信号处理,DSP列会更多一些,XC4VSX55中的乘加器多达512个;FX面向嵌入式应用,增加了GT列,内部嵌入了硬核PowerPC处理器PPC405,主频可达450MHz。和Virtex-II Pro相比,Virtex-4 FPGA扩展了乘法器的功能,将乘法器变为包含48位累加器的乘加器,这可以看作第一代DSP48。DSP48在数字信号处理应用中扮演着重要的角色,例如,在高性能FIR(Finite Impulse Response)滤波器和FFT(Fast Fourier Transform)中,DSP48是重要的计算单元。此外,从功耗角度看,Virtex-4的核电压也由Virtex-II和Virtex-II Pro的1.5V降低至1.2V,这对于降低动态功耗是有益的,因为动态功耗与核电压的平方成正比。
![](https://epubservercos.yuewen.com/23E432/27210676502898006/epubprivate/OEBPS/Images/45725_12_2.jpg?sign=1738881431-y7WLX1gL4VWmJYMnQ7LjGWqMYrIc4271-0-638ec7305c52fb76b7812c5c38f8eb95)
图1-5
2006年,Xilinx推出了基于65nm工艺制程的Virtex-5 FPGA。依托于第二代ASMBL架构,Virtex-5形成了五个平台级家族系列以满足不同领域的需求,如表1-1所示。实践证明,Virtex-5是非常成功的一代产品。
表1-1
![](https://epubservercos.yuewen.com/23E432/27210676502898006/epubprivate/OEBPS/Images/45725_13_1.jpg?sign=1738881431-gwXsDFdAXDSkHMvC5mDCl3BXSlOR4yVj-0-095df53912bb326f331f83cf245a2444)
与Virtex-4相比,Virtex-5 SLICE的容量扩大,由2个LUT和2个触发器变为4个LUT和4个触发器。更重要的是Virtex-5中的LUT是6输入LUT,相比于Virtex-4中的4输入LUT更有优势。例如,实现一个8选1的多路复用器(MUX:Multiplexer),如果使用Virtex-4 FPGA,就需要消耗4个4输入LUT和3个2选1 MUX(SLICE里固有的);如果使用Virtex-5 FPGA,则只需消耗2个6输入LUT和1个2选1 MUX(SLICE里固有的),如图1-6所示。显然,后者逻辑延迟会更小。分别选用Virtex-4和Virtex-5最快的FPGA(对应速度等级分别为-12和-3),在ISE 8.1版本下,实现一个6输入布尔表达式,Virtex-4 FPGA逻辑延迟为1.1ns,而Virtex-5 FPGA为0.9ns。从分布式RAM角度看,实现一个64×1(深度为64,宽度为1)的RAM,Virtex-4与Virtex-5的实现方式如图1-7所示,显然Virtex-5的实现方式具有更小的延迟。
![](https://epubservercos.yuewen.com/23E432/27210676502898006/epubprivate/OEBPS/Images/45725_13_2.jpg?sign=1738881431-bP5g50bAxlYRUnQuuITpvFKeSHtMlpGd-0-ccb0f7c6ccdce32a52bee9c4aaf86364)
图1-6
![](https://epubservercos.yuewen.com/23E432/27210676502898006/epubprivate/OEBPS/Images/45725_14_1.jpg?sign=1738881431-1VXjYT8FzzynNd86xRJ1qEwkYREvWLkY-0-c1afc6e9857abbbd521d9b3d43edb012)
图1-7
Virtex-5中的Block RAM也有所改进。Virtex-4的每个Block RAM大小为18Kb,而Virtex-5的每个Block RAM大小为36Kb,由两个独立的18Kb Block RAM构成。这对于搭建更大的存储空间非常有利。同时,对于每个独立的18Kb Block RAM,如果只使用了其中的9Kb或不到9Kb,剩余的9Kb会被自动关闭,从而可有效降低功耗。
相比于Virtex-4,Virtex-5中的乘加器DSP48E功能更强大。不仅乘法器的位宽由18×18提升为25×18,而且每个DSP48E的C端口是独立的(Virtex-4中同列相邻的两个DSP48共享C端口),这增强了DSP48E的灵活性,也简化了数字信号处理算法的实现。此外,不得不提的是DSP48E中的累加器还可用来实现按位逻辑运算,如逻辑与、逻辑或、逻辑异或、逻辑非等。确切地说,DSP48E中乘法器后面跟随的是算术逻辑运算单元ALU (Arithmetic Logic Unit):既可以实现加法运算,又可以实现逻辑运算。
在时钟方面,Virtex-5在保留Virtex-4数字时钟管理单元(Digital Clock Manager,DCM)的基础上,引入了模拟锁相环PLL(Phased Lock Loop),这对于改善时钟抖动非常有利。
此外,Virtex-5 FXT系列嵌入了PowerPC 440(简写为PPC440)处理器,主频最高可达550MHz,性能比Virtex-4中的PPC405有了进一步的提升。
2009年,Xilinx推出了基于40nm工艺制程的Virtex-6 FPGA和45nm工艺制程的Spartan-6 FPGA。Virtex-6采用了第三代ASMBL架构,通过不同资源列的配比,形成了三个系列:面向高性能逻辑应用和数据传输的LXT系列,面向高速数字信号处理和数据传输的SXT系列和面向高带宽应用的HXT系列。与Virtex-5相比,所有的Virtex-6 FPGA都带有高速收发器,同时Virtex-6不再提供嵌入PowerPC处理器的FPGA。Spartan-6属于Xilinx的低端产品,与Virtex-6相比性能略逊一筹。例如,Spartan-6中的乘加器DSP48A1乘法器位宽为18×18,且其后的累加器不支持逻辑运算,而Virtex-6中的乘加器DSP48E1乘法器位宽为25×18,其后为ALU。Spartan-6中的Block RAM大小为18Kb,可当作两个独立的9Kb Block RAM使用。Virtex-6中的Block RAM大小为36Kb,由两个独立的18Kb Block RAM构成。Spartan-6中的时钟模块由DCM和PLL构成,而Virtex-6中的时钟模块则为MMCM(Mixed-Mode Clock Managers)。但是,Spartan-6也有自己的特色,例如,封装小,CPG196封装只有8mm×8mm,而Virtex-6最小封装也要达到23mm×23mm。此外,Spartan-6还集成了硬核存储器控制器模块MCB(Memory Controller Blocks)。从输入/输出引脚角度看,Spartan-6引脚个数依据不同芯片和封装在102~576之间变化,输出电平最大为3.3V;Virtex-6引脚个数则在240~1200之间变化,输出电平最大为2.5V。
2011年,Xilinx推出了基于28nm高性能低功耗(High Performance Low Power,HPL)工艺制程的7系列FPGA,分为高端、中端和低端三个产品,对应Virtex-7、Kintex-7和Artix-7。其中,Virtex-7面向对系统性能要求比较苛刻的场合;Kintex-7可提供业界最佳的价格/性能比;Artix-7面向低功耗且需要高速收发器的场合。2017年,Xilinx又发布了Spartan-7,具有封装小(CPGA196封装只有8mm×8mm)、性能功耗比高的特点。不同于Virtex-6和Spartan-6,7系列FPGA采用了统一的内部架构。图1-8对7系列FPGA从逻辑单元个数、Block RAM容量、DSP个数、高速收发器个数、高速收发器速率和外部存储器速率等几个方面进行了比较(这里显示的均为最大值),可进一步理解其中的差异及各个产品的应用场合。
![](https://epubservercos.yuewen.com/23E432/27210676502898006/epubprivate/OEBPS/Images/45725_15_1.jpg?sign=1738881431-kNXtY6mI0DoTfPcyYZe2N6KUU4CAPeda-0-fbdd1ec688b86b97db6d835f4ad672d2)
图1-8
7系列FPGA还首次使用了SSI(Stacked Silicon Interconnect,堆叠硅片互连)技术,包括XC7V2000T、XC7VX1140T、XC7VH580T和XC7VH870T 4颗芯片。SSI技术有效解决了采用传统方式互连多片FPGA时导致的互连资源有限(如输入/输出引脚个数不够用)、互连延迟过大、高速串行互连的信号完整性等问题。以XC7V2000T为例,整个芯片包含4个SLR(Super Logic Region,又称为die),这4个SLR并行放置在一个硅中介板上,如图1-9所示。再看4个SLR的内部布局,如图1-10所示。可以看到4个SLR的大小和内部结构是完全相同的。图中GTX代表的高速收发器最大速率为12.5Gb/s。每个SLR由3个CR(Clock Region,时钟区域)构成。每个CR的高度为50个CLB,也可表示为20个DSP或10个36Kb Block RAM,如图1-11所示。
![](https://epubservercos.yuewen.com/23E432/27210676502898006/epubprivate/OEBPS/Images/45725_16_1.jpg?sign=1738881431-8zeJKUc8fGP3X4RQNKeAestLHR856Ht2-0-074aac719d5c0d9604cc53b40146e291)
图1-9
High-Bandwidth,Low-latency Connections:高带宽低延迟互连线 Microbumps:微凸块 Through-Silicon Vias:硅穿孔 C4 Bumps:C4凸块 28nm FPGA die:28nm FPGA超级逻辑区域 65nm Silicon Interposer:65nm硅中介板 Package Substrate:封装基板 BGA Solder Balls:BGA锡球
![](https://epubservercos.yuewen.com/23E432/27210676502898006/epubprivate/OEBPS/Images/45725_16_2.jpg?sign=1738881431-SZHKYSNER3bMEI3Hunv0hWJ01Hne5PSY-0-33ff5e75ba8ca5a68b91c8c1da1bd6fb)
图1-10
![](https://epubservercos.yuewen.com/23E432/27210676502898006/epubprivate/OEBPS/Images/45725_16_3.jpg?sign=1738881431-TD4RPKMoKIyUSlHaUgkXbXQTvuKouVB1-0-02974feb3c6c4e2aeadb501210d1bb7a)
图1-11
SLR之间通过SLL(Super Long Line)互连,实现die间的数据传输。紧邻每个CLB会有一个互连单元(Interconnect Tile),SLL的起点和终点正是这些位于相邻SLR的不同互连单元。每个互连单元列可提供49个SLL(见图1-12),不同芯片互连单元列个数有所不同,故7系列SSI器件相邻SLR总的SLL个数为10 800或13 700,从而保证了die间的高带宽数据传输。
![](https://epubservercos.yuewen.com/23E432/27210676502898006/epubprivate/OEBPS/Images/45725_17_1.jpg?sign=1738881431-UYLiWw6npyQ33aCDNBlt5zBWJEkHLmn8-0-3a258dd5012c8382802d27e56d756c47)
图1-12
XC7VX1140T内部结构如图1-13所示,由4个SLR构成,有更多的高速收发器(图中GTH代表的高速收发器最高速率可达13.1Gb/s,共96个)。
![](https://epubservercos.yuewen.com/23E432/27210676502898006/epubprivate/OEBPS/Images/45725_17_2.jpg?sign=1738881431-FkawoI4HUPJMTh0wn7txQkDjeP2AOdGz-0-1e561aaee597a0d2f38aefc003f9b2b0)
图1-13
面向高带宽数据传输的XC7VH870T则由6个SLR构成,如图1-14所示,其中顶部和底部的SLR仅包含GTZ(高速收发器,共16个,最大速率可达28.05Gb/s),因此,这是一颗异构SLR构成的芯片。
在推出传统FPGA的同时,2011年,Xilinx也发布了集成ARM Cortex-A9 CPU的Zynq-7000系列SoC(System on Chip)。将FPGA分割为PS(Processing System)和PL(Programmable Logic)两部分,实现了全可编程:软件可编程、硬件可编程和I/O可编程。其中,PS包含一个或两个ARM Cortex-A9核,以及丰富的硬核接口,CPU主频最高达1GHz;PL为传统的逻辑资源,如CLB、Block RAM、DSP和GT等,如图1-15所示。图中灰色区域即为PL。Zynq-7000因其异构特性在Xilinx FPGA发展史上留下了浓墨重彩的一笔。
![](https://epubservercos.yuewen.com/23E432/27210676502898006/epubprivate/OEBPS/Images/45725_18_1.jpg?sign=1738881431-bWbMRUEzcPjpCae1jLQYyJCecOYu1yW1-0-69f062c30fb1be34f8558c106b1a6c2d)
图1-14
![](https://epubservercos.yuewen.com/23E432/27210676502898006/epubprivate/OEBPS/Images/45725_18_2.jpg?sign=1738881431-vMVhJJGqINo0Zy5EGeEe4xxHqQfGuftU-0-825410472d559f4fe3a14cc237368cf8)
图1-15
2014年,Xilinx推出了基于20nm工艺制程的UltraScale FPGA,包括Kintex和Virtex两个系列。与Kintex相比,Virtex无论在规模还是性能上都更胜一筹。时隔两年,也就是2016年,Xilinx又推出了UltraScale+FPGA,采用16nm工艺制程,包括Artix(2021年推出)、Kintex、Virtex、Zynq MPSoC(Multiprocessor System on Chip)和Zynq RFSoC (Radio Frequency System on Chip)。这一系列FPGA的比较如表1-2所示(表中US代表UltraScale,US+代表UltraScale+)。可以看到UltraScale+FPGA引入了新的存储单元UltraRAM,每个UltraRAM大小为288Kb(深度为4096,也就是4K,宽度为72),这对于大批量的数据存储非常有用。
表1-2
![](https://epubservercos.yuewen.com/23E432/27210676502898006/epubprivate/OEBPS/Images/45725_19_1.jpg?sign=1738881431-sTjfxAuHGUPUrpsWPgbgAcVghgDDNCDC-0-c87e4e3737edadb5a728f46067a4654c)
Vritex UltraScale+还引入了HBM(High Bandwidth Memory),有效地增大了数据存储空间及数据传输带宽,其内部布局如图1-16所示。仍然采用了SSI技术,HBM位于单独的一个SLR上。在与其紧邻的SLR内,集成了硬核的HBM控制器。UltraScale+HBM系列FPGA内HBM的容量对比如图1-17所示,可以看到,HBM最小为4GB(也就是32Gb),最大为16GB(也就是128Gb)。在执行机器学习算法时,通常需要存储大量的权值,而且为了保证足够的并行性需要同时从存储空间读出多个数据,传统的Block RAM和UltraRAM很难满足这一需求,而HBM正好解决了这一问题。
![](https://epubservercos.yuewen.com/23E432/27210676502898006/epubprivate/OEBPS/Images/45725_19_2.jpg?sign=1738881431-TL8CDuXcfbIIMypC9oCURuBzsxefXoyt-0-e5338eff40949cc30771bfa6fa84d72b)
图1-16
![](https://epubservercos.yuewen.com/23E432/27210676502898006/epubprivate/OEBPS/Images/45725_20_1.jpg?sign=1738881431-c4mqq40iRAcZxsQgvkOn90f6Bkp1noSy-0-97b3a673e48501e8878830439cc9fb58)
图1-17
这里不得不提一下Xilinx第二代SSI芯片。Kintex UltraScale只有KU085和KU115为SSI芯片,均包含2个SLR。Virtex UltraScale有4颗芯片为SSI芯片,分别为VU125 (2个SLR)、VU160(3个SLR)、VU190(3个SLR)和VU440(3个SLR),而Virtex UltraScale+绝大多数为SSI芯片。与第一代SSI芯片相比,第二代SSI芯片不仅有专用跨die布线资源SLL,还有专用跨die寄存器,也就是LAGUNA寄存器,如图1-18所示。在相邻两个die的边界,每个时钟区域内有两列LAGUNA寄存器,SLL的起点和终点位于同列不同die的LAGUNA寄存器上。每两列LAGUNA寄存器也就是die边界的每个时钟区域可提供2880个SLL,图中每个SLR位于边界的时钟区域共有6个,故可提供17280个SLL。
![](https://epubservercos.yuewen.com/23E432/27210676502898006/epubprivate/OEBPS/Images/45725_20_2.jpg?sign=1738881431-KKuF3Faks97d91B6XBKryMkCbiAs4Rku-0-0059c6b7b851268324bc6250165b10c6)
图1-18
作为第二代嵌入了ARM核的FPGA,Zynq UltraScale+MPSoC性能进一步提升,共3个系列:CG、EG和EV。ARM核由Cortex-A9升级为Cortex-A53,双核(CG)或四核(EG和EV),扮演着APU(Application Processing Unit,应用处理单元)的角色,主频可达1.5GHz。同时,嵌入了RPU(Real-time Processing Unit,实时处理单元),双核Cortex-R5F,主频最高为600MHz。EG和EV系列还嵌入了GPU(Graphics Processing Unit,图形处理单元)Mali-400MP2,主频最高为667MHz。在此基础上,EV系列增强了视频处理功能,嵌入了硬核视频编解码处理单元VCU(Video Encoder/Decoder),可支持H.264/H.265,如表1-3所示。以EV系列为例,其内部布局如图1-19所示,图中阴影部分为PL。
表1-3
![](https://epubservercos.yuewen.com/23E432/27210676502898006/epubprivate/OEBPS/Images/45725_21_1.jpg?sign=1738881431-GaRtCKiOU8SjuLHMwpwKCmH9imdLakc2-0-a88b4ccd549f0ae094acf80f8a246a2f)
在Zynq MPSoC的基础上,Xilinx还将射频模数/数模转换器(Radio Frequency Analog-to-Digital Converter/Digital-to-Analog Converter,RF-ADC/DAC)和软判决前向纠错(Soft Decision Forward Error Correction)集成其中,形成了Zynq RFSoC FPGA,是业界唯一的单芯片自适应射频平台,其内部布局如图1-20所示。图中阴影部分为PL。DDC为数字下变频器(Digital Down Converter),DUC为数字上变频器(Digital Up Converter)。ADC的分辨率为12位(如XCZU25DR)或14位(如XCZU42DR),最多可达16位(如XCZU29DR);采样速率最高可达4.096GSPS(Gigabit Samples Per Second,每秒千兆次采样),如XCZU25DR。DAC分辨率为14位,最多可达16位,如XCZU29DR,采样速率最高可达9.85GSPS。SD-FEC仅存在于XCZU21DR、XCZU28DR、ZCZU46DR和XCZU48DR中,共8个。
![](https://epubservercos.yuewen.com/23E432/27210676502898006/epubprivate/OEBPS/Images/45725_21_2.jpg?sign=1738881431-sh2UbBHi53HyGqpVdESltmHJhp2e8YAp-0-56794f300a7d6c2d20890c327f0027ae)
图1-19
![](https://epubservercos.yuewen.com/23E432/27210676502898006/epubprivate/OEBPS/Images/45725_21_3.jpg?sign=1738881431-phj6inud5GJbzbOx3muNc6anyc75SNbe-0-caf226e0897e8d76a4e562ae7665219f)
图1-20
2019年,Xilinx推出了基于7nm工艺制程的Versal芯片,将其定义为ACAP(Adaptive Computing Acceleration Platform,自适应计算加速平台),而不再是FPGA。ACAP包含三大引擎:标量引擎、自适应引擎和智能引擎。通过可编程片上网络(Network on Chip,NoC)将三者连接在一起,如图1-21所示。其中,标量引擎由双核ARM Cortex-A72和双核ARM Cortex-R5F构成,主频可分别达到1.7GHz和800MHz;自适应引擎由传统的FPGA逻辑资源构成,包括CLB、Block RAM和UltraRAM;智能引擎主要提供计算功能,由AIE(Artificial Intelligence Engine)和DSP58构成。
![](https://epubservercos.yuewen.com/23E432/27210676502898006/epubprivate/OEBPS/Images/45725_22_1.jpg?sign=1738881431-xtgRGitIZjuglkmb7NbmocKOq5oka8c1-0-1abb67d5e05d0b7701f211566feb96f4)
图1-21
目前,Versal ACAP已推出5个系列:AI Edge系列、AI Core系列、Prime系列、Premium系列和HBM系列,性能对比如表1-4所示。表中存储空间是指分布式RAM即LUTRAM、Block RAM和UltraRAM的总和。AI Edge系列嵌入了针对机器学习推理应用而优化的AIE-ML,AI Core系列嵌入的则是第一代AIE。其他系列没有植入AIE。
表1-4
![](https://epubservercos.yuewen.com/23E432/27210676502898006/epubprivate/OEBPS/Images/45725_22_2.jpg?sign=1738881431-1c05U6ZxK9yziJRGSsgLr0Gj6yr8ktMZ-0-96a5fa530e798a24e34844adccdf3afb)
以AI Core系列为例,芯片内部布局如图1-22所示。其中,AIE阵列位于芯片最上方,DDR控制器位于最下方,两者通过NoC实现数据传输。不难看出,与前一代UltraScale+相比,Versal中的硬核越来越多。为了发挥这些硬核的性能,需要在设计初期研究芯片架构,规划好整个系统的布局。
![](https://epubservercos.yuewen.com/23E432/27210676502898006/epubprivate/OEBPS/Images/45725_23_1.jpg?sign=1738881431-FCIPOn5KiieLz0lalR8dVvTKdbbe46Bh-0-ba610944bd604d412e70acb3a2270987)
图1-22
AIE阵列中的每个AIE核内部结构如图1-23所示。其核心部分是向量单元,可提供强大的计算能力。例如,其中的乘加器在一个时钟周期内可实现128个8×8有符号数乘法运算或32个16×16有符号数乘法运算。
![](https://epubservercos.yuewen.com/23E432/27210676502898006/epubprivate/OEBPS/Images/45725_23_2.jpg?sign=1738881431-rZykv715ZzLSDUf1NcIrwBJdq2JmtCPy-0-f1598be7becff2e56d0068f98f29acd5)
图1-23
从2001年发布Virtex-II FPGA到2019年发布Versal ACAP,将近20年的时间里,Xilinx先后推出了9代产品,如表1-5所示,平均每两年就会有一代新产品诞生。产品性能不断突破——容量越来越大,速度越来越快;产品架构不断革新——从仅有PL到嵌入CPU,再到嵌入AIE。架构的不断演进使得FPGA除了在传统领域如原型验证、通信、工业控制、航空航天等继续保持一定优势外,还使得FPGA进入新的领域如数据中心,成为数据中心加速器、AI加速器、SmartNIC(Smart Network Interface Card,智能网卡),以及网络基础设施中的加速器。而FPGA厂商除了提供FPGA芯片外,还生产制作了各种加速卡,如Xilinx的Alveo加速卡、Varium加速卡,以期最大程度上满足业务需求,帮助客户缩短研发周期。
表1-5
![](https://epubservercos.yuewen.com/23E432/27210676502898006/epubprivate/OEBPS/Images/45725_24_1.jpg?sign=1738881431-IRQd9AYBaW3XwF8ZTghlBNnjig3824Xa-0-a0f16c48f2ed8ca20b7611427d9093ed)