当前位置:首页 > 嵌入式培训 > 嵌入式学习 > 讲师博文 > Xilinx 的FPGA 入门

Xilinx 的FPGA 入门 时间:2021-03-01      来源:原创
现场可编程闸极阵列(FPGA) 具有许多特性,因此无论是独立使用,还是在异质架构中使用,都是宝贵的运算资产;然而许多设计人员不熟悉FPGA,也不知道如何将这些元件整合到自己的设计中。
 
为了克服这个障碍,我们需要深入探讨主流厂商的FPGA 架构以及相关工具;本文将从Xilinx 的产品系列展开讨论。
 
高阶FPGA 选项概览
市面上有许多不同类型的FPGA,每一种都具有不同的能力与功能组合。无论是何种FPGA,其核心都是可编程结构。此结构以可编程逻辑区块阵列呈现,又称为逻辑元件(LE) (图1a)。FPGA 结构进一步扩展后可包括SRAM 区块(称为区块RAM (BRAM))、锁相回路(PLL) 及时脉管理器等元件(图1b)。此外,也可加入数位讯号处理(DSP) 区块(称为DSP 分割) 和高速串列器/解串列器(SERDES) 区块(图1c)。

 

图1:最简单的FPGA 仅包含可编程结构和可配置一般用途IO (GPIO) (a);但不同的架构会使用一些元件来扩大这一基础结构,如SRAM 区块、PLL 和时脉管理器(b);DSP 区块和SERDES 介面(c);以及处理器硬核和周边装置(d)。
CAN、I 2 C、SPI、UART和USB等周边装置介面功能,可以实作为可编程结构中的软核心,但许多FPGA都将其作为硬核心包含在矽中。同样,微处理器也可实作为可编程结构中的软核心,或是矽中的硬核心(图1d)。具备硬处理器核心的FPGA,称为系统单晶片(SoC) FPGA。不同的FPGA会提供不同的功能、特点、能力及容量组合,可适用于不同的市场与应用。
 
FPGA厂商为数不少,其中包括Altera (已被Intel收购)、Atmel (已被Microchip Technology收购)、Efinix、Lattice Semiconductor、Microsemi (也已被Microchip Technology收购)以及Xilinx。
 
这些厂商全都提供多种系列的FPGA;有些提供SoC FPGA,有些提供锁定人工智慧(AI) 和机器学习(ML) 应用的元件,有些则提供可耐受辐射且针对太空等高辐射环境设计的元件。由于可选的系列实在太多,每个都提供不同的资源,因此针对手边的任务挑选最佳元件并不容易。
 
Xilinx 的FPGA、SoC、MPSoC、RFSoC 和ACAP 产品介绍
Xilinx 提供许多款可编程元件产品,从最普通到极高的效能与功能都有。范围包括传统的FPGA、SoC (具备单一硬核心处理器的FPGA 可编程结构)、MPSoC (具备多重硬核心处理器的FPGA 可编程结构)、RFSoC (具备RF 能力的MPSoC),再到ACAP (适应性运算加速平台) (图2)。

 
图2:Xilinx 架构产品组合随着时间不断演变,原本只是内含可编程结构的简易FPGA,后来变成可编程结构经过扩展的SoC 元件(增加硬核心处理器)、具有多个处理器的MPSoC、具备RF 能力的RFSoC,再到锁定于AI 等应用的最新一代ACAP。

Xilinx 产品组合非常广泛,可用于非常多的市场区隔,并提供各种各样的部署方法,因此对不熟悉FPGA 的人来说,可能很难了解全貌。

Xilinx 应对的市场包括但不限于资料中心(运算、网路、储存);通讯(有线、无线);航太与国防;工业、科学与医疗(ISM);测试、测量与模拟(TME);以及汽车、广播和消费性市场。

