什么是FPGA
Filed programmable gate array 现场可编程门朕列
可编程逻辑整列 * PLD *(Programmable Logic Device)
- PLD在上世纪70年代由专用集成电路(ASIC)发展而来,可由软件编程的方式进行反复的擦写
PLD发展历程简史
- 上世纪70年代初期出现了PROM EPROM 和EEPROM
- 在70年代中期又出现了GAL 和PAL
- 在80年代后期就产生了CPLD
- 90年代的末期又产生了SoPC和SoC(system on chip)技术
CPLD( complex PLD)和FPGA的区别:
- CPLD 采用连续式的布线结构,较适合用来实现各种运算和组合逻辑
- FPGA 采用分段式布线结构,适用于实现循序逻辑,寄存器资源丰富
FPGA和ASIC的区别:
- ASIC是集成电路定制芯片,逻辑功能不可更改,一次流片成本很高。
- FPGA是半定制芯片 可以作为ASIC的试样片 FPGA内部有大量的RAM程序来设置工作状态,可以反复使用。
FPGA的内部结构:
- 可配置逻辑块 CLB configurable logic block 逻辑功能单元 每一个CLB包含4个Slice 采用开关矩阵方式 每个Slice内(2个寄存器输出和2个非寄存器输出-LUT查找表 独立的进位单元)
- 内部连线 interconnect 内部资源的可重配置、链接
- 输入输出模块 IOB input output Block 管理输入输出 包含输入通路(2个DDR寄存器)和输出通路(2个DDR寄存器和2个三态使能DDR寄存器)时钟和置位复位
- 逻辑单元阵列
- 数字时钟管理单元 DCM:每个期间最多12个DCM 位于芯片顶部或者底部。由时钟输入引脚驱动 可以分频倍频等等
- 块状RAM :每块大小位18kb 双端口RAM 支持同步读写、异步读写、初始化、对输出锁存器同步复位、支持奇偶校验位
- 嵌入式的IP核: 软核、固核、硬核
FPGA和单片机的区别
+结构上的区别
单片机是一种微处理器,类似于电脑CPU的,它一般采用的是哈佛总线结构,或者冯诺依曼结构,对单片机的编程很大程度上要考虑到它的结构和各个寄存器的作用,单片机用途比较广,一般用在控制流水线上。
FPGA 它的结构是查找表结构,其程序不用去太考虑芯片的结构,要注意的是时序上问题,它的结构比较复杂,功能也很强大,一般应用在通信领域等比较高端的场合。
单片机是一个微控制器,通过加载模块软件来实现某种功能,单片机是成型的芯片;
FPGA是用来设计芯片的芯片。
- 速度上的区别
FPGA由于是硬件电路,运行速度直接取决于晶振速度,系统稳定,特别适合高速接口电路。单片机由于是单线程,哪怕是常用的M3系列流水线也是单线程执行,程序语句需要等待单片机周期才能执行。
- 本质上的区别
FPGA和单片机的区别,本质上是软件和硬件的区别,FPGA更偏向于硬件电路,而单片机更偏于软件。
单片机设计属软件范畴;它的硬件(单片机芯片)是固定的,通过软件编程语言描述软件指令在硬件芯片上的执行;
FPGA设计属硬件范畴,它的硬件(FPGA)是可编程的,是一个通过硬件描述语言在FPGA芯片上自定义集成电路的过程;
- 应用上的区别
应用上,差别更大。MCU(Microcontroller Unit,微控制单元)最终所有的指令在一个MCU中都是顺序执行的,而FPGA由于是逻辑单元,很容易做到并行执行。
MCU:微控制单元(Microcontroller Unit;MCU) ,又称单片微型计算机(Single Chip Microcomputer )或者单片机,是把中央处理器(Central Process Unit;CPU)的频率与规格做适当缩减,并将内存(memory)、计数器(Timer)、USB、A/D转换、> UART、PLC、DMA等周边接口,甚至LCD驱动电路都整合在单一芯片上,形成芯片级的计算机,为不同的应用场合做不同组合控制。
- 入门的难易程度
标签:FPGA,区别,芯片,硬件,单片机,寄存器 From: https://www.cnblogs.com/forCC/p/18395347单片机比FPGA简单些,价格也低一些。要做PID算法控制的用单片机可以,STM32F4系列已经到300M+跑PID完全足够,如果是跑嵌入式的话可以上ARM芯片。涉及通信、图像等高速部分可以采用单FPGA模块。