一、FPGA简介:
FPGA诞生于1984年,是一种特殊的逻辑芯片,属于半定制化、可编程芯片。它允许用户可以随时定义芯片的硬件功能。通过开放芯片内部的逻辑块、连线、I/O 等资源给用户配置,使得同一片 FPGA 既可以在 5G 的基站实现信道编码的功能,也可以重新配置后立即应用在工业机床、医疗器械等设备上,因此FPGA 也被称为“万能”芯片。
FPGA 由可编程逻辑块、可编程连线和可编程 I/O 三大部分组成。
图1:FPGA阵列和逻辑单元示意图
1)可编程逻辑块是 FPGA 架构中最重要的部分,负责承载主要的电路功能。可编程逻辑块中最重要的两块“积木”就是 LUT(Look-up Table,查找表)和寄存器。每个逻辑单元包括 1 个 LUT4、若干个多路复用器(MUX) 和 1 个寄存器,可完成时序电路和组合电路,代表 FPGA 的基础容量。
可编程逻辑块本质上由多个 LUT、MUX 和寄存器构建而成,用于承载电路中的一个个逻辑“门”。现代 FPGA 中往往有数十万个逻辑 块,彼此既可前后相连,也可同时独立地处理 IO 输入的信号,不需要耗费时间处理控制指令,这是 FPGA 并行性好的原因。
2)可编程连线负责联通 FPGA 中的众多模块,以一种满足时序约束的方式将这些逻辑块以时延最优的方式连在一起,共同构成一个更大规模的电路,将目标电路在 FPGA 上实现,它包含了三个最核心的步骤:
a) 映射(Mapping):将电路的逻辑门映射到不同的 LUT 中,形成 LUT 级网表;
b) 包装(Packing):将这些 LUT 放置到 CLB 中,形成 CLB 级网表;
c)布局&布线(Place-and-route): 将 CLB 放置在合适的位置并彼此相连。
3)可编程 I/O负责FPGA与外界交互,可以实现诸如将信号串行解串行、将信号延迟以对准时钟等更复杂的功能。可编程 IO由 IOB 模块(Input/output Buffer)和紧邻的 IO 逻辑资源共同组成。负责 FPGA 和外界的交互,可以对输入和输出信号做复杂的处理。FPGA 通常有几百到上千个管 脚,除了时钟、电源和配置的专用管脚外,大部分管脚负责引入或输出信号。
百万甚至千万门级的电路通过可编程连线,将不同的逻辑单元连在一起,逻辑单元中的寄存器可以用作存储单元,将组合逻辑的结果送到下一个组合电路的输入端,整个电路就能像流水线一样同时工作。
由于数据信号的处理和传输需要时间,时钟信号的传递和变化也需要 时间,如果布局和连线的方式不合理,就会出现数据到达下一个寄存器的时间过晚或者过早,即数据采集失败的情况。大型的电路往往有数十万个 CLB 需要相连,这项复杂的工作需要由 FPGA 厂商专用的 EDA 工具负责。因为布局布线涉及 FPGA 的内部具体 架构,这是每家 FPGA 公司的机密,无法交给第三方完成,只能在 FPGA 公司的 EDA 上进行。
现代的 FPGA 是逻辑单元和诸如ARM、 DSP、收发器、CPU等固化单元的混合体,除了工艺制程和功耗外,评价 FPGA 的性能指标可分为逻辑资源、IO资源和固化单元三大类,分别代表FPGA在容量、接口以及特定功能上的性能表现。而且传统的LUT4 也逐渐提升到LUT6、LUT8甚至更高,将FPGA的容量转化为门级规模数越来越困难。因此,在2000年后,国际上采用“逻辑单元数”作为基本容量指标。
二、FPGA的特点和优势:
FPGA的特点:
(1)设计灵活:属于硬件可重构的芯片结构,内部设置数量丰富的输入输出单元引脚及触发器;
(2)兼容性强:FPGA芯片可与CMOS、TTL等大规模集成电路兼容,协同完成计算任务;
(3)并行计算:FPGA内部结构可按数据包步骤多少搭建相应数量流水线,不同流水线处理不同数据包,实现流水线并行、数据并行功能;
(4)适用性强:是专用电路中开发周期最短、应用风险最低的器件之一(部分客户无需投资研发即可获得适用FPGA芯片);
(5)快速开发:FPGA芯片产品可快速切入应用市场,具备不可替代性;
FPGA和通用CPU的对比:
CPU为通用型器件,FPGA架构相对CPU架构偏重计算效率,依托FPGA并行计算处理视觉算法可大幅提升计算速率,降低时延,计算速度可以提升数倍到数十倍。
FPGA与GPU对比:
(1)GPU计算峰值(10Tflops)显著高于FPGA计算峰值(小于1TFlops);
(2)GPU内存接口带宽优于FPGA使用的DDR接口,可以满足频繁大数据量访问内存需求;
(3)GPU设计完成后无法改动硬件资源,FPGA可根据特定应用编程硬件,具备强大的灵活性;
(4)FPGA平均功耗(10W)远低于GPU平均功耗(200W),可有效解决散热问题;
图2:FPGA与GPU和ASIC对比
三、FPGA的应用场景
FPGA适用领域:
(1) 标准/协议/算法经常更改的行业:需要支持可重构的系统,例如,无线通信协议经常更改、数据中心互联需要兼容多种协议标准、神经网络算法飞速迭代、军工通信加密方式经常变化、在轨航天器 的处理系统动态重构等,类似的场景使用 FPGA 能够节省大量的时间和研发成本;
(2) 快速迭代、成本敏感的行业:因为“现场”可用,相比ASIC,FPGA无需等待三个月至一年的流 片周期,上市时间短,对于消费电子这类竞争激烈、迭代迅速的行业尤其重要,像 Lattice、赛灵思自2000年起都纷纷针对消费电子市场,推出了不少单颗$2.5上下的中低容量的FPGA;
(3)小批量的行业:芯片研发阶段的MASK(光罩)费用是固定费用,65nm一次需要200万人民币,28nm需要1000万。随着制程提升,一次不成功的风险增大。对于年需 求量<500万颗的场景,专门为某一应用开发ASIC/ASSP,后续的销售额很难摊平巨大的研发成本。FPGA虽然单价较高,但由于其可以实现任何电路功能,节省了芯片千万级别的研发成本,特别适 合小批量的产品;
(4)反复修改验证的设计:例如,在ASIC/ASSP的原型设计中几乎都会使用FPGA进行验证,以发现 设计中存在的问题,及时修改,尽可能避免多次流片的风险。芯片原型仿真是FPGA的“刚需”之一, 亦是FPGA 诞生的根本原因,最高端的FPGA往往会销售给英特尔这些大型的数字芯片公司,供其新一代产品的验证,这一需求亦不断支撑FPGA走在技术节点前列。
图3:FPGA使用领域
FPGA的主要应用场景:
(1)通信行业的基站,无论是 RRU/AAU,还是 BBU/DU/CU,甚至核心网的设备,都需要用到 FPGA, 实现诸如 Turbo 编码,协议处理加速等的功能。而在售价数十万甚至百万人民币级别的无线信号测 量仪器,同样会用到单价上万元的高端 FPGA 进行信号的处理控制;
(2)国防军工行业,典型场景如雷达数据处理,需要满足大容量、低延时、高可靠的特性,才能实现微秒级的处理需求,而这一时延和稳定性要求只有 FPGA 能达到;在使用了光纤陀螺的惯性导航系统 同样,FPGA 可以对光信号进行低延时控制,实现光纤陀螺仪高精度、高动态的测量;
(3)工业:由于工业有大量的低时延场景,FPGA 在工业领域应用是非常广泛的,常见于伺服电机驱动, 往往采取CPU+FPGA的架构,以实现微秒级别的控制环路反馈/,像赛灵思Zynq系列(SoC FPGA) 在工业就拥有广泛的应用。此外,在激光设备中也使用 FPGA 进行皮秒/飞秒激光器的信号控制;
(4) 汽车:典型的应用在 ADAS 领域,这是由于 FPGA 比 GPU 时延更低,能保证更好的制动距离;除 此之外,FPGA 也应用在行车后视镜等场景;
(5)安防&视频:主要应用在安防高清视频的前端数据采集和低延时处理,在 LED 屏显同样应用广泛;
(6)AI:深度学习的模型往往涉及大量的乘法和累加,特别适合使用 FPGA 并行计算,以加速训练速度。
图3:2020年FPGA应用领域分布
四、FPGA芯片和方案资源
芯智雲城是高云(Gowin)的线上业务合作伙伴,如您需进进行FPGA器件选型或其他解决方案咨询:400-816-1216
想了解更多FPGA芯片选型,请访问芯智雲城~