在部署方法方面,当中包含Xilinx 所谓的硬体可调适元件,包括晶片、评估板和开发套件;可部署终端系统,包括系统模组和PCIe 加速卡;以及FPGA 即服务(FAAS),包括藉由一流云端提供业者来评估与善用Xilinx 技术,这些业者包括Amazon Web Services (AWS)、Alibaba.com 和Nimbix.net。

Xilinx 的FPGA 产品分类方法之一,是依照制程技术节点来分类(图3)。
 

图3:Xilinx 的FPGA 产品提供完整的多节点产品组合,可满足许多应用的要求。

根据目标应用而定,设计人员可能会选择在较前期的技术节点,实作低成本、小型覆盖区的FPGA,或是针对先进的网路应用等,选择在最新的技术节点,实作高容量、高频宽、高效能的元件。

对于需要一或多个硬处理器核心(和其他硬化功能,如GPU、编解码器,以及软决策前向错误修正(SD-FEC) 核心) 的设计,Xilinx 则提供一个称为Zynq 的元件系列。图4 显示Zynq 的SoC、MPSoC 和RFSoC 产品摘要。这套解决方案为设计人员提供多种能力,协助针对功率、效能、成本及上市时间进行最佳化。

Xilinx 的SoC、MPSoC 及RFSoC 产品示意图图4:Xilinx的SoC、MPSoC及RFSoC产品整合了处理器的软体可编程性,以及FPGA的硬体可编程性,从而为设计人员提供高系统效能、弹性与可扩充性。(图片来源:Max Maxfield)

Xilinx 的最新产品是Versal 适应性运算加速平台(ACAP) 元件,全部实作于7 nm 制程技术节点。ACAP 是高度整合的多核心运算平台,可适应不断演进的各种演算法。这些平台能在硬体和软体层级进行动态客制化,以符合广泛的应用与工作负载。ACAP 是根据可编程网路晶片(NoC) 进行建构,硬体设计人员与软体开发人员皆能轻松对其进行编程。

Versal 元件的新特点包括:智慧引擎,即用于ML 和DSP 工作负载的大规模向量处理器阵列;高频宽、低延迟、低功耗的可编程NoC,可移动TB 规模资料;以及整合式外壳,可利用预先打造的核心基础架构和系统连接性,来提升效能、利用率与生产力。

图5 显示了Versal ACAP 产品组合概览。

Xilinx 的Versal ACAP 产品组合图片图5:Xilinx 的Versal ACAP 是高度整合的多核心运算平台,可适应不断演进的各种演算法。ACAP 能在硬体和软体层级进行动态客制化,以符合广泛的应用与工作负载。(图片来源:Max Maxfield)

如同之后设计工具部分所探讨,有关Versal 元件的一个关键差异点是采用新的软体堆叠。此堆叠的目标使用者是资料科学家与软体工程师,以及传统硬体设计工程师。

Xilinx元件目前选择非常多,代表性元件包括Artix-7 FPGA、Kintex UltraScale FPGA、Kintex UltraScale+ FPGA、Trenz Electronic GmbH的Zynq-7000 SoC模组,以及Zynq UltraScale+ MPSoC。
 
评估板及开发板的选择同样也很多,代表性产品包括Digilent的Artix-7 FPGA评估板、Analog Devices的Kintex UltraScale FPGA评估板、Xilinx的Kintex UltraScale+ FPGA评估板、Digilent的Zynq-7000 SoC FPGA评估板,以及Xilinx的Zynq UltraScale+ MPSoC FPGA评估板。
 
利用Xilinx FPGA、SoC 和ACAP 进行设计与开发
与竞争对手相比,Xilinx 独特之处在于设计工具与流程的广度和深度。
 
此FPGA 系列文章的第1 篇提过,以往这些元件的设计方式是,让工程师使用Verilog 或VHDL 等硬体描述语言(HDL),在名为暂存器转移层级(RTL) 的抽象层级撷取设计意图。这些RTL 描述可能会先进行模拟,以验证其是否按预期执行,然后会传递至合成工具,由其产生用来编程FPGA 的配置档。
 
