關(guān)于FPGA的學(xué)習(xí)

前幾天有個(gè)學(xué)妹跟我說起她大二了會(huì)什么什么,并且想從事FPGA深入,詢問我有沒有什么建議。
這讓我想起了我的往事。。。
大一的時(shí)候,剛開學(xué)同學(xué)們都用“體感游戲”的手機(jī),而我的手機(jī)沒有WIFI功能更沒有體感功能,舍友幾次問我怎么和她組隊(duì)玩游戲,我說手機(jī)壞了,后來經(jīng)常問怎么不去修,說“看到你學(xué)習(xí),我玩游戲心里有負(fù)罪感”,最后我實(shí)在不好意思在宿舍學(xué)習(xí)就天天去圖書館刷題。硬是把我入學(xué)時(shí)只想混混日子能畢業(yè)就成的心態(tài)逼得無路可走,導(dǎo)致我專業(yè)課門門都是第一而且甩開第二名很多分,成了各個(gè)專業(yè)課老師口中傳播的“學(xué)霸”。在大一拿到《江蘇計(jì)算機(jī)一級(jí)》、《全國(guó)計(jì)算機(jī)二級(jí)C語言》,包攬各種獎(jiǎng)學(xué)金,活動(dòng)比賽的證書。由于我上課表現(xiàn)特別天真突出(老師上課會(huì)提問,我總能快速答對(duì)并且只有我一個(gè)人是有反應(yīng)的,其他同學(xué)搖頭與低頭),不斷地有幾位老師陸續(xù)在我大一上學(xué)期的時(shí)候告訴我要開始準(zhǔn)備代表學(xué)校參加全國(guó)電子設(shè)計(jì)大賽。曾經(jīng)在入學(xué)的時(shí)候就有實(shí)驗(yàn)室勤工儉學(xué)(有獎(jiǎng)金)的通知,但是面試當(dāng)天我睡覺關(guān)機(jī)沒有看到短信,以至于我沒能第一學(xué)期進(jìn)入實(shí)驗(yàn)室,當(dāng)時(shí)覺得有點(diǎn)遺憾。而到下學(xué)期剛開學(xué)的時(shí)候,已經(jīng)有副院長(zhǎng)親自找到我,說為我申請(qǐng)了一間不常用的實(shí)驗(yàn)室供我專門使用并且需要什么設(shè)備隨時(shí)可以去借,給我實(shí)驗(yàn)室的鑰匙,我不用打掃實(shí)驗(yàn)室做雜活并且能享受津貼獎(jiǎng)金。
大學(xué)期間,我?guī)缀醣慌跎狭颂?/span>
大多數(shù)同學(xué)使用的第一張板子是51單片機(jī),成本5元,總體也不超過60元。我大一看的第一個(gè)單片機(jī)視頻是郭天祥的,第一款使用超過三個(gè)月的板子是Xilinx ZYNQ 7020,芯片成本幾百元,Demo板子近8千元,是一款FPGA+ARM架構(gòu)的芯片,周邊還有外圍模塊傳感器等。那時(shí)候,我開始從verilog開始啃,網(wǎng)盤還不是很發(fā)達(dá)沒有考慮上網(wǎng)看教程什么的,但是年輕畢竟有超凡的耐力,心非常靜,竟然也能自學(xué)學(xué)會(huì)了例程,跑起來了。當(dāng)然,這主要還是xilinx的軟件集成做得好,vivado一次裝成功,上屆的優(yōu)盤資料全部都在。我就拿著上屆的FPGA去準(zhǔn)備新的比賽。直到比賽結(jié)束后,歸還設(shè)備,我才買了自己的51單片機(jī)。
那屆的全國(guó)電子競(jìng)賽,我擔(dān)任隊(duì)長(zhǎng),參加了江蘇省的“高校賽前集中封閉培訓(xùn)”,由xilinx中國(guó)區(qū)的工程師培訓(xùn)3天。一個(gè)學(xué)校買幾套設(shè)備,就能進(jìn)2倍的人進(jìn)去,因?yàn)橹毁I了一套,所以三人組只有我與另一名男生進(jìn)去了。
也正是那三天,讓我知道如何去快速高效掌握一門技術(shù),就是帶著項(xiàng)目及豐富的資源,并且有實(shí)物有工程師可以手把手調(diào)試,氛圍也很重要,那幾天我睡眠不足四小時(shí),白天培訓(xùn)晚上調(diào)車,酸爽。和學(xué)校里死學(xué),老師又沒有項(xiàng)目,學(xué)生只能傻看,學(xué)習(xí)強(qiáng)度不高,天壤之別。
插一段。我在準(zhǔn)備競(jìng)賽的過程中,其實(shí)已經(jīng)是多方位都為我創(chuàng)造環(huán)境。例如,塑料舵機(jī),當(dāng)時(shí)正版還比較貴(現(xiàn)在的仿品只要幾元,而且不精準(zhǔn)用幾次就壞),20元一個(gè)。我寫程序?qū)Y云臺(tái)上的舵機(jī)互相卡死折斷一個(gè)舵機(jī)燒毀了。我緊張地去找老師匯報(bào)我毀壞用具事情,老師興奮地笑著跟我說:我要表揚(yáng)你,現(xiàn)在我就去網(wǎng)上再買五個(gè)。損壞說明了你有能力,你繼續(xù)每天燒一個(gè),直到把問題想明白。只要你每次犯的錯(cuò)不一樣,那就是值得的。?? 這種不差錢的氛圍,讓一個(gè)小女生,特別是在剛起步的時(shí)候,無所畏懼,才能在技術(shù)道路上大步向前走。
比賽主題是“智能倉儲(chǔ)巡檢機(jī)器人”,在2014年的這個(gè)比賽里我用到了openCV號(hào)碼牌識(shí)別功能,盡管當(dāng)時(shí)是賽方封裝好的識(shí)別部分,但還是引起我對(duì)圖像極大的興趣,之后的2015年我也開始找了openCV的若干資源去學(xué)。
然而,我畢業(yè)2017年到深圳,市面上圖像處理崗位的硬件都是用ZYNQ7020款,原來在爆款的情況下,我還是沒有應(yīng)聘上,后來找了硬件設(shè)計(jì)崗位。電子競(jìng)賽對(duì)于平臺(tái)贊助商,就是為某一款產(chǎn)品幾年后的市場(chǎng)做布局,先為市場(chǎng)預(yù)熱,那么市場(chǎng)第一批工程師使用該產(chǎn)品里就會(huì)有這些來自競(jìng)賽的畢業(yè)生。由于xilinx是FPGA兩巨頭之一,再加上另一家巨頭已經(jīng)被其他公司收購,所以xilinx對(duì)于產(chǎn)品支持這塊做得比較全,或者說注資扶持的第三方外包公司也蠻多,讓xilinx FPGA的落地應(yīng)用項(xiàng)目多了起來,方案齊全。FPGA解決處理速度問題,ARM解決顯示與界面問題,都結(jié)合在了一塊芯片中,跟價(jià)格倒是沒什么關(guān)系,主要是又貴又難能不能保證能用起來,這可能需要原廠的部分技術(shù)支持,其次才是能不能充分利用發(fā)揮性能。
比賽的結(jié)束,意味著新比賽開始,以至于我每款其實(shí)并不精。
我只不過用了幾千元去干了幾百元能干的事情而已!
不滿足市場(chǎng)或者當(dāng)時(shí)不明白FPGA的精髓。
精髓絕不是跑幾個(gè)Demo就完事的!
如果說: Windows是讓簡(jiǎn)單的事更簡(jiǎn)單,Linux系統(tǒng)是讓復(fù)雜的事變簡(jiǎn)單。
那么 ARM則是讓界面更美更容易去控制,FPGA是讓高效與穩(wěn)定并存。
ARM的程序可能出現(xiàn)死機(jī),例如你的手機(jī)。
然而FPGA是現(xiàn)場(chǎng)可編程門陣列,它燒好后電路是可以固定的,不會(huì)卡死。
例如:流水線上的啤酒蓋,一分鐘要過很多個(gè)啤酒瓶,如果死機(jī)了,后果不堪設(shè)想,場(chǎng)面一片狼藉。在國(guó)外一些流水線上高速精密場(chǎng)合用“硬件電路”代替“編程”場(chǎng)合很多,這就是用處。
亦或者是華為的交換機(jī),它的硬件電路通道是可以根據(jù)流量改變通道的,這用FPGA極合適。
如果是ARM則會(huì)擁堵有死機(jī)風(fēng)險(xiǎn)。
還有一類人,可以不做架構(gòu)與通道的變換內(nèi)容框架大的。只深入到精度,例如電機(jī)控制的精度可以達(dá)到多少us等等。
總之,有深入的項(xiàng)目,有完整知識(shí)體系可以學(xué)得下來,做精才能成功。
半道子的本科生根本在南京沒市場(chǎng)要。而且南京FPGA業(yè)務(wù)被“伊元素”(Xilinx的中國(guó)授權(quán)合作商)一家獨(dú)大,老師的項(xiàng)目都被這家公司搶走了,這家公司培訓(xùn)或者工作幾個(gè)月出來的??粕?,對(duì)業(yè)務(wù)熟悉,南京本地的公司就喜歡要這樣的人。死讀書的本科娃,沒有項(xiàng)目,知識(shí)量其實(shí)比培訓(xùn)出來的專科生差遠(yuǎn)了。
論學(xué)歷也得看市場(chǎng),論讀書也得看看項(xiàng)目夠不夠等級(jí)。
論機(jī)遇,已經(jīng)沒有人還能比我在大學(xué)里更舒坦,要硬件又硬件,要培訓(xùn)有培訓(xùn),老師都得捧著。
軟硬件有那么多條路,F(xiàn)PGA與ARM,建議深入其中一個(gè),例如ARM的路要更寬。我雖然FPGA“斷頭路”沒有走通,但是我大二就會(huì)了ubuntu系統(tǒng)下編程等等技術(shù),大三會(huì)手機(jī)安卓APP程序編寫,VS下寫openCV。
道路那么多,不妨多看看再?zèng)Q定哪個(gè)是自己喜歡的、要深入的。