FPGA是什么
field program gate array:现场可编程逻辑阵列
以数字电路为主的集成芯片,属于可编程逻辑器件PLD
专用集成电路ASIC:半定制电路
发展历程
结构简单,只能实现小规模逻辑电。称为简单可编程逻辑器件
PLA:与平面+或平面,熔丝工艺,只可一次编程
PROM:与平面+或平面,与平面固定,或平面熔丝工艺只可一次编程
PAL:与平面+或平面,与平面只可一次编程;根据输出电路模式分为3种输出:三态、寄存器、互补输出
GAL:通用阵列逻辑器件,电可擦除多次编译;输出逻辑宏单元可编程,设定不同输出模式,即可模仿多个PAL
高密度可编程逻辑器件
CPLD:复杂可编程逻辑器件,多个PLA和一个可编程连接矩阵的集合
FPGA:早于CPLD,没有沿用PLA结构,采用逻辑单元阵列,不大量使用与非门,而大量使用查找表、寄存器。
内部实现机理:基于SRAM、反熔丝、EEPROM/FLASH
可编程指三个方面:可编程逻辑块+可编程IO口+可编程布线资源
器件种类特性 FPGA CPLD 内部结构 查找表+寄存器 乘积项 程序存储 内部SRAM、外挂EEPROM/FLASH存储程序 内部EEPROM/FLASH 资源类型 触发器资源丰富 组合逻辑资源丰富 集成度 高 低 使用场合 复杂算法 控制逻辑 速度 快 慢 其他资源 可嵌入 RAM、PLL锁相环、DSP —— 保密性 因为外挂EEPROM/FLASH一般不能(可用加密核) 可加密
FPGA的技术优势
速度快,比CPU快
CPU采用冯诺依曼结构:
CPU执行指令需要:指令存储器+译码器+运算器、共享内存(访问仲裁)
FPGA的每个逻辑单元的功能,在编译时已经确定。执行时不需要指令,不需要内存共享。
效率高,比传统单片机高
硬件并行优势,打破顺序执行的模式。在一个时钟周期,可完成更多处理任务。
低延时,比GPU延时低暂时不太理解GPU为什么要做10个数据单元
例如处理一个数据包需要10个步骤
GPU:数据并行,做10个计算单元,每个单元处理不同数据包。但是计算单元必须按照统一步调做相同的事情,10个单元,每次只能处理相同的步骤。要求10个数据包,一起输入一起输出,输入输出的延时增加
FPGA:流水线并行,搭建10级流水线,不同级别处理不同数据包。一个数据包流经10个流水线,立马输出
可重构
FPGA:半定制电路,可用于专用集成电路 ASIC的设计和验证。
开发灵活、方便
IO口数量多,可编程,使用灵活。
IP核:缩短周期,提高稳定性
接口丰富
IO口分为不同的bank,每个bank支持输出电压的配置(1.2~3.3V),支持CMOS、TTL电平标准、RVDS差分输出,内置串行高速解码器
FPGA应用方向
通信领域
有线:随时随地,任何设备间连接。
无线:SOPC
视频图像处理
清晰度、还原度越来越高,导致数据量越来越大。
FPGA高速、并行,能满足要求,实时的流水线运算,达到很高实时性。
人工智能
深度学习
汽车驾驶
ADAS:高级辅助驾驶
AD:自动驾驶
医疗设备
稳定性
数字信号处理
计算量、速度
超过DSP
IC原型验证