我很少说话,因为怕被人鄙视。工作了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害惨了。
这个世界,你只会学会别人,才能不会被傻逼坑你。在任何交叉问题上,你只有自己分析自己才能做好。
不过,我还是一句话,看钱重一点,技术浅一点。明明白白人生,不是别人的狗,是养狗的人。
曾经我以为我可以成为一名FPGA工程师。后来面试过了数字前端岗位,不熟练Linux基本命令,没用过DC、NC、PT等,却趁着某某事件后的IC就业潮进入了IC行业。
本文就来盘盘在学校里玩的都是FPGA,如何转行做ASIC。
岗位对比
据我了解,涉及FPGA逻辑开发和ASIC相关的岗位主要有,
FPGA相关岗位
ASIC相关岗位
ASIC算法工程师主要工作职责有:协议学习、文献调研、系统整体框架和接口确定、算法仿真、RTL实现与数据对比、FPGA验证。
FPGA算法工程师主要的要求对基础知识的掌握能力,如通信、信号处理、图像相关知识的运用,对于算法RTL实现和FPGA验证这是都需要具备的能力,对于这个岗位之间没有实质上的区别。匹配度高达100%。
数字前端工程师分为做IP的和做应用的,主要技能是RTL的设计,数字电路的基础以及使用处理器IP和总线的能力。这些同样是逻辑开发工程师具备的技能。FPGA厂商工具中有众多自己的IP,提供应用开发速度。ASIC设计中也会用到众多IP,来缩短产品开发周期。
IC设计里几乎所有工具都在Linux下,Linux的基本命令,TCL/Shell等脚本是前端工程师必备技能。逻辑工程师Windows平台用的多,TCL也是常用脚本,所以更多只是工具不同而已,逻辑开发工程师可以转型为数字前端工程师。
这两个职位差别还是很大的,FPGA验证工程师也是属于IC行业,主要工作内容是将前端设计好的RTL代码,进行分割成子模块或子系统放在FPGA上进行验证,提高验证速度。进行分割的原因是系统过大,普通的FPGA片子单片装不下。
IC验证工程师主要是基于一套叫UVM的方法学,主要使用语言是SV进行验证测试用例的开发,这一点与FPGA验证工程师有本质的区别。
现在由于电路的集成度越来越高,IC验证工程师也越加重要,需求也更多,但是IC验证有自己专有的方法学和知识体系,所以要想转成IC验证工程师还是需要系统的进行学习。这两种岗位无法互换。
当然芯片的设计是个庞大而且复杂的工程,上文所说的还都是些皮毛。对于学生而言,在学校利用课余时间将书本上的知识运用到实践中,偶尔参加个竞赛升华下,跟着导师做做项目。其实学到的还是皮毛,达到了入行的标准。在学校能有流片机会的学生并不多,多数情况都是在仿真阶段或者是用FPGA验证验证。
很多非微电子相关专业的学生也都开始玩起了FPGA,准确来说,这类学生应该归到硬件工程师的类别。用FPGA做应用开发,还需要具备的调试开发板、各类测试仪器的使用等能力。用FPGA做应用我们都清楚,是针对于低成本,需求量小,更新快的应用。涉及到大规模的量产,单片的成本还是做成ASIC更划算。
我认为行业没有好坏,不过是有兴衰,但任何行业只要做到Top级别的人都可以实现自己的个人价值。众所周知,IC行业在美国已经是夕阳产业,硅谷早已无硅,在中国这两年推动发展看还不错,尤其是XX事件后,我觉得可以投身一下。
选择FPGA还是IC还是看个人选择,我还挺喜欢玩FPGA,选择IC一是当时这方面很热,二是想去参与设计一款芯片,感觉应该会比较有意思,三是其实IC的公司和岗位还是非常多,甚多于FPGA方向岗位,而数字IC前端,我们玩FPGA的也是完全可以胜任的。
参考文章
【1】《胡说IC—菜鸟工程师完美进阶》——胡运旺
【2】论坛主题帖
(责编:Demi Xia)