搜索
bottom↓
回复: 61

大家来分享下为什么喜欢FPGA?它的魅力在哪里?

[复制链接]

出0入0汤圆

发表于 2014-12-22 20:12:19 | 显示全部楼层 |阅读模式
大家来分享下为什么喜欢FPGA?它的魅力在哪里?

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2014-12-22 20:14:45 | 显示全部楼层
只是上课时接触到了FPGA ,没做过实际的东西,但是觉得基本ARM能搞定的,FPGA都可以,FPGA可以的,ARM不一定做得到

出0入8汤圆

发表于 2014-12-22 20:22:50 | 显示全部楼层
刚学,感觉用起来要比单片机或者arm自由很多
特别是刚接触的时候知道fpga能并行处理,感觉尼玛这是神器啊

出0入22汤圆

发表于 2014-12-22 20:28:32 | 显示全部楼层
1.最直接的,fpga可以一定程度上任意分配io,比如,你用spi跟其他设备连接,可以任意指定fpga的io为ss,mosi,miso,sck。这样,在布线的时候可以比较随意。
2.最主要的,fpga是并行处理,速度快,这是普通单片机,arm无法比拟的。

出0入17汤圆

发表于 2014-12-22 20:52:32 | 显示全部楼层
难学难用性能屌

出0入0汤圆

发表于 2014-12-22 21:25:00 来自手机 | 显示全部楼层
感觉上是自由度最搞的芯片了,而且方便

出0入0汤圆

发表于 2014-12-22 21:27:41 来自手机 | 显示全部楼层
自由,无拘束

出0入0汤圆

发表于 2014-12-22 21:37:45 | 显示全部楼层
IO口定义比较灵活,对应内部的功能模块可以任意指定到IO,运算是流水线处理,几个CLK就出结果了,而且是连续的,这是ARM是做不到的。

出0入0汤圆

发表于 2014-12-23 09:33:37 | 显示全部楼层
难学难用性能屌 + 10086

出0入0汤圆

发表于 2014-12-23 12:19:33 来自手机 | 显示全部楼层
arm能搞定的fpga都能搞定  呵呵   牛逼吹大了

出0入0汤圆

发表于 2014-12-23 13:34:03 | 显示全部楼层
放一块在板子上觉得牛鼻

出0入22汤圆

发表于 2014-12-23 13:43:15 来自手机 | 显示全部楼层
CMika 发表于 2014-12-23 12:19
arm能搞定的fpga都能搞定  呵呵   牛逼吹大了

哈,你提个课题出来试试看fpga能不能搞定?

出0入0汤圆

发表于 2014-12-23 14:05:06 | 显示全部楼层
本帖最后由 qinshi1208 于 2014-12-23 14:07 编辑
CMika 发表于 2014-12-23 12:19
arm能搞定的fpga都能搞定  呵呵   牛逼吹大了


看怎么去分析,ARM也是在FPGA上面验证后才流片的,这个是没有考虑FPGA的规模和成本。但考虑到成本及实际工程项目中时,同一价格成本的FPGA和ARM功能上确实没办法比较,FPGA去模拟ARM的外设,那确实没办法

出0入0汤圆

发表于 2014-12-23 14:18:50 | 显示全部楼层
我刚学FPGA,Verilog数字系统设计,感觉这门语言写起来不难,当然我刚学...

出0入0汤圆

发表于 2014-12-23 19:29:30 来自手机 | 显示全部楼层
本帖最后由 CMika 于 2014-12-23 19:37 编辑
zxq6 发表于 2014-12-23 13:43
哈,你提个课题出来试试看fpga能不能搞定?


没什么好提的    2个市场份额就能说明了   你要拿几千几万的片子来做arm几百块钱能做的事是你的自由

出0入0汤圆

发表于 2014-12-23 19:30:53 来自手机 | 显示全部楼层
本帖最后由 CMika 于 2014-12-23 20:19 编辑
qinshi1208 发表于 2014-12-23 14:05
看怎么去分析,ARM也是在FPGA上面验证后才流片的,这个是没有考虑FPGA的规模和成本。但考虑到成本及实际 ...


就说现实应用    别人在fpga上验证  你能在上面在上面搞个cortex a9的软核?为什么xilinx和altera要嵌a9进去

