初识FPGA

1.1 FPGA是什么

1.1.1 名词解释

FPGA是一种以数字电路为主的集成芯片,于1985年由Xilinx创始人之一发明,属于可编程逻辑器件(PLD)的一种。这个时间比摩尔定律出现晚了20年左右,但是FPGA一经发明,后续的发展速度之快,超出了大多数人的想象。

1.1.2 FPGA 发展历程

在PLD未发明之前,工程师使用若干个逻辑门的离散逻辑芯片进行电路系统的搭建,复杂逻辑的功能实现比较困难。

为了解决这个问题,20世纪70年代,可编程逻辑阵列(Programmable logic array, PLA)问世,PLA中包含了一些固定数量的与门、非门,分别组成了 与平面 和 或平面 ,即 与链接矩阵 和 或链接矩阵 。以及仅可编程一次的连接矩阵,因此可以实现一些相对复杂的与、或多项表达式。

与PLA一起问世的还有可编程只读存储器(Programmable Read-Only memory ,PROM),与PLA相同,PROM内部包含 与链接矩阵 和 或链接矩阵 ,但是与门链接矩阵是硬件固定的,只有或门链接矩阵是可以编程的。

若只有 与门 的连接矩阵可编程,而或门 的连接矩阵是硬件固定的,这种芯片叫做可编程阵列逻辑器件(Programmable array logic,PAL),根据输出电路工作模式的不同,PLA可分为三态输出、寄存器输出、互补输出,但是PAL任然使用熔丝工艺,只可编译一次。

在PAL的基础上,有发展出了通用阵列逻辑器件(Generic array logic,GAL),相比与PLA,GAL有两点改进:一是采用了电可擦除的CMOS工艺,可以多次编程。二是采用了可编程的输出逻辑宏单元。通过编程OLMC可将GAL的输出设置成不同的状态,仅用一个型号的GAL就可以实现所有的PAL器件输出电路的工作模式,增强了器件的通用性。

|--------|-------------------------|-------------------|
| 器件种类特性 | FPGA | CPLD |
| 内部结构 | 查找表(look up table) | 乘积项(product term) |
| 程序存储 | 内部为SRAM,外部为Flash或EEPROM | 内部为Flash或EEPROM |
| 资源类型 | 触发器资源丰富 | 组合逻辑资源丰富 |
| 集成度 | 高 | 低 |
| 使用场合 | 完成比较复杂的算法 | 完成控制逻辑 |
| 速度 | 快 | 慢 |
| 其他资源 | RAM,PLL,DSP等 | / |
| 保密性 | 一般不能保密(可以使用加密 IP) | 可加密 |

FPGA的类型是从内部的实现机理来讲的,可以分为SRAM技术、基于反熔丝技术、基于EEPROM/Flash技术。就电路结构结构来讲,FPGA可编程是指三个方面的可编程:可编程逻辑块、可编程IO、可编程布线资源。可编程逻辑块是FPGA可编程的核心,上面提到的三个技术也是针对可编程逻辑块的技术。

相关推荐
乌恩大侠16 小时前
【OAI】 USRP 在conf文件中的配置,RU选项
fpga开发
qq_小单车2 天前
xilinx-DNA
fpga开发·xilinx
Flamingˢ2 天前
FPGA中的嵌入式块存储器RAM:从原理到实现的完整指南
fpga开发
Flamingˢ2 天前
FPGA中的存储器模型:从IP核到ROM的深度解析与应用实例
网络协议·tcp/ip·fpga开发
FPGA小c鸡2 天前
【FPGA深度学习加速】RNN与LSTM硬件加速完全指南:从算法原理到硬件实现
rnn·深度学习·fpga开发
Aaron15883 天前
通信灵敏度计算与雷达灵敏度计算对比分析
网络·人工智能·深度学习·算法·fpga开发·信息与通信·信号处理
博览鸿蒙3 天前
IC 和 FPGA,到底区别在哪?
fpga开发
思尔芯S2C3 天前
FPGA原型验证实战:如何应对外设连接问题
fpga开发·risc-v·soc设计·prototyping·原型验证
Flamingˢ3 天前
FPGA实战:VGA成像原理、时序详解与Verilog控制器设计与验证
fpga开发
FPGA_小田老师3 天前
xilinx原语:OSERDES2(并串转换器)原语详解
fpga开发·lvds·xilinx原语·oserdese·并串转换