接前天的文章,苏老师再聊一下FPGA,今天的话题主要围绕FPGA和MCU/单片机/嵌入式系统的主要区别。
先看看“FPGA”这个名字的含义:
F - Field, 现场,随时随地可以操作
P - Programmable,可编程
G - Gate,门,数字逻辑的基本单元
A - Array,阵列
看到这四个字母的含义,你一下子想到的是什么?讲真,每次我看到“A - Array”,第一想到的就是天安门广场的阅兵式,也许是因为多次的“阅兵式“给我留下的印象最震撼的缘故吧 - 一个个方阵,一排排整齐划一的队列,在总指挥的调度下有条不紊地完成各个动作,他们之间的配合,他们按照规定的时间步调一致地走过金水桥,就像一个个数据位被时钟的边沿同步着。
是不是很像FPGA内部的一个个模块?是的,非常像,整个天安门广场就是一片被现场编程好的大的FPGA - 由并行执行着的n个模块(module)组成,每个模块有组合(组合逻辑)、有时序(时序逻辑),他们之间又互相协调(module之间的参数传递)、全部的模块由统一的时钟进行调度,共同完成了一个复杂的大项目。天安门阅兵的总指挥做的工作其实就是FPGA逻辑的编写者做的事,只不过总指挥规划的是人,FPGA编写者规划的是“逻辑门”。
其实生活中每一个需要多个人(集体)共同完成的活动,都像是FPGA干的活,活动的规模不同,相当于需要的FPGA的资源不同。所有集体活动最重要的特点就是“多人协同”,在每一时刻多个人都在做着自己的事情,而这多个人之间又互相之间配合着,这是集体活动与一个人做事的区别。
这也是FPGA和单核的MCU/单片机之间的区别。
因此:
FPGA的编写就是在组织、调度一场集体活动
MCU/单片机的编程就像是一个人在规划自己的事儿
因此,能够“玩转”FPGA的工程师,自然就具备了严谨的逻辑思维能力、针对各种资源的较强的组织、协调、全局管理能力。
具备了这种能力的人,会是一个优秀的管理者。
所以,学习FPGA编程,不仅能够学到一门用于电子产品的重要技能,它更是一种提升逻辑思维、综合管理能力的修炼,是迈向管理者的一个成长平台。
所以,好好学习FPGA吧,你将前途无量!
硬禾小帮手 -硬件工程师的随身助手