出0入0汤圆

发表于 2014-12-23 19:40:23 来自手机 | 显示全部楼层
本帖最后由 CMika 于 2014-12-23 19:57 编辑

还有   arm能做的事情fpga能做不代表你能做出来  
  不代表有商业实用价值    说到底个人理解不同   如果有人认为没实用价值的能也是能的话没必要再来说了

出0入0汤圆

发表于 2014-12-24 15:30:43 | 显示全部楼层
FPGA能搞定所有数字电路的需求,当然,并不会因此而替代ARM和专业芯片。
FPGA价格也没有那么贵,EP4CE6很便宜啊,30人民币不到。
FPGA自由灵活,并行能力强。
举例例子,需要千兆以太网线速处理报文,一片EP4CE6一般就可以搞定了。ARM搞不定吧?

出0入0汤圆

发表于 2014-12-24 15:43:36 来自手机 | 显示全部楼层
muok@sohu.com 发表于 2014-12-24 15:30
FPGA能搞定所有数字电路的需求,当然,并不会因此而替代ARM和专业芯片。
FPGA价格也没有那么贵,EP4CE6很便 ...

没人说arm能替代fpga

出50入10汤圆

发表于 2014-12-24 16:45:22 | 显示全部楼层
fpga怎样实现单片机的中断处理?之前听一个玩FPGA大牛说实现不了。

出0入0汤圆

发表于 2014-12-24 16:56:52 | 显示全部楼层
本帖最后由 zlutian 于 2014-12-24 17:00 编辑

fpga对我等单片机平民来说是高大上的东西

出0入0汤圆

发表于 2014-12-24 17:09:52 | 显示全部楼层
cpld ,fpga  没接触过,可能没项目用吧,都不知道拿来做什么。

出0入25汤圆

发表于 2014-12-24 17:42:33 | 显示全部楼层
本帖最后由 XIVN1987 于 2014-12-24 17:44 编辑
our2008 发表于 2014-12-24 16:45
fpga怎样实现单片机的中断处理?之前听一个玩FPGA大牛说实现不了。


不需要实现!
MCU之所以需要中断是因为:MCU是串行的,任意时刻只能做一件事情,如果多件事情要做的话只能按顺序一件一件来做,中断的作用就是先暂停当前做的工作去做一件更紧急的事情,等做完了紧急的事情再回来接着做之前暂停的工作
FPGA是并行的,可以同时做多件事情,做紧急的事情的时候不需要暂停其他的事情,所以压根不需要中断

出0入0汤圆

发表于 2014-12-27 22:14:59 | 显示全部楼层
本帖最后由 NJ8888 于 2014-12-27 22:24 编辑

当基于串行指令工作的微控制器处理不了想要的事项(比如我的产品0.6--2us不等间隔脉冲要处理宽度,要算数据流CRC,16--1Kbits不等长要按每16位存储到一个地址空间,也不能先缓存,因为数据流过后32us内要发送新的命令)这时就用FPGA。FPGA的魅力就是不受制于单核串行指令,可以同时跑好几个事项

出0入17汤圆

发表于 2014-12-28 18:59:44 | 显示全部楼层
hhxb 发表于 2014-12-22 20:52
难学难用性能屌

哈哈,感觉这句话评论的非常正确···!

出0入0汤圆

发表于 2014-12-28 22:25:40 来自手机 | 显示全部楼层
我想学!

出0入0汤圆

发表于 2014-12-30 21:06:56 | 显示全部楼层
没什么好比较的,FPGA和MCU定位不一样,用法也不一样,都有各自牛逼的地方和不足的地方。做电子设计的不要想什么全能的东西,好的设计只是在各种利弊中取舍而取得平衡而已。喜欢哪个就学哪个,只要学好,钱途无量!!

出0入0汤圆

发表于 2014-12-30 21:19:42 | 显示全部楼层
自由度高,易模块化,修改自由度高

出0入0汤圆

发表于 2015-1-11 15:31:22 | 显示全部楼层
难学难用性能屌 + 10086,哈哈,神评价。
除了并行处理意外,FPGA感觉相比于DSP和其他单片机,可以自主规划资源使用情况,根据实际情况进行调整,这点实在太过强大。
不过问题也在这儿,相反地,很多东西需要对底层有比较深入的了解,也真是不好用,当然也在进步(IP核之类的)。
FPGA如同一张白纸,在纸允许的范围和一些限制内,可以画出各种美妙的物体,但对使用者也提出了更高的要求。

