fpga和单片机有什么区别呢?-u球体育app下载

fpga/dsp > 可编程逻辑 > 详情

fpga和单片机有什么区别呢?

发布时间:2025-02-08 发布时间:
|

近期,有很多老师、学生以及我的同行问起我这个问题,同样我的学生也会问我这个问题?因为在国内高校电子信息类专业同时开设这两门课程,学生学习完这两门课程就感到困惑。这些困惑无非就是不知道两者之间的区别和联系。很多工程师、老师和学生就只知道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是工具,数字世界都是构建在这个基础之上。


『本文转载自网络,u球体育app下载的版权归原作者所有,如有侵权请联系删除』

热门文章 更多
学好fpga应该要具备的知识
网站地图