打印
[技术文档]

FPGA和单片机的区别

[复制链接]
1332|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 资深从业爱好者 于 2022-10-21 16:28 编辑

单片机和FPGA的区别
FPGA更偏向于硬件电路,是用来设计芯片的芯片(FPGA)。通过硬件编程语言在FPGA芯片上自定义集成电路的过程;
单片机偏向于软件,是在已有的固化电路的芯片(单片机)上设计开发。通过软件编程语言描述软件指令在硬件芯片上的执行;
FPGA简介

FPGA(Field-Programmable Gate Array), 即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

FPGA的工作原理

FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括 可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。
现场可编程门阵列(FPGA)是可编程器件,与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构。FPGA利用小型查找表(16×1RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能,FPGA允许无限次的编程。

FPGA的特点

采用FPGA设计ASIC电路(专用集成电路),用户不需要投片生产,就能得到合用的芯片。
FPGA可做其它全定制或半定制ASIC电路的中试样片。
FPGA内部有丰富的触发器和I/O引脚。
FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。
FPGA采用高速CMOS工艺,功耗低,可以与CMOS、TTL电平兼容。

单片机简介

单片机,全称为单片微型计算机(Single-Chip Microcomputer),又称微控制器(Microcontroller),是把中央处理器、存储器、定时/计数器(Timer/Counter)、各种输入输出接口等都集成在一块集成电路芯片上的微型计算机。它的最大优点是体积小,可放在仪表内部,但存储量小,输入输出接口简单,功能较低。由于其发展非常迅速,旧的单片机的定义已不能满足,所以在很多应用场合被称为范围更广的微控制器。

单片机的工作原理

单片机自动完成赋予它的任务的过程,也就是单片机执行程序的过程,即一条条执行的指令的过程,所谓指令就是把要求单片机执行的各种操作用的命令的形式写下来,这是在设计人员赋予它的指令系统所决定的,一条指令对应着一种基本操作;单片机所能执行的全部指令,就是该单片机的指令系统,不同种类的单片机,其指令系统亦不同。
为使单片机能自动完成某一特定任务,必须把要解决的问题编成一系列指令(这些指令必须是选定单片机能识别和执行的指令),这一系列指令的集合就成为程序,程序需要预先存放在具有存储功能的部件——存储器中。存储器由许多存储单元(最小的存储单位)组成,就像大楼房有许多房间组成一样,指令就存放在这些单元里,单元里的指令取出并执行就像大楼房的每个房间的被分配到了唯一一个房间号一样,每一个存储单元也必须被分配到唯一的地址号,该地址号称为存储单元的地址,这样只要知道了存储单元的地址,就可以找到这个存储单元,其中存储的指令就可以被取出,然后再被执行。

单片机的特点

体积小,结构简单
控制能力强
低电压,低功耗
优异的性能、价格比

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简单些,价格也低一些。要做PID算法控制的用单片机可以,STM32F4系列已经到300M+跑PID完全足够,如果是跑嵌入式的话可以上ARM芯片。涉及通信、图像等高速部分可以采用单FPGA模块。



使用特权

评论回复

相关帖子

沙发
tpgf| | 2022-11-8 12:01 | 只看该作者
fpga与单片机不同,它是利用代码来定义硬件,从而组成一个可以执行特定任务的模块

使用特权

评论回复
板凳
guanjiaer| | 2022-11-8 12:12 | 只看该作者
单片机相当于一个cpu,硬件电路已经设计死了,通过编写不同的软件代码能够执行不同的逻辑运算,如加减乘除等运算,if,for,while等逻辑。但是它本质上是单线程的,一次只能执行一个主线任务。要想实现“并行”,需要借助中断,从主线任务中暂停,去执行其它任务,对时间不敏感的话,看起来就像是多个任务在并行。即使是多核cpu,并行的最大限度也是cpu的核数。而fpga与单片机不同,它是利用代码来定义硬件,从而组成一个可以执行特定任务的模块。它可以在不同的接口定义分立的多个硬件电路,这些电路完全可以并行!fpga这一软件定义硬件的特性,使得它不仅仅可以当做几个单片机用,还可以用来设计芯片,做芯片流片前的验证。在芯片流片之前,我们可以用fpga来“摆”一下电路,看看能不能实现预期的功能。

使用特权

评论回复
地板
heimaojingzhang| | 2022-11-8 13:04 | 只看该作者
单片机可以理解为集成在单一芯片上的微型计算机系统,麻雀虽小可是五脏俱全,也有运算器、控制器、存储器、总线及输入输出设备,采用也是存储程序执行的方式,对单片机的编程就是对其中的ROM写入程序,在加电后ROM中的程序会像计算机内存中的程序一样得到逐条的执行。当今的单片机还集成了A/D、D/A转换,并串口等多种与外界进行数据交换的手段。单片机计算速度和性能有限,但在一些基本控制上搓绰绰有余。

使用特权

评论回复
5
keaibukelian| | 2022-11-8 13:17 | 只看该作者
FPGA是操控层次更低,所以自由度更大的芯片,对FPGA的编程在编译后是转化为FPGA内的连线表,相当于FPGA内提供了大量的与非门、或非门、触发器(可以用与非门形成吧)等基本数字器件,编程决定了有多少器件被使用以及它们之间的连接。只要FPGA规模够大,这些数字器件理论上能形成一切数字系统,包括单片机甚至CPU。FPGA在抗干扰,速度上有很大优势。

使用特权

评论回复
6
paotangsan| | 2022-11-8 13:26 | 只看该作者
假如需要高速控制,快速反应(响应时间达到us, 甚至ns级别),fpga是首选。如果对这没那么高要求,用单片机足矣。

使用特权

评论回复
7
xiaoqizi| | 2022-11-8 13:39 | 只看该作者
一般来说fpga的开发周期比单片机长,特别是复杂算法,比单片机长得多

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

57

主题

89

帖子

0

粉丝