出0入0汤圆

发表于 2015-1-11 22:20:30 | 显示全部楼层
它是既有软件的可编程性,又有硬件的实时性。
我的观点,不知道对不。

出0入0汤圆

发表于 2015-1-12 21:46:41 | 显示全部楼层
关于单片机中断问题,提出问题一方,问的精彩!回答一方,更精彩!学习啦!

出0入0汤圆

发表于 2015-1-12 22:04:49 | 显示全部楼层
zxq6 发表于 2014-12-23 13:43
哈,你提个课题出来试试看fpga能不能搞定?

你用FPGA搞个PID算法看看 ?

出0入0汤圆

发表于 2015-1-12 22:51:09 | 显示全部楼层
holts2 发表于 2015-1-12 22:04
你用FPGA搞个PID算法看看 ?

妥妥的。

出0入0汤圆

发表于 2015-1-13 00:03:44 | 显示全部楼层
our2008 发表于 2014-12-24 16:45
fpga怎样实现单片机的中断处理?之前听一个玩FPGA大牛说实现不了。

本身就不是同种功能得东西。

各自有优势和劣势,相互取长补短。

ARM,DSP,单片机是串行机制的顺序工作,所以可暂存工作状态,来中断问题。

FPGA是并行机制,就像车间的生产流水线,每个环节都是同时在前进同时在工作,虽然表面上看上去是串行顺序的。并行处理还有一种好处,就是可以很多个流水线同时工作。效率翻倍。恰恰是在处理串行机制时是FPGA的弊端,它只能靠状态机方式来实现。所以突然来个中断,会导致效率大降,处理比较棘手。可以这么说,FPGA的应用里,就没为中断作考虑,不允许中断。不过我觉得也不是绝对,可以换一种思路,把中断换成另一种概念,就是“使能复用操作(或者叫乒乓操作)”,这样的话,在FPGA里面是有的。而且相当多的应用。

你自己学着写一个正确的程序,能跑跑起来,你就能知道FPGA原理了

出0入25汤圆

发表于 2015-1-13 00:32:23 来自手机 | 显示全部楼层
我觉得说单片机是串行工作也不完全准确,毕竟CPU和外设之间、外设和外设之间也是并行工作的,只是在外设完成某项工作的时候让CPU处理下,,如果再用上DMA、反射(也有叫事件)这些技术,并行度就更高了

出50入10汤圆

发表于 2015-1-13 11:54:33 | 显示全部楼层
haowei029 发表于 2015-1-13 00:03
本身就不是同种功能得东西。

各自有优势和劣势,相互取长补短。

单片机的中断处理,当来一个外部中断信号,多台设备收到后,可以同时去处理中断事件。

FPGA是同时处理多个事件,当需要多台设备的其中一个事件接收到一个外部触发信号需要同步运行时,怎样实现?

出0入0汤圆

发表于 2015-1-13 13:02:09 | 显示全部楼层
并行处理, 是挺牛的
但控制某个LCD, 显示个啥的话(不是纯RGB) 就傻了

出0入0汤圆

发表于 2015-1-13 13:14:34 | 显示全部楼层
就感觉在问什么武功最厉害一样,这个点看实际修炼的人什么水平。 不管是ARM、单片机还是FPGA只不过是手里的工具而已,根据实际需求使用即可,也就是见招拆招。

出0入0汤圆

发表于 2015-1-13 19:49:14 | 显示全部楼层
our2008 发表于 2015-1-13 11:54
单片机的中断处理,当来一个外部中断信号,多台设备收到后,可以同时去处理中断事件。

FPGA是同时处理多 ...

FPGA一般情况下适合“连续性的”"实时的"流水线处理,随着时钟同步操作进行的。不适合处理中断异常事件,因为异常中断会破坏流水线处理和同步性。

不过只有很少情况下可以进行处理,当与原先流水线处理的数据不具有相关性,或者引入中断异常处理时不影响已经在原先流水线上处理的数据。但这样就破坏了“实时性”“连续性”。

