初识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可编程的核心,上面提到的三个技术也是针对可编程逻辑块的技术。

相关推荐
女神下凡5 小时前
芯参谋(37):EEPROM_电路设计指南
arm开发·单片机·嵌入式硬件·fpga开发·设计规范
szxinmai主板定制专家1 天前
工业视觉新思路:FPGA图像预处理+RK NPU推理,实现高速缺陷检测
人工智能·嵌入式硬件·fpga开发·rk3576+codesys
FPGA小徐1 天前
【硬件实战】立创 EDA 绘制 TF/SD 卡模块电路|SPI 模式原理图 + 阻抗匹配 + PCB 布局布线全教程
单片机·嵌入式硬件·fpga开发
狂奔蜗牛(bradley)1 天前
EtherCAT DC 分布式时钟同步的 ModelSim 仿真:从帧模板到从站行为建模
人工智能·嵌入式硬件·fpga开发·架构
ALINX技术博客2 天前
8 通道同步采样 ADC!AN706 波形显示实验 【FPGA黑金云课堂】
fpga开发
szxinmai主板定制专家2 天前
RK3568+FPGA+CODESYS异构控制方案:赋能半导体设备与工业自动化升级
人工智能·fpga开发·自动化·rk3576·半导体设备
辰丁电子2 天前
allegro入门教程-菜单栏Logic
fpga开发·pcb设计·pcb工艺·layout·pcb layout
FPGA小徐3 天前
数字IC/FPGA设计基础_ILA原理与使用
fpga开发
FPGA小徐3 天前
FPGA 部署 YOLO 完整指南:从模型量化到 Zynq PS+PL 硬件加速
yolo·fpga开发
dadaobusi3 天前
学习:chiesel,scala
学习·fpga开发·scala