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

相关推荐
hahaha60162 小时前
FPGA没有使用的IO悬空对漏电流有没有影响
fpga开发
贝塔实验室13 小时前
FPGA 动态重构配置流程
驱动开发·fpga开发·硬件架构·硬件工程·射频工程·fpga·基带工程
GateWorld14 小时前
《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
fpga开发·mipi csi2
思尔芯S2C16 小时前
思尔芯携手Andes晶心科技,加速先进RISC-V 芯片开发
人工智能·科技·fpga开发·risc-v·debugging·prototyping·soc validation
tiantianuser1 天前
RDMA简介5之RoCE v2队列
fpga开发·verilog·fpga·rdma·高速传输·rocev2
碎碎思1 天前
打破延迟极限的 FPGA 机械键盘
fpga开发·计算机外设
hahaha60162 天前
Flash烧录速度和加载配置速度(纯FPGA & ZYNQ)
fpga开发
hahaha60162 天前
ARINC818编解码设计FPGA实现
fpga开发
XMAIPC_Robot2 天前
基于RK3568的多网多串电力能源1U机箱解决方案,支持B码,4G等
linux·fpga开发·能源·边缘计算
广药门徒2 天前
在使用一些不用驱动大电流的设备就可以用stm32的自己的上下拉但是本身上下拉不就是给iicspi这些他通信给信号的吗中怎么还跟驱动能力扯上了有什么场景嘛
stm32·单片机·fpga开发