查看原文
其他

9年FPGA工作经验,转行了,苦海无涯……

嵌入式ARM 2021-01-31

整理:付斌,内容来自网络


01
9年峥嵘岁月


我很少说话,因为怕被人鄙视。工作了9年的fpga,总要总结……


其实说我的fpga经验,也是一坨屎。三年的,用altera的c3和c4 做led控制卡。2年的用lattice的MACHXO-XO2和ECP2做了视频和网络光端机,3年的XILINX的SPARTAN 6 做了视频ISP处理,现在一年的xilinx的ZYNQ做机器视觉。

俊龙和艾瑞面试我,说我这种人太垃圾了,高端芯片没用过,技术支持只能拿四位数,当场我就发飙了,什么鸟玩意。老子才不会销售狗奴才。一气之下,去了一个公司转行做硬件工程师。

话说转行也没想象的费尽。刚毕业那会儿在冠捷被虐画pcb 画了一年,现在隔了几年再搞,也不是难事。而且过了几年,思想沉淀,做的还好的。公司招了一个另外硬件工程师,工作了10年,比我更垃圾,要不是做板子有pcb 炒,这个硬件工程师必死无疑。

有时候想想,年纪这么大了,去打工老被人鄙视,32岁的人,没用过高端器件,以前的行业也不是菊花大公司和高科技。       

第一个,9年的fpga,说起来,给我感觉fpga写代码牛逼的人,都是写着看不懂的代码。基本上的代码都是小逻辑做的。大逻辑做的都是沙雕。

第二个,知道各类高速接口,做fpga只会玩玩串口,I2C,SPI还有DVI,这种低能儿工资也就是低于几千块钱。高速总线,列入DDR3控制,双边沿,SERDRES,这个是必须知道怎么用,怎么调试。好多沙雕就知道下载代码,有问题也不知道从哪里入手。

第三个,知道时序约束,fpga很傻的元件,你经常发现,他自己不知道哪个是时钟,要求跑多少。还有各类并行总线,要求相位抖动控制多少。还有不同时钟不要去约束。特别是用低端器件,用上了60%资源的人,经常无缘无故的bug的,低于五位数的工资基本不知道啥原因的。

第四个,也就是我一直遗憾的东西,行业的算法和需求了。有些沙雕一辈子就是打工的命。一年除去房租和吃饭,回去大农村还被邻居鄙视大学生读书无用。所以有些时候,要学会沉淀。也许我当年在led行业待了9年,我估计现在已经接无数的兼职和订单,少数一年买个宝马x1没有问题。哪像现在,自己出来真怕死。

就说这些。我转行了。一把眼泪。有人问我,是不是工资太少了。拿着别人要饭的钱,都是吊丝。想想你农村的父母和还有孩子吧。好好想点更快的路子。做硬件工程师,是做产品的第一步。因为你要面对很多销售沙雕,他们很有钱,但是天花乱坠的需求,这个时候,你只有学会硬件才能制造硬件方案。然后找软件工程师一起协作做项目。我以前的兼职项目就死在这里了。(小编注:其实楼主的工资不算低)

而且FPGA工程师,也必须熟悉硬件。连原理图都看不懂,你还做啥这么没前途的东西。

还有一个ZYNQ平台,fpga 工程师要学会arm的裸跑系统。因为我被傻x害惨了。

这个世界,你只会学会别人,才能不会被傻逼坑你。在任何交叉问题上,你只有自己分析自己才能做好。

不过,我还是一句话,看钱重一点,技术浅一点。明明白白人生,不是别人的狗,是养狗的人。

02

类似岗位还有哪些?


曾经我以为我可以成为一名FPGA工程师。后来面试过了数字前端岗位,不熟练Linux基本命令,没用过DC、NC、PT等,却趁着某某事件后的IC就业潮进入了IC行业。

本文就来盘盘在学校里玩的都是FPGA,如何转行做ASIC。


岗位对比


据我了解,涉及FPGA逻辑开发和ASIC相关的岗位主要有,