总之,FPGA确实不适合中断异常处理。但是要是对FPGA非常熟悉的话,能处理一些比较特殊的中断异常,只是这种情况很少,而且比较复杂和浪费逻辑资源。
FPGA适合做数据的处理,不适合做事件的控制。

对于你说的情况,应该是中断事件与FPGA所操作的数据具有相关性,而且要求同步。所以FPGA不好处理。

出0入0汤圆

发表于 2015-1-13 20:50:19 | 显示全部楼层
haowei029 发表于 2015-1-13 19:49
FPGA一般情况下适合“连续性的”"实时的"流水线处理,随着时钟同步操作进行的。不适合处理中断异常事件, ...

我觉得你说发不对,FPGA的状态机可以编写随时接受外部信息(用时钟同步采集),而这时钟,跑50M一般不会有问题,而处理最短一个时钟,比基于串行指令的MCU中断响应快得多,而且同时来的异常都能得到同时处理。MCU干瞪眼

出0入13汤圆

发表于 2015-1-13 22:31:25 | 显示全部楼层
见过最NB的是55*55BGA-3片+64Gb内存做的100GB交换板!真心不知道这东西有多么强大。。。。

出0入0汤圆

发表于 2015-1-13 22:35:44 | 显示全部楼层
FPGA自由,并行能力强。

出0入0汤圆

发表于 2015-1-14 00:25:31 | 显示全部楼层
NJ8888 发表于 2015-1-13 20:50
我觉得你说发不对,FPGA的状态机可以编写随时接受外部信息(用时钟同步采集),而这时钟,跑50M一般不会 ...

可能我们说的着重点不同,你强调的是“逻辑状态的使能控制”,我说的是“高速流水处理中断处理”

对于FPGA,多数应用是在高速实施连续的流水处理,而中断是不确定在哪一个时间出现。所以,所处理的数据如果与中断事件相关会导致异常数据出现。FPGA非常强调时序,往往错误数据会在第某个不确定的时钟出现。

如果你不是解决“高速”“连续性的”"实时的"流水线处理,完全可以不用FPGA,每个器件的选用是其必要性的。如果高速处理DSP能达到要求,就没必要使用FPGA,因为FPGA设计复杂程度,功耗和价格,往往也是项目开发考虑的范围。

状态机对于解决串行机制的FPGA来说,可能是最简单易行的选择。否则就要模拟单片机制作一个MCU软核。所以,“逻辑状态的使能控制”,你是对的。

状态机只是FPGA应用类型中,很小的但很常用的功能之一。仅仅只是作为中断逻辑控制。配合其他逻辑算法可以实现处理中断(数据流)控制,但比较麻烦,而且耗费FPGA芯片资源。

出0入0汤圆

发表于 2015-1-14 00:37:19 | 显示全部楼层
XIVN1987 发表于 2015-1-13 00:32
我觉得说单片机是串行工作也不完全准确,毕竟CPU和外设之间、外设和外设之间也是并行工作的,只是在外设完 ...

你说的是。
因为各个功能模块之间不具有相关性。与之相关的是靠各个功能模块映射的寄存器标志位,来告知处理器核。由处理器核靠程序指令来管理各个功能模块。
DMA操作内部,估计也是处理器核程序配置过的映射关系。

出0入0汤圆

发表于 2015-1-14 15:13:48 | 显示全部楼层
自由,灵活,并行度高。之前用在要求高通信性能而需求和协议经常改的项目中,可以有效设计和备料降低风险,基本达到一劳永逸的效果
至于arm能做到的,什么算法、什么中断,FPGA也一定能做到,退一万步,在FGPA里做一个ARM软核就行了
当然,能做到不代表能做好,硬要让FPGA做ARM的事,功耗和成本是硬伤,它们谁也取代不了谁,各有所长

出0入0汤圆

发表于 2015-1-21 09:28:44 | 显示全部楼层
XIVN1987 发表于 2014-12-24 17:42
不需要实现!
MCU之所以需要中断是因为:MCU是串行的,任意时刻只能做一件事情,如果多件事情要做的话只 ...

精辟,学习了

出0入0汤圆

发表于 2015-1-21 10:03:52 | 显示全部楼层
holts2 发表于 2015-1-12 22:04
你用FPGA搞个PID算法看看 ?