抽象的下一步是撷取设计意图,主要是利用C/C++等编程语言,或透过SystemC等特别实作方式;后者是一组C++类别与巨集,可提供事件驱动式模拟介面。这些能促进同步程序的模拟,每个程序皆透过清楚的C++语法进行描述。这种描述可当作一般的程式来执行,借此进行分析和剖析,之后会传递至高阶合成(HLS)引擎,由此引擎输出RTL,RTL则馈送至一般的合成引擎。
 
这些功能全部包含在HLx版Vivado设计套件中,此工具的输出是配置位元流,随后将载入到目标FPGA、SoC、MPSoC、RFSoC或ACAP元件中。除了可让硬体开发人员彻底善用C语言型设计,以及经过最佳化的设计重用性,Vivado还提供IP子系统重用性和整合自动化,并能加速设计收敛(图6)。
 

Xilinx 的Vivado 与Vitis 设计工具堆叠示意图图6:Xilinx 的Vivado 与Vitis 设计工具堆叠的深度检视图,反映出使用者能如何在最适当的抽象层级使用这些工具。硬体设计人员使用Vivado,软体开发人员使用Vitis,而AI 和资料科学家使用Vitis AI。(图片来源:Max Maxfield)

下个抽象层级获得的支援,此平台使软体开发人员能完美打造出加速型应用。从概念上说,此平台让AI和资料科学家能在TensorFlow抽象层级作业。Vitis AI是在Xilinx硬体平台上进行AI推论的开发平台,同时包括边缘设备和Alveo PCIe卡。Vitis AI包含经过最佳化的IP、工具、资料库、模型与范例设计,目的是彻底利用Xilinx的FPGA和ACAP元件之AI加速潜力。

Vitis AI 会馈送到Vitis,Vitis 本身会馈送到Vivado。图6 的关键重点是,使用者只会「看到」他们需要「看到」的部分。也就是说,硬体开发人员只会「看到」Vivado,软体开发人员只会「看到」Vitis,而AI 和资料科学家只会「看到」Vitis AI。如此一来,使用者就能在最适当的抽象层级使用这些工具。

若为软体开发人员提供Vitis 等工具套件,将他们与底层的硬体隔离开来,那么便能让更多的开发人员取得FPGA。同样地,若为AI 和资料科学家提供Vitis AI 等工具套件,让他们关注于自己的抽象层级并与底层软体隔离开来,也能让一群新的开发人员取得FPGA。

在提供这些能力层面,Xilinx 扮演着整个产业的先锋推手,将FPGA 工具提升到更高的设计抽象层级,进而让开发人员能更轻易地运用这些元件的能力,并整合到接下来的设计中。

结论

最佳的处理设计解决方案通常由处理器与FPGA 的组合提供;也可由FPGA 本身或以处理器硬核心为部分结构的FPGA 提供。FPGA 技术近年来迅速发展,能在灵活性、处理速度和功率方面满足设计的许多要求,因而可用于许多应用,包括智慧型介面、机械视觉及人工智慧等。

 

如本文所述,Xilinx 提供多款可编程元件,从最普通到极高的效能与功能都有。这些产品的范围包括传统的FPGA、SoC (具备单一硬核心处理器的FPGA 可编程结构)、MPSoC (具备多重硬核心处理器的FPGA 可编程结构)、RFSoC (具备RF 能力的MPSoC),再到ACAP (适应性运算加速平台)。

上一篇:学习后端开发选哪个语言最好呢?

下一篇:嵌入式GUI工具添加迭代而不会影响后端代码

热点文章推荐
华清学员就业榜单
高薪学员经验分享
热点新闻推荐
前台专线:010-82525158 企业培训洽谈专线:010-82525379 院校合作洽谈专线:010-82525379 Copyright © 2004-2022 北京华清远见科技集团有限公司 版权所有 ,京ICP备16055225号-5京公海网安备11010802025203号

回到顶部