分享自:

用于最大容量FPGA的32K点32并行浮点FFT

期刊:International Conference on Field-Programmable Logic and Applications (FPL)DOI:10.1109/fpl68686.2025.00038

学术报告

作者与发表信息

本研究的主要作者为Martin Langhammer(Altera公司,英国)和Bogdan Pasca(Altera公司,法国)。该论文发表于2025年第35届现场可编程逻辑与应用国际会议(2025 35th International Conference on Field-Programmable Logic and Applications, FPL),并由IEEE出版。

研究背景

本研究属于现场可编程门阵列(Field-Programmable Gate Array, FPGA)高性能计算领域,具体聚焦于快速傅里叶变换(Fast Fourier Transform, FFT)算法的硬件实现。FPGA作为一种可重构的计算平台,其潜力常常未被充分利用,尤其是在逻辑密度和时钟频率方面。许多现有设计未能达到FPGA硬件资源,如数字信号处理(Digital Signal Processing, DSP)模块和嵌入式存储器的理论峰值性能。研究的核心目标是探索如何将FPGA的潜能发挥到极致,即实现所谓的“最大化FPGA”。作者选择FFT作为研究对象,是因为其算法成熟、应用广泛(尤其是在超高速信号处理领域),且其数据流具有高度的规则性和可并行性,这使得研究者可以评估多种不同的分解方案,以找到最适合FPGA架构的映射方式。该研究旨在证明,通过一种以嵌入式硬核为主导、可编程逻辑为辅助的设计方法学,可以在现代FPGA上构建具有极高密度和性能的大规模并行系统,其时钟频率恒定,不受设计规模影响。

研究工作流程详述

本研究的核心工作流程围绕设计、优化和实现一个超高性能的大规模并行FFT架构展开。整个工作可以分解为以下几个关键步骤:算法分解与架构设计、关键模块的硬件实现优化、以及全芯片系统的集成与验证。

第一步是算法分解与架构选择。研究的目标是构建一个32K点、32路并行的单精度浮点FFT。其核心是一个基-32(Radix-32)的离散傅里叶变换(Discrete Fourier Transform, DFT)单元。为了最大化硬件效率,作者详细阐述了如何将一个基-32 DFT分解为一个基-4(Radix-4)阶段和一个基-8(Radix-8)阶段的级联。这种混合基分解方法的关键优势在于,它能够最大化利用“平凡旋转”,即那些不需要进行真正乘法运算(如90°的整数倍旋转)的复数旋转。相比单纯由基-2(Radix-2)阶段组成的结构,这种分解方式显著减少了昂贵的复数乘法器(由DSP实现)的使用数量,从而同时降低了延迟和功耗。例如,一个32点DFT,若采用5级基-2结构,仅前两级就需要26次复数乘法;而替换为一个基-4级后,非平凡复数乘法降至20次。

第二步是设计核心的并行重排序缓冲器(Reorder Buffer)。这是实现大位宽并行数据流高效流转的最具挑战性的环节。整个FFT架构包含三级基-32处理阶段,每一级的前后都需要对数据流进行矩阵转置式的重排序,以确保下一级DFT的32个并行输入端口能同时获得正确组合的数据样本。输入端的数据是32个连续索引的样本,而DFT处理端需要的是以32为跨度的数据(如索引1, 1025, 2049…)。为此,研究提出了一种基于交叉开关(Crossbar)和独立地址控制的存储体方案。以一个简化的64点基-4 FFT为例,该设计使用4个独立存储体和4条并行输入流。通过精确控制每个时钟周期内输入交叉开关的旋转相位(θin)、写入地址,以及读取交叉开关的旋转相位(θout)和4组独立的读取地址,将原本从同一流输入的数据分散写入不同存储体,并在读取时从不同存储体同时读出。这一复杂的调度策略成功地在1维存储块和有限的可编程布线资源上,以770MHz的速度实现了2048位(32个复数)宽数据总线的无冲突读写。

第三步是基于DSP硬核的映射优化。这是该项工作的核心创新,旨在进一步压缩DSP使用量并提升频率。该步骤包含了三项关键技术优化: * 蝶形加法器与复数乘法器的融合(Merge Butterfly Adders and Complex Multipliers in DSPs):在Agilex-7器件的DSP块中,当配置为实现两元素点积(dot2)用于复数乘法时,会产生未被充分利用的浮点加法器。研究者发现,可将基-2蝶形单元中的加/减法操作与后续的复数乘法进行融合。具体来说,蝶形的上臂(a+c, b+d)和下臂(a-c, b-d)的计算可以直接被吸收进串联的DSP列中,利用DSP块内部的级联路由,在不额外消耗DSP块的情况下完成这些加法。 * 特定角度旋转因子的优化(Twiddle Rotation Mapping Optimization):对于与45度相关的旋转因子(如$W_N^{n/8}$,其形式为$t + jt$),传统复数乘法$(a+jb)(t+jt) = (at - bt) + j(at + bt)$看似需要4个DSP块,但通过算法重构,仅需两个乘法器计算$at$和$bt$。利用一个DSP的“乘-加”模式计算$at + bt$,再用一个独立的乘法器计算$bt$,最后通过指数更新计算$2bt$并执行减法$2bt - (at+bt) = bt - at$来得到实部。这种结构仅需3个DSP,并由于最左侧DSP的乘法器空闲,该结构还可与前一优化步骤中的结构“缝合(stitched)”,进一步将总DSP开销降至2个。 * 输出重排序缓冲优化:最终的32K FFT输出为位倒序(Digit-Reversed Order)。为将其转换为自然顺序,需要输出缓冲器。研究发现,通过交替切换读写地址的位倒序模式,可以使用一个简单存储体替代传统的双缓冲设计。一个10位的位倒序计数器即可直接作为写入或读出地址,从而将所需的M20K存储块数量减少近50%,从每个流4块降至整个2048位总线仅需103块。

