在整个数字世界,数字逻辑是基础,FPGA是平台,HDL是工具
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,对于我来说,可以很轻松地学会si5338单片机、ARM等,但是不需要有人专门去教我学习这些知识。
数字逻辑是基础,FPGA是平台,HDL是工具,数字世界都是构建在这个基础之上。
整理 | 力卉编程
网友评论