EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
现场可编程门阵列(FPGA)具有诸多特性,无论是单独使用,抑或采用多样化架构,皆可作为宝贵的计算资产;但是许多设计人员并不熟悉FPGA,亦不清楚如何将这类器件整合到设计中。解决办法之一是深入研究主要供应商提供的FPGA架构及相关工具;本文则从Xilinx产品系列开始着手。 FPGA选件高级概述
3 Y3 k A x9 d# ^; {# V$ i# J市场上有许多不同类型的FPGA,每种类型都有不同的功能和特性组合。可编程结构是任何FPGA的核心,它以可编程逻辑块阵列的形式呈现,也称为逻辑元件(LE)(图1a)。FPGA结构进一步扩展可包括SRAM块(称为块RAM(BRAM))、锁相环(PLL)和时钟管理器之类的东西(图1b)。此外,还可以添加数字信号处理(DSP)块(称为DSP切片)和高速串行器/解串器(SERDES)(图1c)。
* U( Z6 r% l& A, \) c1 n图1:最简单的FPGA仅包含可编程结构和可配置通用IO(GPIO)(a);不同架构是在此基本结构上增加其他元件而形成:SRAM块、PLL和时钟管理器(b);DSP块和SERDES接口(c);以及硬处理器内核和外设(d)。(图片来源:MaxMaxfield): ~+ \$ Q4 U( p* `
* k7 a; G/ ^2 Z4 I+ W0 p外设接口功能(如CAN、I2C、SPI、UART和USB)可以实现为可编程结构中的软内核,但许多FPGA将其作为硬内核在硅片中实现。同样,微处理器也可以实现为可编程结构中的软内核,或作为硬内核在硅片中实现(图1d)。具有硬处理器内核的FPGA称为片上系统(SoC)FPGA。不同FPGA针对不同的市场和应用提供不同的功能、特性和容量集合。
FPGA供应商有很多,包括Altera(被Intel收购)、Atmel(被MicrochipTechnology收购)、Efinix、LatticeSemiconductor、Microsemi(也被MicrochipTechnology收购)和Xilinx。 所有这些供应商都提供多个FPGA系列;有的提供SoCFPGA,有的提供面向人工智能(AI)和机器学习(ML)应用的器件,有的则针对航天等高辐射环境提供耐辐射器件。由于产品系列众多,每个系列提供不同的资源,因此为眼前的任务选择最佳器件可能很棘手。 Xilinx的FPGA、SoC、MPSoC、RFSoC和ACAP产品介绍
* Q9 P ?- n& H" j# t3 E/ n5 g u4 fXilinx提供各种各样的可编程器件产品,性能和功能从中等到极高都有。范围从传统的FPGA到SoC(具有单个硬核心处理器的FPGA可编程结构)、MPSoC(具有多个硬核心处理器的FPGA可编程结构)、RFSoC(具有RF功能的MPSoC)和ACAP(自适应计算加速平台)(图2)。
+ `) Y8 f9 \3 H& N. v" H9 V% B图2:随着时间的推移,Xilinx架构产品组合已经从仅包含可编程结构的简单FPGA,一直演变到可编程结构使用硬核心处理器增强的SoC器件、具有多个处理器的MPSoC、具有RF功能的RFSoC,再到针对AI等应用的最新一代ACAP。(图片来源:MaxMaxfield)" P1 {1 W! {8 l4 U9 `
$ J) D+ N% W5 AXilinx拥有非常广泛的产品组合,涉及非常多的细分市场,并提供了各种各样的部署方法,因此对于刚接触FPGA的新手来说,可能很难了解“全局”。
. x( S& N1 }+ Y. R/ l" R5 f0 F& x, S0 P1 P3 n
Xilinx所耕耘的市场包括但不限于数据中心(计算、网络、存储);通信(有线、无线);航空航天与国防;工业、科学和医学(ISM);测试、测量和仿真(TME);以及汽车、广播和消费品。
对于部署方法,这些包括Xilinx自称的硬件自适应设备,其中包括芯片、评估板和开发套件;可部署的终端系统,包括系统级模块(SoM)和PCIe加速卡;以及FPGA即服务(FAAS),包括通过领先的云提供商(包括AmazonWebServices[AWS]、Alibaba.com和Nimbix.net)评估和利用Xilinx技术。 对于Xilinx的FPGA产品,一种分类方法是通过工艺技术节点(图3)。
$ l: l. Q1 N3 m$ d! M/ \6 _图3:Xilinx的FPGA产品提供了全面的多节点产品组合,可满足各种应用的需求。(图片来源:MaxMaxfield)8 i8 |9 c; ] ]: N2 e3 M
. N! @ _& e% n5 o+ l. H根据目标应用,设计人员可以选择基于较早的技术节点来实现低成本、小基底面的FPGA,或者对于最新的网络应用等,选择基于最新技术节点来实现高容量、高带宽、高性能器件。
对于需要一个或多个硬处理器内核(以及GPU、编解码器和软判决前向纠错[SD-FEC]内核等其他强化功能)的设计,Xilinx提供了一个以Zynq命名的器件产品组合。Zynq的SoC、MPSoC和RFSoC产品的摘要如图4所示。这套解决方案为设计人员提供了广泛的功能,能协助优化功耗、性能、成本和上市时间。
9 |0 b( P( v8 A6 I" R7 p
图4:Xilinx的SoC、MPSoC和RFSoC产品将处理器的软件可编程性与FPGA的硬件可编程性集成在一起,为设计人员提供了系统性能、灵活性和可扩展性。(图片来源:MaxMaxfield)* v, K* d) K, L8 f8 V& ]
% Q# ?0 z9 O" t
Xilinx的最新产品是Versal自适应计算加速平台(ACAP)器件,所有这些器件均基于7纳米(nm)工艺技术节点来实现。ACAP是高度集成的多核心计算平台,可以适应不断演进的各种算法。它们可以在硬件和软件级别进行动态定制,以适合各种应用和工作负载。ACAP是围绕可编程片上网络(NoC)进行构建,硬件设计人员和软件开发人员都可以轻松对其进行编程。 Versal器件的新功能包括智能引擎,即用于ML和DSP工作负载的大规模矢量处理器阵列;可移动TB级数据的高带宽、低延迟和低功耗可编程NoC;以及一个集成的Shell,可通过预先构建的核心基础结构和系统连接性来提高性能、利用率和生产率。 图5显示了VersalACAP产品组合的概述。
) e x( ?) \& ^/ V图5:Xilinx的VersalACAP是高度集成的多核心计算平台,可以适应不断演进的各种算法。ACAP可以在硬件和软件级别进行动态定制,以适合各种应用和工作负载。(图片来源:MaxMaxfield)0 t7 T) o' J! A/ k* @% P0 i$ D
/ M: O+ s0 @# j `. n, l
正如将在设计工具部分中的讨论,有关Versal器件的一个关键区别是新的软件堆栈。该堆栈主要面向数据科学家和软件工程师,以及传统硬件设计工程师。
市场上有各种各样的Xilinx器件可供选择。一些代表性的产品是Artix-7FPGA、KintexUltraScaleFPGA、KintexUltraScale+FPGA、来自TrenzElectronicGmbH的Zynq-7000SoC模块,以及ZynqUltraScale+MPSoC。 同样,也有各种各样的评估板和开发板可供选择。一些代表性的产品包括来自Digilent的Artix-7FPGA评估板、来自AnalogDevices的KintexUltraScaleFPGA评估板、来自Xilinx的KintexUltraScale+FPGA评估板、来自Digilent的Zynq-7000SoCFPGA评估板,以及来自Xilinx的ZynqUltraScale+MPSoCFPGA评估板。 使用Xilinx的FPGA、SoC和ACAP进行设计和开发 Xilinx真正区别于竞争对手的一个因素是:设计工具和流程的广度和深度。 在本FPGA系列文章的第1部分中,我们指出这些器件的传统设计方法是让工程师使用Verilog或VHDL等硬件描述语言(HDL),在抽象级别(即寄存器传送级[RTL])上捕获设计意图。首先可以对这些RTL描述进行仿真,以验证其是否符合要求,然后将其传送给综合工具,生成用于对FPGA进行编程的配置文件。 抽象的下一步是捕获设计意图,主要是使用C++/C++之类的编程语言或SystEMC这样的特殊实现工具;后者是一组C++类和宏,可提供事件驱动的仿真接口。这些方法有助于并发进程的仿真,每个进程都使用简单的C++语法进行描述。对于此类描述,可以通过像常规程序一样运行来进行分析和配置,然后传递给高级综合(HLS)引擎,由该引擎输出RTL,而RTL会传输至常规综合引擎。 所有这些功能都包含在Vivado设计套件HLx版中,其输出是配置比特流,随后会加载到目标FPGA、SoC、MPSoC、RFSoC或ACAP器件中。除了允许硬件开发人员利用基于C语言的设计和经优化的设计复用,Vivado还提供IP子系统复用、集成自动化和加速的设计收敛功能(图6)。
% q N* W. g9 W, ~9 _
图6:Xilinx的Vivado和Vitis设计工具堆栈的高级视图反映了用户如何能以最合适的抽象级别使用这些工具。硬件设计人员使用Vivado,软件开发人员使用Vitis,而AI和数据科学家使用VitisAI。(图片来源:MaxMaxfield)
7 j# Y! R6 ?3 V* h' M$ g4 ?# O& x" m# M8 H I
下一个抽象级别由Vitis统一软件平台支持,该平台使软件开发人员能够无缝构建加速型应用。从概念上讲,Vitis的上面是VitisAI,它让AI和数据科学家可以在TensorFlow抽象级别工作。VitisAI是在Xilinx硬件平台上进行AI推理的开发平台,同时包括边缘设备和AlveoPCIe卡。该平台由优化的IP、工具、库、模型和示例设计组成,旨在充分利用Xilinx的FPGA和ACAP器件上的AI加速潜力。 VitisAI馈送至Vitis,而Vitis自身馈送至Vivado。图6中的关键点在于,用户仅“看到”他们需要“看到”的内容。也就是说,硬件开发人员将仅“看到”Vivado,软件开发人员将仅“看到”Vitis,而AI和数据科学家将仅“看到”VitisAI。这样,用户就可以在最合适的抽象级别使用这些工具。 若为软件开发人员提供Vitis之类的工具套件,将他们与底层硬件隔离开来,便可使FPGA面向更多的开发人员开放。同样,若为AI和数据科学家提供VitisAI之类的工具套件,使他们能够专注于自己的抽象级别并将其与底层软件隔离开来,则又会使FPGA面向新的开发人员群体开放。 在提供这些功能方面,Xilinx走在了全行业的前沿,致力于将FPGA工具提升到更高的设计抽象级别,这将使开发人员能够更轻松地利用这些器件的功能,并将其集成到接下来的设计中。 总结
: T2 U7 R, S5 ]: g8 r( O* A9 o最佳处理设计解决方案常常是由处理器与FPGA的组合提供,或由FPGA单独提供,或以硬处理器内核作为部分结构的FPGA提供。作为一项技术,FPGA多年来发展迅速,能够满足灵活性、处理速度、功耗等多方面的设计需求,非常适合智能接口、机器视觉和人工智能等众多应用。 如上所述,Xilinx提供许多可编程器件产品,性能和功能从中等到极高都有。这些产品范围从传统的FPGA到SoC(具有单个硬核心处理器的FPGA可编程结构)、MPSoC(具有多个硬核心处理器的FPGA可编程结构)、RFSoC(具有RF功能的MPSoC)和ACAP(自适应计算加速平台)。 为了帮助设计人员使用这些器件来构建设计,Xilinx提供了一套工具来满足硬件开发人员(Vivado)、软件开发人员(Vitis)以及AI和数据科学家(VitisAI)的需求。
- m% f/ R$ n5 G$ X) \8 _ |