lvfei 发表于 2010-12-28 18:44:12

新手求教:FPGA/CPLD和单片机的区别,谢谢大家

我是新手,刚开始接触CPLD,之前有使用单片机的经验,但是一直不清楚FPGA/CPLD和单片机之间的区别
按我的理解,单片机型号齐全,种类繁多,能能够满足绝大多数的应用场合,我们要做的只是选择适当的型号而已,就一定能够满足使用要求;
而,对于FPGA/CPLD,看了一些介绍,我理解为高集成度的逻辑门,通过逻辑门的组合实现期望的组合逻辑或数字逻辑功能;
但是,为什么要这么做,或者是这么做不是很麻烦吗,直接用单片机不就OK吗?单片机不也是基于数字逻辑运算吗,干嘛非得要弄出逻辑门来?
此外还有几个小问题:FPGA/CPLD的可靠性是不是更高,成本是不是也低啊,再有就是之前听别人说FPGA/CPLD的速度更快,是纯硬件的,不是通过软件来实现,但是我查了查它的速度好像也不是很高啊,几十M到上百M左右吧。

renpeng009 发表于 2010-12-28 18:50:20

我一开始也是这么认为的,随着学习的深入,我才知道,对于FPGA来说,最大的优势是并行处理,而这恰恰是单片机望尘莫及的。单片机内部的核心部件也是用逻辑门构成的,但这是死的,无法随意改变。FPGA内部有大量的逻辑门,可以由工程师自由发挥。

lvfei 发表于 2010-12-28 18:51:11

再有就是,我看到CPLD好像是主要实现特定的组合逻辑功能,能够减小单片机的负担,实现所需要的功能十分的方便,以此类推,是不是大型的FPGA就是实现一些比较复杂的逻辑功能的吗?
我一直在想的就是,它们之间在功能上能不能替换,或者是到哪一天单片机把FPGA/CPLD完全取代了,或是相反。

lvfei 发表于 2010-12-28 18:56:22

回复【1楼】renpeng009 大鹏集成
-----------------------------------------------------------------------

这个并行处理让我想到了PLC,个人还是感觉PLC与单片机相比,并没有任何优势啊,只是它的可靠性高,但是它也是使用单片机的核,好像西门子的PLC用的处理器和英飞凌的XE166系列单片机是相同的,而且单独用嵌入式做开发的话成本会控制的很低,而且可靠性也没问题吧

ssaweee 发表于 2010-12-28 19:12:57

回复【2楼】lvfei吕飞
-----------------------------------------------------------------------

不能替换,但是fpga可以做成单片机甚至编程为几个单片机在里面都可以

单片机如何做高速数字逻辑呢?你想想单片机一个指令差不多就要一个周期,逻辑多了忙不过来,,而cpld内部的逻辑门是独立的,大多设计的逻辑都是一个时钟的逻辑(多时钟的为流水线结构)

lbc___ 发表于 2010-12-28 19:22:04

FPGA的速度体现在一个时钟周期内能并行地干很多事情,而处理器一类的一个周期只能执行一条指令。。

renpeng009 发表于 2010-12-28 19:22:44

我认为这是两个不同的领域,不存在谁取代谁的可能性。鉴于我也是初学者,没办法阐述得十分详细,有待楼主自行体会。

huangdog 发表于 2010-12-28 19:27:51

CPLD/FPGA关键在于并行处理。他的高速、稳定是单片机不能相比的

这个我觉得确实需要自己体会

zj_llh 发表于 2010-12-28 19:27:52

我的理解:FPGA的工作过程是硬件的概念,单片机的运行过程是软件的概念

lvfei 发表于 2010-12-28 19:30:07

回复【6楼】renpeng009 大鹏集成
-----------------------------------------------------------------------

应该还是像你说的这样,应用在不同的领域吧,各有特点,对于初学来说,都无法把它们的都功能发挥出来,所以也看不到它们的优势,我再深入的学习吧,谢谢~~~

lvfei 发表于 2010-12-28 19:36:08

回复【8楼】zj_llh
-----------------------------------------------------------------------

硬件和软件的区别是一个方面,经过大家的点拨,我还是明白了不少,外在的看它们的使用特点,具体的应用场合的区别,还是不太明确。

windingway 发表于 2010-12-28 19:39:35

去年接触了几个月的FPGA/CPLD,把它看做是数字电路,比开始就当成单片机拿来VHDL/Verilog语言来学要好。比起单片机来说,FPGA的并发执行能力让我印象深刻,看看综合后的电路实现,才发现自己的设计有多糟糕。。
不计代价的话,用FPGA可以做出各种单片机核,毕竟单片机也是用逻辑器件构成的。

lvfei 发表于 2010-12-28 19:42:49

回复【7楼】huangdog
-----------------------------------------------------------------------

如此说来,FPGA/CPLD还是在速度方面更胜一筹,这也是它们的巨大优势吧。还有一点,我感觉单片机有些通用性吧,而FPGA/CPLD的专用性更强一些吧

lvfei 发表于 2010-12-28 19:54:12

回复【11楼】windingway
-----------------------------------------------------------------------

听你这么说,我还是从基本的数字逻辑电路开始学习吧,现在要用CPLD和单片机通信,应该也不会复杂,至于更加高端的功能,以后再慢慢学习了。

lvfei 发表于 2010-12-28 19:56:58

回复【7楼】huangdog
-----------------------------------------------------------------------

这样看来,还是不能混在一起了,它们都有独特的优势,而用FPGA去模拟实现单片机也太不经济了,还是要让它实现更加擅长的纯逻辑运算吧,这样理解应该更贴切吧。

lvfei 发表于 2010-12-28 19:58:28

回复【4楼】ssaweee
-----------------------------------------------------------------------

流水线的结构速度应该也比较快吧,所以个人认为单片机的速度还是不错的。

ssaweee 发表于 2010-12-28 20:32:15

回复【15楼】lvfei吕飞
-----------------------------------------------------------------------

流水线是为了解决当逻辑级联导致延时增加


这样看来,还是不能混在一起了,它们都有独特的优势,而用FPGA去模拟实现单片机也太不经济了,还是要让它实现更加擅长的纯逻辑运算吧,这样理解应该更贴切吧。
  ”
在高速逻辑为主cpu控制为辅时fpga中使用处理器的核还是比较好的。
页: [1]
查看完整版本: 新手求教:FPGA/CPLD和单片机的区别,谢谢大家