FPGA資深FAE的經(jīng)驗獨白——駿龍科技Andrew

2014年08月21日 10:11 來源:電子發(fā)燒友網(wǎng)論壇原創(chuàng) 作者:Cindy,Cici 我要評論(0)

標簽:FPGA(602396)駿龍科技(12263)

  看似簡單的幾個問題,Andrew卻回答的井井有條,小編已經(jīng)沒有辦法有什么其他詞語去形容了。本文Andrew不僅僅對FPGA入門學習流程做了詳細的分享,更是對FPGA開發(fā)工作的要求分成大公司和小公司兩個層面來分析。你能想象曾經(jīng)從一個疏忽學業(yè)的人成為一名資深FAE的嘛?

  采訪:Cindy Sun sunbo@elecfans.com

  撰文、組稿:Cici Chen chenchen@elecfans.com

 ?。?a href="http://wenjunhu.com/article/original/" target="_blank">原創(chuàng)內(nèi)容,轉(zhuǎn)載請注明來自ElecFans)

?

  1. 電子發(fā)燒友:您認為想學FPGA的話,先學好什么才最重要?

  Andrew:我們玩FPGA的通常就是跟數(shù)字電路打交道,要想玩得轉(zhuǎn),必須先學習并掌握最最基礎(chǔ)的數(shù)字電路和HDL硬件描述語言,當然這只是入門必備,實際上遠遠不夠。個人拙見,要入行除了至少掌握一種FPGA的仿真及開發(fā)調(diào)試流程之外;起碼還要了解一些模擬電路知識,掌握諸如電源紋波、時鐘抖動、信號質(zhì)量等經(jīng)常需要測量的硬件參數(shù)的測試方法;起碼還要掌握一種原理圖和Layout設(shè)計軟件,能夠查看分析調(diào)試電路板上的電路模塊,如電源、時鐘、存儲器、配置、I/O和高速收發(fā)器等模塊;起碼還要掌握一種單片機的開發(fā)流程,項目中難免有一些需要配置控制的需求,使用外置單片機或者內(nèi)置ARM硬核或者其他軟CPU來實現(xiàn),簡單又方便;由于本人水平有限,其他方面這里就不再贅述。

  那么,針對FPGA入門學習的一般流程,簡單總結(jié)一下,供朋友們參考,有經(jīng)驗的大??梢岳@道:

  1.首先要有開發(fā)平臺,把該準備的都準備好,磨刀不誤砍柴工:

  比如ALTERAQuartus II軟件、開發(fā)板和配置調(diào)試工具USB Blaster,以及仿真軟件Modelsim SE。軟件可以從網(wǎng)上下載,入門功能的許可的和諧方法一大堆;開發(fā)板和USB Blaster可以借,可以買,動手能力強的朋友,自己畫一塊也行。對于初學者,建議找一塊有詳細配套教程的開發(fā)板。

  2. 對于新手來講,按部就班地學習往往就是最快的學習方法:

  照貓畫虎盡管囫圇吞棗一知半解,但起碼能把開發(fā)流程摸熟,能跑起來。剛拿到開發(fā)板,肯定是丈二和尚摸不著頭腦。這個時候,建議先根據(jù)開發(fā)板的配套教程,把原理圖上的各項模塊功能厘清,把FPGA周圍的電源、時鐘、復(fù)位、配置、GPIO和連接器等的電路原理理一理分析分析。再按照配套教程中介紹的流程,把配套的測試工程跑通,在這個階段,把FPGA開發(fā)所涉及的RTL輸入,綜合、前仿真、布局布線、后仿真、配置調(diào)試的流程摸清楚。學習新東西的過程中,難免會出現(xiàn)一些不熟悉的“疑難雜癥”,切莫灰心,堅持就是勝利。當然,往往這個時候,有些朋友開始嫌棄教程寫得冗長、寫得爛,或者碰到英文教程推辭看不懂,就開始閉門造車,天天碰壁,逐漸喪失興趣和信心,當開發(fā)板上面落滿了灰,你還好意思在跳槽的時候吹牛有過如何豐富FPGA經(jīng)驗嗎?

  3. 熟悉了開發(fā)流程:

  接下來就可以分析或者改寫原教程中的代碼或者模塊,有針對性地去實現(xiàn)一些功能模塊,并且通過一些軟件自帶的調(diào)試組件來輔助驗證結(jié)果是否符合預(yù)期,如SignalTap II等。無論是原廠的單板,還是FPGA愛好者做的單板,配套例程都會有一些經(jīng)典的電路實現(xiàn)案例,比如基本的分頻器,簡單的I2C通信、SRAM讀寫控制,以及稍微復(fù)雜的SDRAM讀寫控制等,認真分析別人如何寫代碼實現(xiàn)所觀測到的時序,與此同時,閱讀相應(yīng)模塊手冊或者器件內(nèi)部組件文檔中的時序描述章節(jié)來對比分析,查閱網(wǎng)上別人分享的調(diào)試心得博客、論文等,直到理解并掌握為止,并且適當?shù)刈鲂┕P記歸納總結(jié),所謂時常記記,以防忘記,給其他人或者給以后的自己參考。

  4. 光靠自己研究,有時會被一些問題阻塞思緒,大腦會卡殼:

  那么,加入一些學習小組、專業(yè)的討論圈子是有必要的,是利大于弊的,比如電子發(fā)燒友論壇、FPGA產(chǎn)業(yè)圈QQ群,分享心得,咨詢問題,探討人生。這個過程,也有可能誤入歧途,有些朋友可能過分享受社交的愉悅,迷戀于灌水的浪潮中。建議在學習工作的時候,把精力主要放到學習研究中,切莫墮入無聊的灌水大軍中。除了線上交流,大家也可以參加電子發(fā)燒友等社區(qū)組織的線下沙龍活動,面對面地交流學習,探討問題的同時還可能交往一些好朋友。跟別人討論問題,目的是為了解決問題,處理過程需要一些技巧,建議盡量把已經(jīng)遇到的問題的器件型號軟件版本、觀測到的癥狀、仿真調(diào)試的波形、已嘗試的方法和已分析的可能原因先羅列出來,讓能幫你且有時間有心情幫你的朋友快速及時地分析出原因并給出解決方法,這是一個簡單的討論問題的方法論。別人幫你是恩德,不是義務(wù)。如果沒有人幫到你,不要灰心,繼續(xù)想其他辦法。

  5. 有一點基礎(chǔ)了,就可以適時選擇一些項目練手:

  不僅可以鍛煉FPGA開發(fā)能力,還可以增強信心,沉淀經(jīng)驗,獲取價值體現(xiàn)。老是拿著開發(fā)板玩,思維容易囿于開發(fā)板所涉及的小小“圈套”,其實開發(fā)板只是個學習工具,開發(fā)板玩得再熟,也只是熟悉那上面的幾個小模塊而已。FPGA應(yīng)用廣泛,相關(guān)產(chǎn)品層出不窮,大把的就業(yè)及市場機會,如果光學不練,那真是白瞎了時光,浪費了生命。

  2. 電子發(fā)燒友:從事FPGA開發(fā)工作有些什么要求呢?

  Andrew:坦白地講,這個問題很難回答,不同的公司、不同的產(chǎn)品、不同的項目組、不同的研發(fā)人員需求千差萬別。不過,可以討論討論。公司與研發(fā)之間是雙向選擇,公司要求產(chǎn)品具有一定的技術(shù)優(yōu)勢和穩(wěn)定度,能夠及時上市覆蓋一定的細分行業(yè),研發(fā)需要公司按照合同提供合理的待遇和福利。 大公司人員分工相對比較清晰,F(xiàn)PGA工程師需要配合系統(tǒng)工程師、算法工程師、軟件工程師、硬件工程師和測試工程師完成產(chǎn)品單板的功能設(shè)計和穩(wěn)定性測試,因為不是一個人在戰(zhàn)斗,所以更需要注重團隊合作。而且大公司往往與芯片的供應(yīng)商有戰(zhàn)略合作關(guān)系,獲取相應(yīng)的支持資源在力度和速度的優(yōu)先級上遠遠高于一般公司,這對FPGA技術(shù)層面的修煉是大有裨益的。

  在這樣的公司里工作,竊以為需要培養(yǎng):

  1. 自我學習能力。公司如果有相關(guān)培訓,抓住機會好好學習;如果沒有,平時在工作之余要加強專業(yè)知識充電,把自己打造成不可或缺的人才。另外要注意公司不是學校,公司要的是能干實事的員工,不是夸夸其談紙上談兵的趙括,不能天天想著學習而不干活。

  2. 溝通協(xié)調(diào)能力。遇到疑難問題要及時發(fā)起團體討論診斷,切莫蒙頭自己死扛,一來自己壓力大,二來影響項目開發(fā)進度,必要時要及時把芯片供應(yīng)商的支持團隊拉進來共同討論分析。要意識到自己的不足,尊重團隊中其他成員的意見和建議,經(jīng)常鍛煉自己的溝通協(xié)調(diào)能力,為以后自己帶團隊做準備。

  3. 抗壓能力。FPGA開發(fā)的難度高居主控芯片(CPU,DSP,F(xiàn)PGA,專用芯片等)的榜首,芯片廠家為了配合市場需求,連年不斷升級器件軟件,這對于研發(fā)來講就是災(zāi)難,但是為了提升最終產(chǎn)品的競爭力,提升我們自身的價值,我們不得不去學習掌握。另外公司項目往往嚴格按照預(yù)期進度開展,如果遇到難題,加班加點是必須的。所以我們平時一定要多鍛煉身體,多看書,培養(yǎng)一定的興趣愛好,以排解項目開發(fā)中的苦悶。像某為那樣,只注重工作效率,把研發(fā)當作加班的機器,時不時就有報道研發(fā)跳樓的新聞,簡直就是業(yè)界的恥辱。

  4. 職業(yè)生涯規(guī)劃能力。大公司職業(yè)任務(wù)單一,對專業(yè)深度要求高。要逐步規(guī)劃調(diào)整自己未來的路,往專業(yè)深度走,做技術(shù)專家;往專業(yè)廣度上走,做系統(tǒng)工程師;往技術(shù)之外的崗位走,轉(zhuǎn)行。工作要積極主動,選好的路就好好走下去,切忌朝三暮四,濫竽充數(shù),人浮于事,碰到好光景,還可以混日子;碰到諸如當前這種外企裁人潮,諾基亞、思科、微軟等公司紛紛大裁員,老大不小的南郭處士再就業(yè)難度就比較大。凡事都逃不過因果關(guān)系,給公司努力工作,就是為自己的未來努力工作。只要有能力,將來還是有機會出去自創(chuàng)企業(yè),創(chuàng)造更多社會價值。

  小公司自由度高,單獨的FPGA工程師的職位設(shè)置不太常見,往往圍繞著項目的需求,工程師既要當?shù)忠攱?,硬件軟件邏?a target="_blank">機械模型一起搞。從表面上看,要做的事情比較雜,新人往往感覺在打醬油,跑龍?zhí)?。有一些朋友耐心比較差,容易陷入經(jīng)常跳槽的怪圈。其實呢,小公司有小公司的好,產(chǎn)品的復(fù)雜度相對來講不高,研發(fā)出項目的速度比較快,數(shù)目也比較多,容易積累自身的成就感,這感受和大公司里面有時的無力感有天壤之別。再者小公司由于企業(yè)規(guī)模小的原因,直接做平臺與大公司競爭的可能性不大,往往都是做一些圍繞大公司平臺的配套產(chǎn)品,或者做一些大公司不愿意做或者尚未注意到的新的細分產(chǎn)品。作為研發(fā),能夠直接或間接接觸終端行業(yè)應(yīng)用,對產(chǎn)品的功能理解直觀透徹,對行業(yè)也有一定的調(diào)研,將來很容易出去創(chuàng)業(yè),做出更加細分的行業(yè)產(chǎn)品。

12下一頁全文

本文導(dǎo)航