FPGA和单片机有什么区别呢?
近期,有很多老师、学生以及我的同行问起我这个问题,同样我的学生也会问我这个问题?因为在国内高校电子信息类专业同时开设这两门课程,学生学习完这两门课程就感到困惑。这些困惑无非就是不知道两者之间的区别和联系。很多工程师、老师和学生就只知道FPGA处理性能远高于单片机/CPU,但是这只是一个表象。
题目中单片机是众多CPU、DSP、GPU的一个典型代表,而且由于最近新出了一个VR的东西,GPU这个技术最近也比较热。但是,GPU严格意义上也是一种折衷的方法。
到底FPGA和单片机有什么区别呢?根据我的经验,可以用下面进行概述。
1、FPGA属于数字逻辑的范畴,也就是组合逻辑、时序逻辑和状态机是FPGA所要实现的设计目标,而单片机是FPGA一个可实现的设计目标,也就是说,对于一个对HDL很精通的人来说,完全可以用HDL,在FPGA内构建一个单片机/CPU。本质上,单片机/CPU就是一个有限自动状态机而已。我们经常说的软件,它只能运行在处理器上,换句话说,就是当设计完成CPU后,通过编写代码,让CPU这个有限自动状态机运行而已。本质上,CPU就是软件范畴的东西。一个水平再高的程序员,也就是让CPU这个有限自动状态机运行而已。他们并不知道CPU运行的本质问题,也就是CPU如何设计出来的。但是对于FPGA的设计者来说,他们是使用FPGA内部的逻辑设计资源,构造出组合逻辑、时序逻辑和状态机,当然他们清楚CPU的设计原理和本质问题。
2、如果从实现意义上来说,FPGA内的逻辑运行是靠逻辑流推动,而CPU的运行是靠程序计数器PC推动,也就是两者的工作原理截然不同。
3、从认知数字世界的路线来说,从底到上依次是,PN节、CMOS、逻辑门、组合逻辑、时序逻辑、状态机、CPU、操作系统、驱动、应用程序。也就是,一个真正的FPGA大牛,基本也可以看清整个数字世界的本质。但是,一个大牛程序员,是在中间看整个数字世界,因此,离完全认识整个数字世界还有一段距离。
4、当一个人对数字逻辑、HDL语言很清楚的时候,其实他并不需要专门的有人教他如何学习MCU/CPU,对于我来说,可以很轻松地学会8051单片机、ARM等,但是不需要有人专门去教我学习这些知识。
下面以一句话,结束我的回答,要想真正的看透整个数字世界,数字逻辑是基础,FPGA是平台,HDL是工具,数字世界都是构建在这个基础之上。
- FPGA主要供应商与产品(1)(02-11)
- 单片机在电源设计中的应用(06-07)
- 基于单片机的锅炉液位控制装置设计(07-22)
- 基于SPWM的交流稳压电源设计方案(09-15)
- 基于单片机的电池保护电路系统设计(02-24)
- 晶闸管三相全控桥式整流电路的直流电源设计(02-08)