老莫

为什么不推荐为了找工作而学习FPGA

4
阅读(53952) 评论(86)
最近的几篇论文都改好投出去了,希望后面有好的结果。暂时也就有点闲暇时间空出来了,好久没有写技术文章来总结提炼一下了,今天难得就写一点。

每年到了找工作的时节,总会有很多迷茫的小本甚至是小硕在到处讯问说:我是不是应该去参加个培训班,去学一门什么什么技术。然后学哪个比较好找工作一点,学哪个收入会高一点等等。每当这个时候就有很多抱着就业目的的人来问到底学什么技术好啊,哪个技术有前途啊,等等。

一般在这个时候,我是不推荐这帮人去学习FPGA的。当然,并不是FPGA技术不好,也不是学FPGA技术没有前途,而是有别的很多原因。导致它并不适合推荐给以就业为目的的这帮人去学习。

原因一:FPGA的“逼格”太高

FPGA的应用范围相对而言一直不宽。之前我也谈过,其主要的应用面就是三个:高速接口电路、高速数学运算与数据处理、ASIC/SoC的验证原型;也有人说可重构计算是FPGA的第四大应用领域,但是我觉得目前还没有什么真正意义上的可重构计算,即使有也可以将其归并到第二类里面去。在掌握基本的HDL语言和FPGA开发流程的基础上,三个方向分别还需要掌握其它相应的知识。

第一个方向是传统的,也是目前国内大量中小公司和部分科研院所使用FPGA的主要方向。主要包括接口扩展、协议转换、高速收发与处理等内容。通常在这个方向混饭还至少需要掌握以下内容:1、高速电路板设计,2、计算机接口技术;可能还要求掌握的技术包括:1、底层驱动开发,2、通信协议。

第二个方向涵盖的内容较多,但是核心都是利用FPGA实现算法或运算加速,从传统的FFT、FIR到最新的一些所谓的NB的算法都有可能。这个方向门槛相对于第一个方向更高,通常都是需要有一定技术水平的公司才能完成。因为涉及到算法和FPGA的协同优化。目前国内的华为、中兴这样的大的通信公司,以及一些电子通信类的整机研究所会招聘这个方向的人。一些有技术实力的创业型公司或特殊领域的公司(如金融、石油领域的数据分析方案解决)也有这方面的需求。更值得欣慰的是目前google、X讯这样的互联网公司看起来也在考虑引入FPGA实现算法加速。但这个方向混饭吃也不容易,至少需要掌握以下内容:1、常用的数字信号处理/数值计算算法,2、基于Matlab/C++的算法仿真,3、常用的数字算法FPGA实现方式或技巧;可能还要求掌握的技术包括:1、图像、视频处理算法,2、通信系统理论,3、其它常见的并行计算算法。

第三个方向属于是给ASIC/SoC设计打下手,别人已经做好的很多模块、IP用FPGA的板子去验证一下。招人不多。而且现在随着EDA tools的发展,很多时候也不是靠FPGA去做一个原型能验证出来的。这一块需要掌握的技术包括:1、各种验证方法学,2、板级电路的调试经验;可能还要求掌握的技术包括:前面提到的各种技术……

原因二:FPGA的“门槛”太高

FPGA“门槛”高是几个方面,一个是费用问题。虽然FPGA的价格已经一降再降,但是MCU、DSP的价格同样也是一降再降。在大多数场合FPGA还是显得有点“奢侈”。另外一个问题就是就是开发能力的问题。相比于MCU或者DSP而言FPGA更加灵活,但也意味着对资源的利用和掌控更加“底层”。现在MCU和DSP的开发很多时候就是调用一些库函数,完成一定的功能即可。而FPGA却要组织更底层的逻辑资源去构建一整套完整的系统。虽然有很多IP可以用,但是一方面这些IP都不是免费的,另一方面使用IP可比调用一个函数难多了。这也是为什么前面说的3个方向要掌握那么技术的原因,在FPGA开发上要从底层开始组织好这些资源,一些基本的理论、方法是必须要掌握的。

