作者:西南交通大学邸志雄老师,文章来源:硬件加速与EDA
1、FPGA的逻辑资源指的是什么?
以FPGA领域全球排名第一名AMD-Xilinx的UltraScale架构系列产品为例,其内部结构如图所示:

特点1:宏观架构——异构资源的“精细化列式布局”
FPGA芯片内部资源采用了按列排布的方式。图中不同颜色的色块代表不同类型的硬件资源单元,例如:深绿色块表示可配置逻辑块资源(Configurable Logic Block , CLB),青色块代表块存储器资源,蓝色代表运算逻辑资源DSP等。这种“列式架构”是UltraScale的核心创新之一。它就像一座经过精心规划的城市,将功能相似的“建筑”排列在同一街区。这种布局方式与传统的分散式布局相比,带来了两大核心优势:(1)信号在相同类型的资源列内部或列与列之间传输时,路径更可预测、更短,从而显著降低了布线延迟和功耗。(2)为高性能IP核的实现提供了理想的基础。例如,一个需要大量DSP计算的模块,可以被布局在一整列或相邻的多列DSP资源上,确保模块内部通信达到最高速度。

特点2:可编程逻辑的“心脏”——兼具组合资源与时序资源的CLB模块。
每个CLB是实现所有组合逻辑和时序逻辑功能的基础。CLB由更基本的单元组成:SLICEL 和 SLICEM。无论是SLICEL还是SLICEM,都包含16个查找表(LUT)、16个触发器(FF)、以及进位链等基础资源。这构成了实现普通逻辑功能的能力。其中,SLICEM额外拥有可配置为存储器的能力。如图中所示,一个SLICEM可以灵活地配置成:分布式RAM,即将LUT资源转变为小块、分布式的RAM,为需要大量小型存储器的设计提供了极高的灵活性,无需调用宝贵的Block RAM资源;移位寄存器,即可高效地实现串行移位功能,在数字信号处理中非常常用。
回到开头的问题,FPGA的逻辑资源指的是什么?一般而言,泛指LUT与FF。比如,业界通常所说的某FPGA芯片的容量为5K,该数量指的就是LUT或者FF。但,如果需要更精细地评估FPGA可用的资源,还应包括RAM、DSP等,这两类型资源的数量通常比LUT/FF少数十倍。
2、2.5D/3D封装技术:提升FPGA资源容量的关键技术
在2.5D/3D封装技术问世之前,传统的FPGA芯片内部只有一颗Die,受限于良率,单Die的FPGA芯片的最大容量大致在400K-500K以下。
那近年来AMD-Xilinx VU系列FPGA芯片的逻辑资源为什么能突破该容量限制?原因就在于采用了2.5D/3D封装技术,在一颗芯片中封装了多个Die。即,尽管在制造良率的约束下无法提升单Die的资源,但创造性地采用多Die封装技术提升单颗芯片的资源容量。
2012年,Xilinx公司推出的Virtex-7 2000T,容量相当于当时市场同类最大28nm FPGA 的两倍;如果不采用该技术,至少要等到下一代工艺技术,才有可能在单个FPGA芯片中实现如此大的容量。因此,当下,亿门级容量只能通过基于2.5D/3D封装的 Multi-Die 架构来实现。

近年来,随着数据中心、AI硬件加速等高性能计算领域对高容量高性能FPGA芯片的需求急剧增长,以Xilinx VU系列为代表的Multi-Die 2.5D/3D FPGA已成为高性能计算领域主流甚至唯一的选择。
下图是单Die FPGA芯片与2.5D/3D FPGA外形方面的区别。如图所示,2.5D/3D FPGA内部由4个相同工艺制成的Die平铺拼接而成,其逻辑单元资源数量是相同工艺节点单Die FPGA芯片的2-4倍左右。之所以2.5D/3D FPGA中单Die的长宽比例为长条形,就在于该形状在实现大容量的前提下,方便复制且可确保良率和封装。因此,可根据场景的差异,制造包含2颗Die、3颗Die、4颗Die等不同价格的产品。相比采用由多颗FPGA芯片构成的系统,3D堆叠技术可在多个Die间实现高带宽连接,为需要高逻辑密度和高计算性能的应用提供了更高的算力基础与更紧密的集成。

3、未来的挑战

FPGA的开发流程类似数字ASIC芯片,主要包含:RTL设计、逻辑综合、映射、打包、布局、布线、比特流文件下载等。如图所示,该2.5D/3D FPGA芯片内部通过提供数千个SLL(Super Long Line)实现了四个裸片SLR(Super Logic Region)之间的高带宽连接。每个SLR包含数百万个异构逻辑单元,如DSP、RAM、LUTL、LUTM、FF等,且拥有独立的DDR、高性能IP等硬核;SLL的逻辑延迟是单个SLR内部连线延迟的4-8倍。
2.5D/3D FPGA其内部结构与传统的单颗Die FPGA芯片有较大差异,因此,如何将超大规模的电路高质量地部署在2.5D/3D FPGA上,对开发工具提出了巨大的挑战。

挑战一:SLL的延迟。与SLR内部丰富且快速的布线资源相比,信号要穿越物理距离更远、电气特性更复杂的SLL,其延迟会显著增加(通常是SLR内部同类路径延迟的数倍)。这对需要跨SLR操作且对时序要求极其苛刻的逻辑路径来说,是巨大的挑战,使得时序收敛变得异常困难。
挑战二:SLL的资源稀缺性。SLL是极其宝贵的战略资源,其数量是物理固定的,且相对整个芯片的规模来说非常有限。当设计中有大量信号需要在不同SLR之间通信时,SLL资源会很快被耗尽,导致“交通大拥堵”(布线拥塞),使得布局布线工具无法完成设计,或不得不牺牲性能来换取可布通性。
挑战三:亿门级设计的复杂性。当一个设计达到数亿门甚至数十亿门的规模时,其综合、布局、布线和时序分析等步骤会消耗巨大的计算资源和时间。一次完整的迭代可能需要数十小时。SLL引发的时序和拥塞问题,往往需要多次迭代才能解决,这使得设计周期被急剧拉长,对设计方法和团队耐心都是极大的考验。
挑战四:异构资源的布局难度。现代FPGA并非均匀的“逻辑海洋”,其中散布着DSP、Block RAM、UltraRAM、高速接口(如PCIe、100G Ethernet)等硬核IP。这些资源在SLR内部和多个SLR之间的分布位置是固定的、不均匀的,这极大地增大了布局难度。工具在摆放逻辑时,不仅要考虑时序和布线,还必须考虑相关逻辑与这些硬核资源的物理位置关系。例如,一个需要大量DSP和BRAM的模块,如果其逻辑被分散在多个SLR,而所需硬核资源只存在于某个特定SLR,那么跨SLR的通信就会立即成为性能瓶颈。
4、结论
总而言之,通过2.5D/3D封装技术获得了前所未有的逻辑容量和系统集成能力,成功地使得单芯片FPGA的容量突破了500K的限制。但代价是引入了SLR间通信的延迟、稀缺性和由此引发的时序、拥塞及设计迭代难题。FPGA设计专家应对这些挑战需要充分利用自己的工程经验,深入了解电路设计的拓扑与结构,精心规划功能模块在哪个SLR实现。同时,也可充分利用工具关于SLR的各种专用约束,成功完成大规模、高性能FPGA设计的部署。