近期,有很多老师、学生以及我的同行问起我这个问题,同样我的学生也会问我这个问题?因为在国内高校电子信息类专业同时开设这两门课程,学生学习完这两门课程就感到困惑。这些困惑无非就是不知道两者之间的区别和联系。很多工程师、老师和学生就只知道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是工具,数字世界都是构建在这个基础之上。
锂电池CCD检测设备对电池表面字符的在线检测
MySQL 5.7并行复制实现原理与调优
回顾创新工场年度峰会的内容分析和介绍
常见的红外线传感器有哪些?
pcb敷铜工艺技术你掌握的怎么样
FPGA和单片机有什么区别呢?
自定义Allegro菜单的方法
三星galaxy note2报价_galaxy note2评测_galaxy note2 n7100
上海智位机器人荣获2022年度AI金雁奖行业影响力大奖
简述电线电缆是由什么材料组成的?
具有声光提醒功能的熔断器(保险丝)监控电路,Fuse monitoring circuit
走进中煤陕西大海则,在黄土高原解密数智煤矿
老笔记本接双屏显示器详细教程
注塑铁氧体产品的几个独特优势 值得一看
WiFi无线联网技术与其他无线概念的区分详解
Linux操作系统中程序地址空间详解
5W DCDC电源模块转换效率高达90%
iPhone8、三星Note8一决雌雄!一个清新可人一个方正阳刚,iPhone8和三星Note8你选谁?
LoRa和NB-IoT有什么区别?LoRa的优势在哪些方面?
生物识别技术突飞猛进 人脸识别门禁逐渐成为国内“智慧小区”的标志