PID是再容易不过了

出0入0汤圆

发表于 2015-1-31 00:09:09 | 显示全部楼层
能够控制到时钟的边缘和门级,让你控制欲得到空前满足。

出0入0汤圆

发表于 2015-2-19 16:04:50 | 显示全部楼层
不是喜不喜欢,不论FPGA,ARM,DSP,MCU还是X86,都是工具。关键是要看产品或项目的需要,选择合适的工具。好比春节回家,是自驾,还是高铁,飞机,根据自己现实情况和需要选择

出0入0汤圆

发表于 2015-2-27 22:10:45 | 显示全部楼层
最近正着手学习FPGA, 读完此贴受益匪浅

出0入0汤圆

发表于 2015-2-27 22:21:28 | 显示全部楼层
本帖最后由 dzrs0620 于 2015-2-28 14:36 编辑
wyeth 发表于 2014-12-22 21:37
IO口定义比较灵活,对应内部的功能模块可以任意指定到IO,运算是流水线处理,几个CLK就出结果了,而且是连 ...


读书那会自以为懂点51,就没有好好学FPGA,现在后悔啊……当时因为实验没操作好,还被老师屌,当时好像还跟他争论了FPGA到底需不需要时钟???求各位大神答疑啊……当时的情况好像是:他问我FPGA要不要时钟,我说肯定得要啊,没时钟怎么跑,结果他说还真不要时钟,直接顶得我无言以对……

出0入22汤圆

发表于 2015-2-27 23:30:24 来自手机 | 显示全部楼层
dzrs0620 发表于 2015-2-27 22:21
读书那会自以为懂点51,就没有好好学FPGA,现在后悔啊……当时因为实验没操作好,还被老师屌,当时好像还 ...

如果设计的是时序逻辑,需要时钟,组合逻辑不需要。

出0入0汤圆

发表于 2015-2-27 23:38:16 | 显示全部楼层
个人观点:
1. 并行性好,FPGA可同时支持几十路IIC或SPI,ARM/MCU/DSP怎么pk?
2. 可扩展性好,端口可随时换,布线更容易;
3. 目前貌似Actel已经出了带ARM核、ADC、DAC的低功耗Flash FPGA,逻辑+控制都能做,感觉无敌了,呵呵。

出0入0汤圆

发表于 2015-2-28 00:07:36 | 显示全部楼层
来做个阶乘,看那个容易

出0入0汤圆

发表于 2015-2-28 10:20:00 | 显示全部楼层
学习了!!

出0入0汤圆

发表于 2015-2-28 10:40:14 来自手机 | 显示全部楼层
holts2 发表于 2015-1-12 22:04
你用FPGA搞个PID算法看看 ?

数字信号处理,fpga强项啊

出0入0汤圆

发表于 2015-2-28 13:35:50 | 显示全部楼层
FPGA做FIR呀,做PID要FPGA干嘛?又没很强的实时性要求,又没运算量……

出0入0汤圆

发表于 2015-2-28 14:34:12 | 显示全部楼层
zxq6 发表于 2015-2-27 23:30
如果设计的是时序逻辑,需要时钟,组合逻辑不需要。

那请问这个时钟由什么来提供?是外接晶振还是内部也有类似RC振荡之类的东西?

出0入22汤圆

发表于 2015-2-28 14:47:08 | 显示全部楼层
dzrs0620 发表于 2015-2-28 14:34
那请问这个时钟由什么来提供?是外接晶振还是内部也有类似RC振荡之类的东西? ...

时序逻辑需要外部提供时钟,不管是有源晶振还是vco还是外部时钟
组合逻辑不需要,就像70hc00,与或非那种门电路,不需要时钟的。

出0入0汤圆

发表于 2015-2-28 14:56:05 | 显示全部楼层
学习了, thanks

出0入0汤圆

发表于 2015-2-28 15:37:09 | 显示全部楼层
产生多路高速信号,FPGA爽到翻。
单片机做控制,FPGA做信号处理。

出0入70汤圆

发表于 2015-2-28 17:16:52 来自手机 | 显示全部楼层
高速数据转换器(ADC,DAC)的接口,离了FPGA我都不知道怎么搞定
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 02:14

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表