在完成以上设计后,所有FFT的运算(加、减、乘)均被精确地映射到硬核浮点DSP资源上。最终计算得出,一个32K点FFT核心仅需1281个DSP块。

主要研究结果详述

研究的实施和测试结果系统性地验证了上述设计方法学的有效性,分为单核资源与性能、全芯片多核集成以及对比评估三个层面。

单核层面,经过优化的FFT32K设计,其资源消耗为62.3K自适应逻辑模块(Adaptive Logic Module, ALM),273K寄存器,660个M20K存储块,以及精确匹配理论计算的1281个DSP块。该单核在Altera Agilex-7 FPGA上成功完成时序收敛,最高运行频率(Fmax)达到770MHz,这一频率正是该器件DSP块在浮点模式下的受限频率,意味着该设计达到了硬核的理论速度极限。与之对比,未经优化的默认设计消耗了1564个DSP,优化方案节省了近20%的珍贵DSP资源。

全芯片多核集成层面,研究将6个优化后的FFT32K核心例化在一个Agilex-7 FPGA系统中。该系统使用了7686个DSP块,达到了器件总DSP能力的90%以上(单核在其所在逻辑区域内的DSP填充密度接近100%,即1281/1300)。即使在如此高的密度下,整个多核系统依然成功收敛,最终工作频率高达760MHz。通过分析芯片布局和布线热图可以看到,6个核心被约束在横跨芯片宽度的逻辑锁定区域(Logic-Lock Region)内,各阶段从右至左排布。最密集的布线资源使用主要发生在DSP列附近,而全局布线并未遭受过度的压力。这表明,即使在2048位宽的超大数据总线横跨整个芯片并经历多次重排序和复用的情况下,通过精心考虑数据流的物理布局,仍然可以为编译工具解锁足够的布线资源,实现接近极限的性能。

对比评估层面,研究还与学术界著名的SPIRAL DFT生成工具所生成的同类32K FFT设计进行了比较。SPIRAL生成的寄存器传输级代码(Register-Transfer Level, RTL)在同一Agilex-7器件上达到了664MHz的频率,但其DSP使用量为512个(若全部映射到硬核浮点DSP,则理论上需1508个),且逻辑资源(ALM)消耗高达469K,远超本研究设计的62.3K。这证明了本研究中针对FPGA硬核架构进行紧耦合优化的方法,在性能、资源效率和频率上均具有显著优势。

研究结论与价值

本研究的结论是,通过在FPGA设计中将嵌入式硬核(DSP和存储器)作为“片上系统”的核心计算引擎,并以可编程逻辑和布线资源作为支撑,可以构建出密度和性能均达到前所未有水平的复杂系统。

科学价值在于,它提出并验证了一套完整的方法论,用于应对FPGA设计中大位宽并行总线带来的布线瓶颈挑战。通过引入复数乘法器融合、特定旋转优化和存储地址换序等一系列新颖且可复现的优化技术,证明了完全可以设计出频率恒定、性能不受规模影响的FFT架构,打破了传统设计中“规模越大、频率越低”的困境。

应用价值显而易见:在单个FPGA上以接近770MHz的频率运行6个32K点并行FFT核心,代表了业界领先的超高吞吐率信号处理能力。该架构可广泛应用于需要实时处理海量数据的领域,如雷达系统、通信基带处理、射电天文和高速测试测量设备等。该研究为其他需要在FPGA上实现大规模并行、高带宽数据通路的设计提供了宝贵的蓝图和信心。

研究亮点总结

本研究的亮点可以高度概括为: 1. 极致性能与密度:成功在FPGA上以98%的DSP填充密度和接近硬核极限的770MHz频率,实现了32K点32路并行FFT。 2. 新型硬件映射优化:创新性地提出了“蝶形加法器与复数乘法器融合”和“45度旋转因子高效映射”等DSP优化技术,将DSP用量降低了近20%。 3. 独特的重排序机制:发明了通过地址位倒序切换的存储控制方法,巧妙的将传统输出缓冲所需的存储空间减半,体现了算法与硬件协同设计的精妙。 4. 系统级可扩展性验证:通过在全芯片范围内成功集成6个核心并实现760MHz运行,充分证明了所提架构和设计方法的鲁棒性和可扩展性,为“将FPGA用到极致”提供了有力的实践证据。

上述解读依据用户上传的学术文献,如有不准确或可能侵权之处请联系本站站长:admin@fmread.com