首先我只能给意见,不强求你的选择权。
第二我只能告诉你如果学完FPGA和ARM都掌握以后是什么样子情况。
了解上面两点以后往下看。
(呵呵,我和你正好是反过来的,我是做的FPGA,到了公司也是做FPGA,但是由于硬件架构问题不得不学习ARM)
我觉得FPGA和ARM孰轻孰重没得比较。但是殊途同归,用经典FPGA结构处理不了的问题就要用ARM来处理,这个是没办法的。器件的最终用途就是帮我们解决问题。
选择1.如果你决定主攻ARM,你学FPGA的优势在于你已经懂ARM了,所以你学习EDA以后有一个优势:
CPU和FPGA的联合的架构,这个是一种解决方案,而且普遍被嵌入式所使用(你非要拿手机给我举例我也没办法,笑~~)因为系统总是分层的,CPU永远工作在应用层,作为FPGA而言,虽然工作在链路层(帮CPU存储数据,速率匹配,接口实现等等)但是这个架构中FPGA需要比CPU跑的更稳定。这个架构的好出就是灵活。CPU外部接口随意扩展,只要自己编写FPGA的程序实现接口就可以。
优势:在了解系统核心算法的前提下,更加了解系统架构。这个是有好处的,因为在使用系统之前肯定是要先架构系统。在上面CPU和FPGA架构下面。FPGA从CPU角度看来充当了内存。从底层角度看来FPGA充当了驱动,那么在这种接口下面,FPGA如果不起来,那么ARM启动也只是半残。不能发挥ARM的所有功能。
(我在给软件程序员讲FPGA和pxa255协同工作原理,他们对于FPGA可以复用地址或者透明双块内存表示惊奇,可以对同一个地址读写出不同的结果表示惊讶,因为他们不了解FPGA的工作方式。FPGA的灵活性他们体会不到。但是你可以。)
选择2:你主攻FPGA方面。
我觉得学校么,对FPGA和ARM都存在一定量的误解,就好像学生或者少数老师会认为:“linux和windows是差不多的东西”“VHDL是按照VC改出来的”等等,这些可能一定意义上面是对的(而且这个一定意义几乎一个反例就能被推翻)。FPGA现在的功能很强,DSP和CPU都是可以内嵌的。而且是软核这点非常好。FPGA现在普及不开的原因主要是成本,本身技术已经成熟。
那么你的优势就在于:你了解FPGA以后,将软内核嵌入到FPGA内部,此时公司不需要另外找人为你的ARM或者CPU进行配置。
参考网站,可以了解FPGA到底是发展到什么情况:
xilinx的市场解决方案:
http://china.xilinx.com/technology/ altera的市场解决方案:
http://www.altera.com.cn/technology/tc-index.html 一句话总结:殊途同归,英雄不问出处,所以学什么,选择什么路不重要,重要的是怎么走和自己的兴趣。