随着技术的不断进步,ARM处理器从曾经罕见的存在变成了主流,尤其是在个人电脑和服务器领域。M1、M2、M3等苹果自研芯片的强势登场以及即将发布的骁龙X Elite芯片,标志着ARM生态系统的迅速壮大与成熟。软件方面也呈现出良好态势,然而在FPGA开发领域,一个名为Vivado的专有工具一直主导着市场,并且仍未充分支持ARM架构,这让ARM平台上的FPGA开发者备受限制。幸运的是,近年来开源FPGA工具链的出现打破了这一局面,尤其是针对Xilinx 7系列FPGA的OpenXC7工具链,在ARM设备上的支持为行业带来了新的契机。OpenXC7作为一个开源项目,虽然无法像Vivado那样提供集成逻辑分析仪或块设计等高级功能,但对于大多数中小型项目而言,它的功能已绰绰有余。而且,它的Docker化构建更适合在线编译服务,实现了跨平台的无缝部署。
对比多种硬件平台上的性能表现,可以看出OpenXC7在ARM设备上的发展潜力。针对工具链的构建时间及项目编译时间做了细致的对比测试。测试涵盖了典型FPGA项目,从最简单的blinky闪烁程序,到基于RISC-V核心picorv32的SoC,再到包含图像显示模块的TetriSaraj俄罗斯方块游戏。测试机器涉及三类不同的设备,包括搭载2019年Ryzen 3700X处理器的x86桌面,官方提供的2020年Ampere A1 ARM云服务器,以及搭载苹果M1芯片的MacBook Air。测试结果体现出多方面的性能表现。首先是工具链的构建时间,苹果M1芯片表现突出,虽然nextpnr-xilinx的多核编译存在问题导致只能单核运行,但9分钟44秒的构建时间几乎逼近拥有16核Ryzen 3700X的8分钟30秒。
相比之下,Ampere A1的构建时长为17分钟28秒,表现较弱,这很可能与云服务器的存储性能有关。该现象表明,苹果自研芯片在编译此类工作负载时表现优异,这与其在Linux内核编译中的优异成绩相呼应。至于项目编译时间,OpenXC7相较于Vivado在小体量项目如blinky展示出更低的启动开销,Vivado即便以批处理模式运行,其启动延迟仍超过6秒。对于教学及在线编译平台而言,OpenXC7的小开销为用户带来了更佳的体验,进一步降低了FPGA开发的准入门槛。在中等规模的picorv32项目中,两者的差异缩小,而在复杂一点的TetriSaraj项目中,Vivado微弱领先。显然,对于更大、复杂度更高的项目,Vivado依旧凭借其成熟的优化机制占优,但OpenXC7已展现出成为中小型项目利器的实力。
更有趣的是,Ampere A1服务器在项目编译性能上超越了苹果M1约10%,这与其系统架构和分配给Docker容器的内存限制有关,但也反映出各ARM平台自身架构差异对FPGA工具链的影响。尽管OpenXC7当前尚不能完全替代Vivado,但它在ARM平台上为FPGA开发开辟了一条新的道路,尤其是在无需集成逻辑分析仪和块设计的项目场景中,其灵活便捷的特性将吸引更多开发者关注和使用。此外,尝试在苹果硅中通过翻译层运行Vivado尚未取得显著进展,未来随着硬件性能的提升,如M1 Max、Ultra以及M2系列的普及,相关性能表现或将更具竞争力。对于国内外FPGA开发者乃至教育领域的师生而言,开源工具链的推广和服务在线化将极大降低使用门槛。使得点击“生成比特流”即可完成开发流程的体验不再是梦想。易用且效率高的开源工具链将更好地支撑未来的创新和教学改革。
这些进展也促使社区和行业持续关注和参与开源FPGA生态建设。与此同时,诸如https://github.com/chipsalliance/fpga-tool-perf 的资源汇聚项目,为各类工具链组合提供了详尽的性能、构建状况检测,助力开发者做出更加明智的选择。总之,开源FPGA工具链正逐步实现从冰山一角到广泛普及的转变,ARM平台上的成熟与优化则加速了这一进程。2023年见证了OpenXC7以及相关技术在多样化硬件环境下的适配与发展,未来,我们有理由期待,7系列FPGA开发在ARM生态中将迎来更多创新突破,如同ice40系列的开源新风潮一样。对于追求灵活、高效和开放的FPGA开发者而言,探索和应用这些工具链将带来更多便捷与可能。