FPGA秋招必看基础 | 什么是FPGA?
什么是FPGA?| FPGA秋招必看基础
关注👆 望森FPGA 👆 查看更多FPGA资讯

这是望森的第 27 期分享
作者 | 望森
来源 | 望森FPGA
1 FPGA定义
FPGA,全称是 "Field-Programmable Gate Array",意思是 "现场可编程门阵列"。
它是一个以数字电路为主的集成电路,由大量逻辑门及可编程连接网络组成。
它属于可编程逻辑器件(Programmable Logic Device,PLD)的一种,通过编程,可以改变它内部的连接,从而实现特定的功能。
FPGA的编程语言叫硬件描述语言(Hardware Description Language, HDL)。
最常见的硬件描述语言是 Verilog 和 VHDL。
联想
可以把FPGA想象成一盒积木,你可以用硬件描述语言命令它搭建成你想要的电子电路,你可以不断地重新拼装它,甚至在一瞬间改变它。
正因为它的可编程性/灵活性,它有一个戏称叫“万能芯片”。
2 FPGA名字解析
什么叫“现场可编程门阵列”?
我们将它拆解为现场、可编程以及门阵列三个词讲解。
现场
“现场”是指 FPGA 可以在使用时直接编程,无须将芯片拆下送回生产厂家编程。
这个特征是由长时间技术迭代产生的,最早的芯片写入一遍后就不能再修改了。
可编程
“可编程”是指用户可以通过编程,任意地改变 FPGA 内部的逻辑结构、实现新的功能。
相比FPGA,大多数芯片的硬件逻辑出厂后就固定了。
相比在 CPU 上的编程,FPGA 可以改变芯片中逻辑门单元之间的硬件连接,而 CPU 上的编程只能改变 CPU 状态寄存器的数值。
门阵列
“门阵列”是指 FPGA 由大量“逻辑门”组成。
最基本的逻辑门包括 与门,或门,非门,异或门。
FPGA 的逻辑门是以查找表(LookupTable,LUT)的形式实现的。简单的来说,就是将某个简单逻辑功能的全部可能结果写到一个存储单元中,并根据输入数据直接查找结果并输出。
3 FPGA的来历
在 1980 年代,为了解决传统硬件电路一旦设计好就很难再改变的“僵化性”问题,Xilinx 公司的创始人 Ross Freeman 发明了 FPGA。
4 FPGA核心特点
| 特点 | 解释 |
| 可编程性/灵活性 | 用户可以不改变硬件、只通过编程改变 FPGA 内部的逻辑结构 |
| 并行处理能力 | FPGA 可以同时执行多个任务,而不像 CPU 那样是串行处理 |
| 低延迟 | 功能在硬件电路并行执行、不经过操作系统,所以延迟非常低 |
| 功耗可控 | 根据设计,FPGA 的功耗可以做到非常低,适合嵌入式应用 |
5 FPGA应用案例
情形
假设你要设计一款无人机控制系统,你需要一个硬件可以同时处理多个传感器数据,并实时控制无人机的飞行姿态。
传统的 CPU 太慢,专用的芯片又缺乏灵活性。
无人机的加速度计和陀螺仪每秒生成上千个数据点,而你需要在几毫秒内做出反应来稳定飞行。
决策及原因
你决定使用 FPGA 来处理这些传感器数据。
因为FPGA 通过编程,可以让每个传感器的数据通路独立存在,并行处理多个数据,同时在极低延迟下进行实时计算,而不像 CPU 那样需要轮流处理。
结果
无人机控制系统的响应速度快了许多倍,飞行也更加平稳。
6 FPGA的应用方向
1. 数字信号处理 (DSP)
数字信号处理是 FPGA 最核心的应用方向之一。
在 DSP 任务中,数据的处理往往需要极高的并行计算能力,并且通常对实时性有严格要求,而FPGA 的可编程性和低延迟特性可以满足要求。
典型应用:
通信系统中的信号调制、解调、编码、解码。
音频处理中的回声消除、音频滤波。
图像处理中的边缘检测、去噪和压缩。
2. 人工智能 (AI) 与机器学习
FPGA 在 AI 和机器学习中的应用方向主要是推理加速。
特别是在需要高效推理的边缘设备上,FPGA 能在低功耗下实现高性能。
相比于 GPU,FPGA 的灵活性使其能够根据不同的神经网络架构进行专门优化,从而提供定制化加速。
3. 通信与网络基础设施
FPGA 常用于通信系统和网络设备中的数据处理加速。
通信设备如路由器、交换机需要处理大量的数据包,FPGA 可以通过并行处理加速数据包的解析和转发。同时,它还可以在协议栈的实现中提供灵活的硬件支持,满足 5G、以太网等高速通信标准的需求。
4. 嵌入式系统
FPGA 被大量用于实时性要求高的嵌入式设备中。
在工厂自动化、工业机器人、无人机控制等场景中,FPGA 的实时处理能力和低延迟特性使其成为理想的选择。它可以灵活应对控制任务中的各种输入信号,并实时作出反应。
5. 图像与视频处理
FPGA 的并行处理能力可以显著提升图像、视频处理速度,减少处理延迟。
6. 高性能计算 (HPC)
高性能计算(HPC)中的某些任务具有高度的并行性需求,比如大规模矩阵运算、基因组测序、大数据分析。
FPGA 可以定制化地优化这些计算任务,实现更低的功耗和更高的性能。
相比于传统 CPU,FPGA 能通过定制化的硬件加速特定计算任务,从而提高计算效率。
7. 汽车电子与自动驾驶
FPGA 在自动驾驶和汽车电子领域的应用主要体现在传感器数据的融合和实时决策上。
FPGA 可以并行处理来自摄像头、雷达、激光雷达等多种传感器的数据,有利于执行高级驾驶辅助系统(ADAS)的任务,确保安全可靠的驾驶体验。
8. 航空航天与国防
在航空航天和国防领域,FPGA 常用于复杂的信号处理和实时计算任务中。
军事和航空航天系统要求极高的可靠性和灵活性,FPGA 在这种恶劣环境下能够保持良好的性能。同时,FPGA 可以通过快速重编程适应任务需求的变化,非常适合用于导弹导航、卫星通信和雷达信号处理等任务。
9. 医疗设备
FPGA 在医疗设备中的应用主要集中在实时的信号处理和图像处理上。
例如在超声波、CT 和 MRI 等医疗设备中,FPGA 可以加速成像算法,提供高分辨率的图像输出,帮助医生更快、更精确地进行诊断。
10. 物联网 (IoT)
物联网中的设备通常要求低功耗和实时处理能力,而FPGA 可以高效处理大量传感器数据,并实时响应,特别适用于边缘设备中对信号和数据的处理。
FPGA 能够根据具体的应用场景进行定制化设计,使得物联网设备在不同的条件下具有灵活性和高性能。
7 FPGA的缺点
FPGA 的灵活性让它能够胜任各种任务,但相比专用的芯片(如 ASIC),它主要有以下缺点:
1.功耗较高
FPGA 由于灵活性较高,电路不是专门优化的,因此相比专用芯片(如 ASIC)更耗电。
2.性能不及专用芯片
虽然 FPGA 可以并行处理,但它的时钟速度通常较慢,无法和专门为某任务优化的 ASIC 相比。
3.成本高
FPGA 的单位成本(特别是高端型号)较高,尤其在批量生产时,不如定制 ASIC 经济。
4.开发难度大
FPGA 的开发周期较长,需要编写硬件描述语言(HDL)并进行调试和验证,门槛较高。
5.面积利用率低
FPGA 是通用结构,所以相比 ASIC,它的物理面积效率较低,用更多的晶体管实现同样的功能。
- END -
相关推荐文章,点击跳转:
「智能机器人开发者大赛」官方平台,致力于为开发者和参赛选手提供赛事技术指导、行业标准解读及团队实战案例解析;聚焦智能机器人开发全栈技术闭环,助力开发者攻克技术瓶颈,促进软硬件集成、场景应用及商业化落地的深度研讨。 加入智能机器人开发者社区iRobot Developer,与全球极客并肩突破技术边界,定义机器人开发的未来范式!
更多推荐



所有评论(0)