新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 牛人業(yè)話 > 駿龍科技Andrew —— FPGA資深FAE的經(jīng)驗(yàn)獨(dú)白

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

作者: 時(shí)間:2014-09-01 來源:網(wǎng)絡(luò) 收藏

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

本文引用地址:http://butianyuan.cn/article/262433.htm

  1. 您認(rèn)為想學(xué)的話,先學(xué)好什么才最重要?

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

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

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

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

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

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

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

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

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

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

  5. 有一點(diǎn)基礎(chǔ)了,就可以適時(shí)選擇一些項(xiàng)目練手:

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

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

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

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

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

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

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

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

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

  在小公司工作,竊以為需要鍛煉:

  1. 產(chǎn)品設(shè)計(jì)的全局觀。主動(dòng)去研究產(chǎn)品的應(yīng)用需求,整合現(xiàn)有的方案,揣摩可能改進(jìn)的部分,將其開發(fā)設(shè)計(jì)為產(chǎn)品的亮點(diǎn),贏得細(xì)分行業(yè)的市場。產(chǎn)品本身技術(shù)含量不高,所以我們也沒有必要糾結(jié)一些技術(shù)細(xì)節(jié),只要能實(shí)現(xiàn)能出產(chǎn)品,就是研發(fā)的價(jià)值體現(xiàn)。

  2. 技術(shù)的廣度。多了解一些常用的芯片平臺,熱門的實(shí)現(xiàn)方案。產(chǎn)品在設(shè)計(jì)過程中,盡量選擇成熟的芯片平臺和結(jié)構(gòu),降低產(chǎn)品研發(fā)的風(fēng)險(xiǎn)和投資。

  3. 溝通能力。小公司的老板一般不太注重研發(fā),對研發(fā)的投入力度有限,研發(fā)團(tuán)隊(duì)里往往只有光桿司令幾人。長期欠缺溝通,有些朋友可能表現(xiàn)得比較木訥,比較悶騷,其實(shí)對今后的職業(yè)生涯是有害處的。一定要找機(jī)會與公司其他部門的人溝通交流,不要給自己畫圈。平時(shí)要積極參加一些線下沙龍,活動(dòng),鍛煉自身的溝通能力。

  4. 耐心。人生漫漫,來日方長,剩者為王。所謂干一行愛一行,機(jī)會永遠(yuǎn)留給有準(zhǔn)備的朋友。

  3. 初級工程師應(yīng)具備哪些專業(yè)技能?

  Andrew:至于FPGA工程師的所需的專業(yè)技能,仁者見仁,智者見智,我在第一個(gè)問題的回答中也提到若干。

  這里專門羅列一下我個(gè)人淺見,僅供參考:

  1. 時(shí)序的設(shè)計(jì)和仿真能力。時(shí)序是設(shè)計(jì)出來的,一些常見的電路模塊必須要掌握,如流水線操作,狀態(tài)機(jī),localbus接口,存儲器讀寫等電路的時(shí)序設(shè)計(jì)。FPGA相關(guān)的著作多如牛毛,這里推薦兩本:《FPGA Prototyping by Verilog Examples》,美籍華人Pong P. Chu針對Xilinx Spatran3E 開發(fā)套件編著的Verilog基礎(chǔ)教材,可以在網(wǎng)上下載英文版的pdf,可以自行打印成冊參考;另外一本有中譯本出版,可以在Amazon購買,作者克里茲,孟憲元翻譯的《高級FPGA設(shè)計(jì) 結(jié)構(gòu)、實(shí)現(xiàn)和優(yōu)化》,書很好很薄,翻譯得有待改進(jìn)。這兩本可以作為學(xué)習(xí)FPGA方法論的“紅寶書”。

  2. 電路調(diào)試能力。穩(wěn)定的產(chǎn)品是建立在不斷調(diào)試改進(jìn)的基礎(chǔ)上的。熟練使用常用的測試工具,如萬用表、示波器、邏輯分析儀等。熟悉FPGA廠家提供的調(diào)試工具,對于FPGA設(shè)計(jì)事半功倍,如前面提到的SignalTap II。一些輔助的調(diào)試工具最好也能夠掌握,如串口、網(wǎng)絡(luò)報(bào)文分析工具等等。電子設(shè)計(jì)相關(guān)的小工具有很多,根據(jù)自己的工作需要適當(dāng)選擇。

  3. 文檔閱讀和編寫能力。作為一名FPGA工程師,免不了與器件軟件的英文文檔打交道,閱讀文檔要先是搞清楚幾條:讀哪些文檔哪個(gè)章節(jié),在哪里找這些文檔。我想這些一時(shí)半會也講不完,我曾經(jīng)在某論壇發(fā)了一個(gè)關(guān)于 FPGA資料列表的帖子,很受歡迎,至今仍然在熱帖之中。建議經(jīng)常主動(dòng)與相關(guān)芯片廠家的溝通,獲取有效的直接的技術(shù)支持;當(dāng)然文檔是需要自己讀的,別人不能永遠(yuǎn)幫你讀。再一個(gè),公司內(nèi)部技術(shù)積累,編寫文檔也是必要的,有一些工具需要掌握,如畫波形的TimeGen或者Timing Designer,字處理軟件Word或者WPS等。關(guān)于文檔建設(shè),有些公司不太重視,其實(shí)文檔很重要很必要,對團(tuán)隊(duì)內(nèi)部審閱討論,對未來的自己參考都是有用的。

  4. 演講溝通的能力。俗話說,光說不練假把式,光練不說傻把式,又說又練真把式。團(tuán)隊(duì)內(nèi)部討論產(chǎn)品需求,方案規(guī)劃,問題診斷,都需要演講溝通。甚至請求老板加薪,羅列自己的成果也需要一定的演講溝通能力??梢赃m當(dāng)?shù)亟栌霉ぞ邅磔o助,比如ppt。

互感器相關(guān)文章:互感器原理


萬用表相關(guān)文章:萬用表怎么用


fpga相關(guān)文章:fpga是什么


分頻器相關(guān)文章:分頻器原理

上一頁 1 2 下一頁

關(guān)鍵詞: ALTEAR FPGA FAE

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