现场可编程门阵列(FPGA)已经存在了几十年,从历史上看,其特定工具链的开发是在供应商自己驱动的独立生态系统中进行的。近年来,随着与供应商无关的开源工具链的开发,这种情况发生了变化,但这揭示了一个新问题:需要一个抽象层来通过标准格式描述和定义FPGA架构。FPGA工具链并非微不足道,但粗略地说,您可以将在硬件描述语言(HDL)中“编译”FPGA目标代码的过程分为三个阶段:合成、放置和路由,以及比特流生成。标准格式提供了体系结构的通用描述,并充当了负责流程各个部分的开放源代码和封闭专有工具之间的桥梁。这包括用于合成的开源Yosys、用于place and route的VtR和nextpnr,以及来自Xilinx、Intel、Lattice、QuickLogic等的供应商工具。通用格式的引入实现了共享方法,其中特定的构建块可以互换。考虑到这一点,谷歌和Antmicro启动了FPGA交换格式项目,提供了一个统一的框架,以降低开发者从一种工具快速转移到另一种工具的门槛。通过合作,Antmicro和其他芯片联盟成员正在开发交换格式定义和相关工具,旨在成为FPGA行业需要的开发标准。交换格式提供了三个关键描述来描述FPGA并与涉及的各种工具交互:设备资源:定义FPGA内部结构和描述FPGA逻辑块(触发器等基本块和DSP单元等复杂块)的技术单元库。
物理网络列表:收集所有放置位置、网络的物理路由以及place and route工具生成的资源。
创建标准格式背后的一个挑战在于定义FPGA架构的通用性和特殊性之间的界限。通过专注于当今市场上唯一主流使用的架构类型,即基于岛屿(也称为基于瓷砖)的FPGA,该标准达到了通用性和简洁性的水平,这使其易于使用、采用和实施。如前所述,FPGA交换格式旨在降低障碍,并在可以使用相同约定进行读写的不同地点和路由工具之间建立桥梁。为了实现这一点,Antmicro和谷歌选择nextpnr作为第一个采用交换格式的位置和路由工具。在过去几个月里,Antmicro利用FPGA交换格式功能扩展了nextpnr,为Xilinx 7系列和Lattice Nexus FPGA系列放置和路由基本设计。为了实现对Xilinx设备的初始支持,还与Xilinx的研究团队合作,将供应商自己有趣的RapidWright框架引入到流程中。它专门用于以交换格式编写设备数据库,包括所有设备信息。此外,RapidWright可以读取和写入物理网络列表,以生成可在Xilinx的Vivado工具中打开的设计检查点文件。Xilinx设备的默认开放源代码流使用Yosys来综合设计,以及place和route的VPR或nextpnr。最后一步,比特流生成,使用开源FPGA汇编FASM格式生成用于编程FPGA的文件。VPR本机支持这种格式,作为交换格式支持工作的一部分,nextpnr已被扩展以支持这种格式。
现在,通过使用交换格式,您可以从构建块创建流,并且可以为每个步骤使用不同的工具(开源或专有)。一个示例演示了支持交换的工具的这种混合和匹配性质,其外观如上图所示。要处理任何设计,都需要FPGA设备描述文件。这些都是由以下内容生成的:设备描述由专用脚本翻译成适合nextpnr的数据格式。该脚本最终将集成到nextpnr中,使其能够本机读取交换格式设备描述。
设备描述只需生成一次,通常会与toolchain安装包一起分发,这样用户就不必为这一部分操心了。有了设备体系结构,就可以使用工具链处理数字化设计。这个流示例展示了交换如何在使用Yosys和nextpnr的开源流和使用Vivado的封闭源代码流之间建立桥梁,展示了通过共享格式交换工具的可能性。为了推动该格式的采用,该工作最近加入了芯片联盟,其目标是建立一个开源ASIC/FPGA生态系统,包括核心、I/O IP、互连标准以及数字和模拟工具,以彻底改变ASIC/FPGA设计格局。除了允许各种现有工具互操作和共享当今的开发工作外,交换格式是芯片联盟的一个自然补充,因为它开辟了快速设计和原型化新FPGA架构的智能方法,减少了实现的迭代时间,或者为新架构的地点和路线工具添加支持。为了推动围绕交换格式的合作,Xilinx刚刚加入芯片联盟,加入该联盟新成立的FPGA工作组,该工作组将包括芯片联盟正在主持的本项目和其他FPGA相关项目。除了nextpnr,还有其他开源地点和路线工具也将采用交换格式,例如从Verilog到路线项目(VtR)的多功能地点和路线(VPR)。VtR可用于在FPGA上放置和布线设计,如Xilinx 7系列和QuickLogic的eFPGA。目前只能使用VPR数据模型和设备描述来实现,因为它不支持交换格式。Antmicro现在正在VPR中实现对该格式的本机支持,因此可以互换使用不同的工具使用地点和路线;e、 g.从VPR布局输出跳到下一个TPNR路由,允许更快地改进算法。这些好处将不仅扩展到VPR和nextpnr,还将扩展到任何其他封闭源代码工具,或采用并实现交换格式的新开放源代码工具。工具开发人员可以使用标准的交换格式,这降低了在该领域开发新的开源工具的障碍。作为示例用例,它为部分动态重新配置和探索不同的位置和路由算法提供了新的方法。客户将受益于更广泛的灵活和可定制的工具,并最终获得对其产品的更多控制。Antmicro提供端到端定制FPGA服务,包括可重用的开源IP块、快速可重构SOC、创新工具,并帮助客户采用软件驱动的FPGA开发方法的最新进展。亚历山德罗·科莫迪和汤姆·米查拉克合著