目录
1.结构区别 |
2.本质区别 |
3.速度区别 |
4.应用区别 |
5.入门难易程度 |
FPGA是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它的出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。单片机是把中央处理器、存储器、定时/计数器(Timer/Counter)、各种输入输出接口等都集成在一块集成电路芯片上的微型计算机。既然都同属编程类的电子元件,那么这两者有什么区别呢?下面一起来看看吧:
单片机是一种微处理器,类似于电脑CPU的,它一般采用的是哈佛总线结构,或者冯诺依曼结构,对单片机的编程很大程度上要考虑到它的结构和各个寄存器的作用,单片机用途比较广,一般用在控制流水线上。
哈佛总线结构
FPGA它的结构是查找表结构,其程序不用去太考虑芯片的结构,要注意的是时序上问题,它的结构比较复杂,功能也很强大,一般应用在通信领域等比较高端的场合,目前在FPGA还算是一个新兴的行业。
FPGA结构
简单来说,单片机是一个微控制器,通过加载模块软件来实现某种功能,是成型的芯片;而FPGA是用来设计芯片的芯片。
FPGA和单片机的区别,本质上是软件和硬件的区别,FPGA更偏向于硬件电路,而单片机更偏于软件。
单片机设计属软件范畴;它的硬件(单片机芯片)是固定的,通过软件编程语言描述软件指令在硬件芯片上的执行;
FPGA设计属硬件范畴,它的硬件(FPGA)是可编程的,是一个通过硬件描述语言在FPGA芯片上自定义集成电路的过程;
FPGA由于是硬件电路,内部是并行的,所有的电路逻辑都是在同一个时钟触发下工作的,运行速度直接取决于晶振速度,系统稳定。
FPGA内部并行图
单片机属于单线程,内部属于顺序执行,一个执行完了再执行下一个,哪怕是常用的M3系列流水线也是单线程执行,程序语句也需要等待单片机周期才能执行,所以速度比较慢。
单片机单线程图
FPGA主要是用于VLSI(超大规模集成电路)设计的,主要是数字系统,是一些逻辑电路的模块,通过可编程的布线网络来连接这些逻辑模块(可对硬件进行排列组合),从而实现不同的逻辑功能。
单片机是一个微型的计算机,它的硬件电路是不能动的,主要是通过软件来描述指令在硬件电路上的执行步骤,从而实现功能。主要应用在处理事件上,比如外部有个中断信号,MCU检测到后,软件就指挥硬件进行某种处理。
单片机比FPGA简单些,价格也低一些。要做PID算法控制的用单片机可以,STM32F4系列已经到300M+跑PID完全足够,如果是跑嵌入式的话可以上ARM芯片。涉及通信、图像等高速部分可以采用单FPGA模块。
以上就是FPGA与单片机的区别介绍了。FPGA和单片机开发都是属于数字电路设计设计的范畴,其中的编程也差不多,虽然两者有并行执行和穿行执行的区别,但是两个器件执行的功能都是属于逻辑功能一类。相对来说FPGA设计要复杂一些,对于底层硬件知识的掌握要求也要高一些。