门槛太高就导致用它做开发的公司、机构少。换言之能创造的就业岗位也就不多。

原因三:FPGA在面临转型

目前FPGA正在面临一个转型的问题,换言之就是传统市场萎缩,新兴市场还待打开的问题。这一转型既有开发手段上的转型,也有行业应用的变化。因此,目前学习到的这些FPGA开发的方法,在未来还有没有用,就成了一个疑问。目前以SoC-FPGA为代表的一种转型方向,是去抢占传统的高性能SoC市场。但这个市场好不好抢,是很怀疑的。之前我曾经认为这一块应该是有所作为的,但是现在发现不是那么简单的。在ARM外面加上一圈可编程逻辑,用来做什么好呢?做接口?现在的高端SoC芯片上面接口已经如此的丰富,在大多数情况还是基本够用的。做算法加速?那么去加速什么算法呢?目前移动多媒体设备上面各类图形图像加速器也不少了。别的特殊的应用需要加速的又需要是以SoC形式的加速的?也许是一些特种设备,我不是很了解。但是应该不会是通用的市场。剩下的就是做做研究了。另外一种就是以高层语言综合为代表的转型方向,如Xilinx的Auto-ESL和Altera的OpenCL Based FPGA开发。这一类转型的未来在大数据、云计算加速方向。这一块目前是GPGPU的主场。对于Xilinx的Auto-ESL我不是很清楚。OpenCL Based FPGA开发目前看来还是很有希望的。但问题在于OpenCL继承了GPGPU的优势,也继承了GPGPU的缺陷。那就是传统的GPU是用来做图形图像处理的,数据都是一帧一帧加进去算的,而且算完以后就直接输出了。因此对于数据传输的latency其实并不是很大的问题。而如果涉及到通用计算,这GPU和CPU之间的交互latency就是大问题。上周刚听了个讲座,就是专门讲这一方面的。不过我没怎么听懂就是了……

所以在这个转型期,其实FPGA开发需要的岗位是在萎缩的。之前听在华为的同学爆料,美国某大学教授预言FPGA在网络通信市场大概还有10年的寿命,再往后就全是SDN了。这一大块FPGA传统市场的丧失将是一个巨大的危机。而另一大市场,视频/图像领域,随着网络化视频监控SoC的普及,原来采用FPGA作为主要技术方案的厂家也就逐渐改弦更张或者被淘汰出局了。
另外一个风险就是现有的开发手段可能会存在被淘汰的风险。虽然现在OpenCL去开发FPGA还存在诸多问题,但是我认为在大数据、云计算加速领域,使用OpenCL开发的便捷是完全可能弥补其效率的暂时低下的。从能效上来说,FPGA比GPGPU要高1到2个数量级。而这一块又是传统的软件开发者盘踞的地盘。换言之,这一块新增的就业岗位恐怕不是学习现在这些FPGA开发流程和技术的人能够去吃得到的。

以上三点原因,造成了一个即使参加了FPGA培训或者学习了FPGA半年的新手,其实是很难在就业市场上找到工作的。另外一方面也不得不感慨我们这个行业的发展是如此的迅速。如果放在10年前,甚至5年前有人问我该学什么。我肯定会毫不犹豫的推荐学FPGA。因为在那个时代,会使用FPGA的人才是如此的缺乏。以至于你只要学会了FPGA开发的一般流程,就可以找到一份还不错的工作。而现在,这个好时代已经一去不回了。类似问题其实也在困扰其它IT技术。以北大青鸟为代表的一大软件开发批培训机构的没落,也同样标志着在软件技术领域只掌握一门编程语言就可以拿到好工作的日子也已经过去了。