FPGA相关岗位


  • FPGA算法工程师
  • 逻辑开发工程师
  • FPGA验证工程师

ASIC相关岗位


  • ASIC算法工程师
  • 数字前端工程师
  • IC验证工程师


03
FPGA算法工程师 VS ASIC算法工程师

ASIC算法工程师主要工作职责有:协议学习、文献调研、系统整体框架和接口确定、算法仿真、RTL实现与数据对比、FPGA验证。

FPGA算法工程师主要的要求对基础知识的掌握能力,如通信、信号处理、图像相关知识的运用,对于算法RTL实现和FPGA验证这是都需要具备的能力,对于这个岗位之间没有实质上的区别。匹配度高达100%。

04
逻辑开发工程师 VS 数字前端工程师

数字前端工程师分为做IP的和做应用的,主要技能是RTL的设计,数字电路的基础以及使用处理器IP和总线的能力。这些同样是逻辑开发工程师具备的技能。FPGA厂商工具中有众多自己的IP,提供应用开发速度。ASIC设计中也会用到众多IP,来缩短产品开发周期。

IC设计里几乎所有工具都在Linux下,Linux的基本命令,TCL/Shell等脚本是前端工程师必备技能。逻辑工程师Windows平台用的多,TCL也是常用脚本,所以更多只是工具不同而已,逻辑开发工程师可以转型为数字前端工程师。


05
FPGA验证工程师 VS IC验证工程师

这两个职位差别还是很大的,FPGA验证工程师也是属于IC行业,主要工作内容是将前端设计好的RTL代码,进行分割成子模块或子系统放在FPGA上进行验证,提高验证速度。进行分割的原因是系统过大,普通的FPGA片子单片装不下。

IC验证工程师主要是基于一套叫UVM的方法学,主要使用语言是SV进行验证测试用例的开发,这一点与FPGA验证工程师有本质的区别。

现在由于电路的集成度越来越高,IC验证工程师也越加重要,需求也更多,但是IC验证有自己专有的方法学和知识体系,所以要想转成IC验证工程师还是需要系统的进行学习。这两种岗位无法互换。


06

选择FPGA还是IC行业


当然芯片的设计是个庞大而且复杂的工程,上文所说的还都是些皮毛。对于学生而言,在学校利用课余时间将书本上的知识运用到实践中,偶尔参加个竞赛升华下,跟着导师做做项目。其实学到的还是皮毛,达到了入行的标准。在学校能有流片机会的学生并不多,多数情况都是在仿真阶段或者是用FPGA验证验证。

很多非微电子相关专业的学生也都开始玩起了FPGA,准确来说,这类学生应该归到硬件工程师的类别。用FPGA做应用开发,还需要具备的调试开发板、各类测试仪器的使用等能力。用FPGA做应用我们都清楚,是针对于低成本,需求量小,更新快的应用。涉及到大规模的量产,单片的成本还是做成ASIC更划算。

我认为行业没有好坏,不过是有兴衰,但任何行业只要做到Top级别的人都可以实现自己的个人价值。众所周知,IC行业在美国已经是夕阳产业,硅谷早已无硅,在中国这两年推动发展看还不错,尤其是XX事件后,我觉得可以投身一下。

选择FPGA还是IC还是看个人选择,我还挺喜欢玩FPGA,选择IC一是当时这方面很热,二是想去参与设计一款芯片,感觉应该会比较有意思,三是其实IC的公司和岗位还是非常多,甚多于FPGA方向岗位,而数字IC前端,我们玩FPGA的也是完全可以胜任的。


参考文献

【1】《胡说IC—菜鸟工程师完美进阶》——胡运旺

【2】论坛主题帖


-END-




推荐阅读



【01】FPGA技术怎么就这么牛?【02】详解FPGA的四大设计要点【03】工程师深度:FPGA 高手养成记【04】Xilinx和Intel之外,还有谁掌握了"万能芯片"密钥?FPGA厂商大盘点【05】详解FPGA四大设计要点



免责声明:整理文章为传播相关技术,版权归原作者所有,如有侵权,请联系删除

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存