我很少說話,因為怕被人鄙視。工作了9年的FPGA,總要總結……pi6ednc
其實說我的fpga經驗,也是一坨屎。三年的,用altera的c3和c4 做led控制卡。2年的用lattice的MACHXO-XO2和ECP2做了視頻和網絡光端機,3年的XILINX的SPARTAN 6 做了視頻ISP處理,現在一年的xilinx的ZYNQ做機器視覺。pi6ednc
俊龍和艾瑞面試我,說我這種人太垃圾了,高端晶片沒用過,技術支持只能拿四位數,當場我就發飆了,什麼鳥玩意。老子才不會銷售狗奴才。一氣之下,去了一個公司轉行做硬體工程師。pi6ednc
話說轉行也沒想像的費盡。剛畢業那會兒在冠捷被虐畫pcb 畫了一年,現在隔了幾年再搞,也不是難事。而且過了幾年,思想沉澱,做的還好的。公司招了一個另外硬體工程師,工作了10年,比我更垃圾,要不是做板子有pcb 炒,這個硬體工程師必死無疑。pi6ednc
有時候想想,年紀這麼大了,去打工老被人鄙視,32歲的人,沒用過高端器件,以前的行業也不是菊花大公司和高科技。pi6ednc
第一個,9年的fpga,說起來,給我感覺fpga寫代碼牛逼的人,都是寫著看不懂的代碼。基本上的代碼都是小邏輯做的。大邏輯做的都是沙雕。pi6ednc
第二個,知道各類高速接口,做fpga只會玩玩串口,I2C,SPI還有DVI,這種低能兒工資也就是低於幾千塊錢。高速總線,列入DDR3控制,雙邊沿,SERDRES,這個是必須知道怎麼用,怎麼調試。好多沙雕就知道下載代碼,有問題也不知道從哪裡入手。pi6ednc
第三個,知道時序約束,fpga很傻的元件,你經常發現,他自己不知道哪個是時鐘,要求跑多少。還有各類並行總線,要求相位抖動控制多少。還有不同時鐘不要去約束。特別是用低端器件,用上了60%資源的人,經常無緣無故的bug的,低於五位數的工資基本不知道啥原因的。pi6ednc
第四個,也就是我一直遺憾的東西,行業的算法和需求了。有些沙雕一輩子就是打工的命。一年除去房租和吃飯,回去大農村還被鄰居鄙視大學生讀書無用。所以有些時候,要學會沉澱。也許我當年在led行業待了9年,我估計現在已經接無數的兼職和訂單,少數一年買個寶馬x1沒有問題。哪像現在,自己出來真怕死。pi6ednc
就說這些。我轉行了。一把眼淚。有人問我,是不是工資太少了。拿著別人要飯的錢,都是吊絲。想想你農村的父母和還有孩子吧。好好想點更快的路子。做硬體工程師,是做產品的第一步。因為你要面對很多銷售沙雕,他們很有錢,但是天花亂墜的需求,這個時候,你只有學會硬體才能製造硬體方案。然後找軟體工程師一起協作做項目。我以前的兼職項目就死在這裡了。(小編註:其實樓主的工資不算低)pi6ednc
而且FPGA工程師,也必須熟悉硬體。連原理圖都看不懂,你還做啥這麼沒前途的東西。pi6ednc
還有一個ZYNQ平臺,fpga 工程師要學會arm的裸跑系統。因為我被傻x害慘了。pi6ednc
這個世界,你只會學會別人,才能不會被傻逼坑你。在任何交叉問題上,你只有自己分析自己才能做好。pi6ednc
不過,我還是一句話,看錢重一點,技術淺一點。明明白白人生,不是別人的狗,是養狗的人。pi6ednc
曾經我以為我可以成為一名FPGA工程師。後來面試過了數字前端崗位,不熟練Linux基本命令,沒用過DC、NC、PT等,卻趁著某某事件後的IC就業潮進入了IC行業。pi6ednc
本文就來盤盤在學校裡玩的都是FPGA,如何轉行做ASIC。pi6ednc
崗位對比pi6ednc
據我了解,涉及FPGA邏輯開發和ASIC相關的崗位主要有,pi6ednc
FPGA相關崗位pi6ednc
ASIC相關崗位pi6ednc
pi6ednc
ASIC算法工程師主要工作職責有:協議學習、文獻調研、系統整體框架和接口確定、算法仿真、RTL實現與數據對比、FPGA驗證。pi6ednc
FPGA算法工程師主要的要求對基礎知識的掌握能力,如通信、信號處理、圖像相關知識的運用,對於算法RTL實現和FPGA驗證這是都需要具備的能力,對於這個崗位之間沒有實質上的區別。匹配度高達100%。pi6ednc
數字前端工程師分為做IP的和做應用的,主要技能是RTL的設計,數字電路的基礎以及使用處理器IP和總線的能力。這些同樣是邏輯開發工程師具備的技能。FPGA廠商工具中有眾多自己的IP,提供應用開發速度。ASIC設計中也會用到眾多IP,來縮短產品開發周期。pi6ednc
IC設計裡幾乎所有工具都在Linux下,Linux的基本命令,TCL/Shell等腳本是前端工程師必備技能。邏輯工程師Windows平臺用的多,TCL也是常用腳本,所以更多只是工具不同而已,邏輯開發工程師可以轉型為數字前端工程師。pi6ednc
pi6ednc
這兩個職位差別還是很大的,FPGA驗證工程師也是屬於IC行業,主要工作內容是將前端設計好的RTL代碼,進行分割成子模塊或子系統放在FPGA上進行驗證,提高驗證速度。進行分割的原因是系統過大,普通的FPGA片子單片裝不下。pi6ednc
IC驗證工程師主要是基於一套叫UVM的方法學,主要使用語言是SV進行驗證測試用例的開發,這一點與FPGA驗證工程師有本質的區別。pi6ednc
現在由於電路的集成度越來越高,IC驗證工程師也越加重要,需求也更多,但是IC驗證有自己專有的方法學和知識體系,所以要想轉成IC驗證工程師還是需要系統的進行學習。這兩種崗位無法互換。pi6ednc
當然晶片的設計是個龐大而且複雜的工程,上文所說的還都是些皮毛。對於學生而言,在學校利用課餘時間將書本上的知識運用到實踐中,偶爾參加個競賽升華下,跟著導師做做項目。其實學到的還是皮毛,達到了入行的標準。在學校能有流片機會的學生並不多,多數情況都是在仿真階段或者是用FPGA驗證驗證。pi6ednc
很多非微電子相關專業的學生也都開始玩起了FPGA,準確來說,這類學生應該歸到硬體工程師的類別。用FPGA做應用開發,還需要具備的調試開發板、各類測試儀器的使用等能力。用FPGA做應用我們都清楚,是針對於低成本,需求量小,更新快的應用。涉及到大規模的量產,單片的成本還是做成ASIC更划算。pi6ednc
我認為行業沒有好壞,不過是有興衰,但任何行業只要做到Top級別的人都可以實現自己的個人價值。眾所周知,IC行業在美國已經是夕陽產業,矽谷早已無矽,在中國這兩年推動發展看還不錯,尤其是XX事件後,我覺得可以投身一下。pi6ednc
選擇FPGA還是IC還是看個人選擇,我還挺喜歡玩FPGA,選擇IC一是當時這方面很熱,二是想去參與設計一款晶片,感覺應該會比較有意思,三是其實IC的公司和崗位還是非常多,甚多於FPGA方向崗位,而數字IC前端,我們玩FPGA的也是完全可以勝任的。pi6ednc
參考文章pi6ednc
【1】《胡說IC—菜鳥工程師完美進階》——胡運旺pi6ednc
【2】論壇主題帖pi6ednc
(責編:Demi Xia)pi6ednc