时间:2026-01-30 来源:FPGA_UCY 关于我们 0
我尽一杯,与君发三愿:一愿世清平,二愿身强健,三愿临老头,数与君相见。——《白居易》全面解析 FPGA 基础知识FPGA (Field Programmable Gate Array)即现场可编程门阵列。它是在 PLA、PAL、GAL、CPLD 等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。1、 FPGA 简介FPGA 普遍用于实现数字电路模块,用户可对 FPGA 内部的逻辑模块和 I/O 模块重新配置,以实现用户的需求。它还具有静态可重复编程和动态在系统重构的特性,使得硬件的功能可以像软件一样通过编程来修改。可以毫不夸张的讲,FPGA 能完成任何数字器件的功能,下至简单的 74 电路,上至高性能 CPU ,都可以用FPGA 来实现。FPGA 如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入法 ,或是硬件描述语言自由的设计一个数字系统。2、FPGA 发展史FPGA 的发展历史如下图所示。相对于 PROM、PAL/GAL、CPLD 而言 ,FPGA 规模更大性能更高。 良辰美景奈何天,便赏心乐事谁家院。则为你如花美眷,似水流年。——《汤显祖》 常将有日思无日,莫待无时思有时。——《增广贤文》图 1 FPGA 发展史FPGA 芯片主流生产厂家包括 Xilinx、Altera、Lattice、Microsemi ,其中前两家的市场份额合计达到 88%。目前 FPGA 主流厂商全部为美国厂商。国产 FPGA 由于研发起步较美国晚至少 20 年,目前还处于成长期,仅限于低端,在通信市场还没有成熟应用。2015 年 12 月,Intel 公司斥资 167 亿美元收购了 Altera 公司。Altera 被收购后不久即制定了英特尔处理器与 FPGA 集成的产品路线图。这两种产品集成的好处是可以提供创新的异构多核架构,适应例如人工智能等新市场的需求,同时能大幅缩减功耗。 人之为学,不日进则日退,独学无友,则孤陋而难成;久处一方,则习染而不自觉。——《顾炎武》 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志。——苏轼图 2 FPGA 在电信领域的应用历史FPGA 在航天、军工、电信领域有非常成熟和广泛的应用。以电信领域为例,在电信设备一体机阶段,FPGA 由于其编程的灵活性以及高性能被应用网络协议解析以及接口转换。在 NFV(NetworkFunction Virtualization 阶段,FPGA基于通用服务器和 Hypervisor实现网元数据面 5 倍的性能提升,同时能够被通用 Openstack 框架管理编排。在云时代,FPGA 已经被作为基本 IaaS 资源在公有云提供开发服务和加速服务,AWS、华为、 BAT 均有类似通用服务提供。截至目前, Intel 的 Stratix 10 器件已被成功应用于微软实时人工智能云平台Brainwave 项目。3、两家主流 FPGA 公司发展近况Xilinx 聚焦芯片领先和丰富的加速解决方案 ,通过开放策略获得主流云平台支持 ,确立了其在数据中心的领先地位。其 UltraScale+系列 FPGA 领先友商 1 年多 ,使其在云平 一寸光阴一寸金,寸金难买寸光阴。——《增广贤文》 谋事在人,成事在天!——《增广贤文》台竞争中占领先机,其 VU9P 器件被大量应用于包括 AWS、Baidu、Ali、Tencent 及华为在内的多家公司的云计算平台。为满足加速器领域对 FPGA 芯片日益递增的性能需求,Xilinx 已发布面向数据中心的下一代 ACAP 芯片架构、推出 7nm Everest 器件。此器件已不属于传统的 FPGA ,它集成了 ARM、DSP、Math Engine 处理器阵列等内核,将于 2019 年量产。相较于 VU9P ,Everest支持的 AI 处理性能将能提升 20 倍。Intel 则提供从硬件到平台到应用的全栈解决方案,不开放硬件和平台设计以避免生态碎片化,投入巨大但进展缓慢。图 3 Xilinx 产品系列图图 4 Intel(以 Stratix 系列为例)产品工艺年代FPGA 在数据中心服务器市场的实际应用中存在一定技术难点 ,具体包括如下几方面 : 非淡泊无以明志,非宁静无以致远。——诸葛亮 非淡泊无以明志,非宁静无以致远。——诸葛亮1、编程门槛较高:硬件描述语言不同于软件开发语言,需要开发者对底层硬件有着较深刻的认识;因此人才也就成为限制 FPGA 应用的一个重要因素。据了解,目前国内从事FPGA 开发的人员初步估计大约两万多人。2、集成难度较大:FPGA 开发与应用需要软硬件的协同,包括使用高级语言的系统建模、硬件代码(电路)设计、硬件代码仿真、底层驱动软件与硬件逻辑的联调等等。3、开发周期相对软件要长:硬件开发比软件开发过程复杂,调试周期也被拉长。4、很难获取独立逻辑 IP。4、FPGA 整体结构FPGA 架构主要包括可配置逻辑块 CLB(Configurable Logic Block)、输入输出块IOB(Input Output Block)、内部连线(Interconnect)和其它内嵌单元四个部分。CLB 是 FPGA 的基本逻辑单元。实际数量和特性会依器件的不同而改变 ,但是每个 CLB都包含一个由 4 或 6 个输入、若干选择电路(多路复用器等)和触发器组成的可配置开关矩阵。开关矩阵具有高度的灵活性 ,经配置可以处理组合型逻辑、移位寄存器或 RAM。FPGA 可支持许多种 I/O 标准 ,因而可以为系统设计提供理想的接口桥接。FPGA 内的 I/O 按 bank 分组 ,每个 bank 能独立支持不同的 I/O 标准。目前最先进的 FPGA 提供了十多个 I/O bank ,能够提供灵活的 I/O 支持。CLB 提供了逻辑性能 ,灵活的互连布线则负责在 CLB 和 I/O 之间传递信号。布线有几种类型 ,从设计用于专门实现 CLB 互连(短线资源)、到器件内的高速水平和垂直长线(长 百学须先立志。——朱熹 吾日三省乎吾身。为人谋而不忠乎?与朋友交而不信乎?传不习乎?——《论语》线资源)、再到时钟与其它全局信号的全局低 skew 布线(全局性专用布线资源)。一般,各厂家设计软件会将互连布线任务隐藏起来,用户根本看不到,从而大幅降低了设计复杂性。内嵌硬核单元包括 RAM、DSP、DCM(数字时钟管理模块)及其它特定接口硬核等,FPGA 器件内部结构如下示意图。图 5 FPGA 器件内部结构图一般来说,器件型号数字越大,表示器件能提供的逻辑资源规模越大。在 FPGA 器件选型时,用户需要对照此表格,根据业务对逻辑资源(CLB)、内部 BlockRAM、接口(高速Serdes 对数)、数字信号处理(DSP 硬核数)以及今后扩展等多方面的需求,综合考虑项目最合适的逻辑器件。5、FPGA 开发流程 人不知而不愠,不亦君子乎?——《论语》 勿以恶小而为之,勿以善小而不为。——刘备FPGA 的设计流程就是利用 EDA 开发软件和编程工具对 FPGA 芯片进行开发的过程。FPGA 的开发流程一般如下图所示,包括功能定义/器件选型、设计输入、功能仿真、逻辑综合、布局布线与实现、编程调试等主要步骤。1、功能定义/器件选型:在 FPGA 设计项目开始之前,必须有系统功能的定义和模块的划分,另外就是要根据任务要求,如系统的功能和复杂度,对工作速度和器件本身的资源、成本、以及连线的可布性等方面