所以,从功利的角度上来讲,如果是只是为了找工作的话。应该去选择那些就业概率更大的技术学习。毕竟,已经“沦落”到要靠上培训班才能找到工作的地步,“理想”也都无从谈起了。相比与学习FPGA,恐怕还是去学个什么Java编程更加靠谱一点。
  1. 匿名用户匿名用户
    莫老师您好,我开学就研一了,因为我的毕设是FPGA,然后我的研究生导师看到后就让我这段时间用FPGA设计他项目里一个方案,其实我对FPGA也不是很了解,而且也不咋喜欢,再加上看了你的文章更想学些别的东西,然而他坚持让我试试,我该怎么办啊?
  2. 匿名用户匿名用户
    你好
  3. @匿名用户(123.138.79.11 )

    你的情况介绍太少了,不好做判断。

    如果学了两年还是业余水平,那放弃也没什么可惜的,及时止损吧。如果已经到了可以靠它吃饭的级别,而且是真心觉得很喜欢,先找到一个入门级工作干着。干1-2年以后可以跳槽到更高薪资水平的岗位。

    我个人认为应届本科生如果可以用FPGA完成一些大学生电子设计大赛中信号类、仪器仪表类题目,应该已经可以找到饭碗了。不知道你现在水平到哪个程度了。

  4. 匿名用户匿名用户
    莫老师您好,我目前是大三的学生。学了两年FPGA了,一直是当喜欢的东西来研究。只是现在确实要考虑找工作的事情了。看了您的这篇文章,我想了很久还是很纠结。您说的我都看到了,就我在投简历的这几个月里,发现有关FPGA的岗位不多,待遇一般。难道真要放弃它去学Java吗?我不知道这样值不值,希望莫老师帮我分析下谢谢。
  5. @匿名用户(223.104.20.88 )

    国家电网需要考么??

    额,其实我不知道啊,只知道我们实验室很多人进了国家电网……

    现在什么电网啊、银行啊这些都变成和靠公务员。

  6. 匿名用户匿名用户
    @老莫

    就是考国家电网~~
  7. @匿名用户(202.114.176.238)
    考电网是什么?
  8. 匿名用户匿名用户
    本来对数电感兴趣一些~~感觉fpga高大上一些~听您这么一说又不知何去何从了~~难道真的要考电网里等死吗??求莫老师指条明路……
  9. @匿名用户(171.11.234.77 )

    然并卵,从就业的角度这些行业能吸纳多少人就业?目前FPGA唯一比较坚挺的行业大概也就是这些带军工用途的行业了。

  10. 匿名用户匿名用户
    不清楚别的方向对FPGA的需求怎么样,但军工航天上基本还是FPGA+DSP的天下 而且航天军工不差钱,都是什么贵用什么,8核的C6678和V-7是标配,而且一般不止用一片,看着上面好几片的大片子加散热风扇都觉得很霸气
  11. 匿名用户匿名用户
    @老莫

    谢谢莫老师的建议,我已提离职申请,准备入职中兴做IC前端。

    新的开始,新的征程,为自己加油!

  12. @匿名用户(124.114.234.131)

    做IC在世界范围看是夕阳产业,在中国嘛,还可以干干。因为国内IC的国产化率太低,有很大的替换空间。有些公司已经搭上这条船了,日子会比较好过一些。比如你说的中兴微电子(我记得改名叫国民技术了啊),在安全芯片方面有稳定的收益。

    工控领域的FPGA设计确实很多时候很尴尬,大部分时间就是给单片机/ARM做做接口扩展用了。

  13. 匿名用户匿名用户

    莫老师,做IC是风口吗?

    我从事工业控制领域FPGA设计,给单片机打下手四年,感觉应用太低端;

    正打算去中兴微电子转行做数字IC设计,还请莫老给点建议,非常感谢!

  14. @匿名用户(219.135.52.120 )
    一个供需稳定的岗位,不太可能成为风口也不会被淘汰。但是随着芯片集成度的提高,可以做的工作慢慢在减少。如果不去做芯片的话。
  15. 写的不错啊