FPGA、单片机的区别?
单片机可理解为跑程序的微型电脑,麻雀虽小五脏俱全,所写的代码相当于程序。
FPGA则应该理解为可用电脑编辑的数字逻辑电路集成芯片,你所写的代码其实是在描绘一个数字逻辑电路。
区别:
两者差别最大的应该是速度!
FPGA由于是硬件电路,运行速度直接取决于晶振速度,系统稳定,特别适合高速接口电路。
单片机由于是单线程,哪怕是常用的M3系列流水线也是单线程执行,程序语句需要等待单片机周期才能执行。
入门难易程度,单片机比FPGA简单些,价格也低一些。要做PID算法控制的用单片机可以,STM32F4系列已经到300M+跑PID完全足够,如果是跑嵌入式的话可以上ARM芯片。涉及通信、图像等高速部分可以采用单FPGA模块。
FPGA:
FPGA是以硬件描述语言(Verilog或VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至 FPGA 上进行测试,是现代 IC设计验证的技术主流。这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flip-flop)或者其他更加完整的记忆块。
系统设计师可以根据需要通过可编辑的连接把FPGA内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里。一个出厂后的成品FPGA的逻辑块和连接可以按照设计者而改变,所以FPGA可以完成所需要的逻辑功能。
FPGA一般来说比ASIC(专用集成电路)的速度要慢,实现同样的功能比ASIC电路面积要大。但是他们也有很多的优点比如可以快速成品,可以被修改来改正程序中的错误和更便宜的造价。厂商也可能会提供便宜的但是编辑能力差的FPGA。因为这些芯片有比较差的可编辑能力,所以这些设计的开发是在普通的FPGA上完成的,然后将设计转移到一个类似于ASIC的芯片上。另外一种方法是用CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件)。
-------------------------------------------------------------------------------------------------------------------------------------------
再说单片机:
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。
可以理解为在小电脑上写程序,其思路也跟电脑编程相同,追求算法效率和程序稳定性。目前IAR和MDK编译器 支持 C和C++语言,对于CS的小伙伴来说上手是比较轻松的。
有想学单片机,或者FPGA的吗,可以直接加扣聊哦
比较通俗的区别就是入门难易程度,单片机比FPGA简单些,价格也低一些。
FPGA主要用于通信、图像处理和芯片验证领域,两者的芯片结构有很大不同,FPGA更偏向于硬件电路,而单片机更偏于软件,无论是从成本上还是做控制肯定是单片机要好,两者的应用领域和擅长点大有不同。
想要学好他们的,可以直接Q我哦
这两个课程,其实每一个方向学好学精了,都不错,如果还能结合起来,那效果更是不错哦,想体验一下这些课程吗,直接Q我就好了哦
学习使用单片机是了解计算机原理与结构的最佳选择。对嵌入式感兴趣的,可以从单片机开始学起哦
好!