FPGA對于硬件工程師以及高校師生來說是非常重要的一項(xiàng)技能,其重要性甚至要超過PCB設(shè)計(jì),不僅是因?yàn)樵陔娮赢a(chǎn)品系統(tǒng)中(尤其是通信、音視頻相關(guān)產(chǎn)品)可編程器件是非常重要的組成部分;IC設(shè)計(jì)也離不開HDL編程、通過FPGA設(shè)計(jì)、驗(yàn)證等;更重要的是“數(shù)字邏輯”的概念是每個(gè)硬件工程師必須具備的思維方式。 可現(xiàn)實(shí)呢?幾乎所有高校畢業(yè)的電子類學(xué)生,除了少數(shù)參與過一些競賽項(xiàng)目或做與FPGA相關(guān)的畢業(yè)設(shè)計(jì)的,幾乎沒有人講得清楚什么是FPGA;即便是高校從事研發(fā)工作的碩士/博士同學(xué)們,也只是對自己正在用的型號、有限的功能有一定的掌握;企業(yè)的工程師?還好一些,畢竟在實(shí)戰(zhàn)的項(xiàng)目中得到了體驗(yàn),但這個(gè)比例是非常的小。 我國高校每年有至少100萬的本科學(xué)生(除了電子、電氣、自動(dòng)化之外,還有計(jì)算機(jī)、物理、物聯(lián)網(wǎng)等專業(yè))要學(xué)習(xí)數(shù)字電路這門課程,70%以上的學(xué)校仍然在面包板上用分立的門電路來做數(shù)字電路課程實(shí)驗(yàn);70%以上的學(xué)校仍然用8086/8088/8255/8251來做微機(jī)原理與接口技術(shù)/計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)的實(shí)驗(yàn);EDA課程基本上也都是若干年前Altera或Xilinx通過大學(xué)計(jì)劃提供的教學(xué)套具(很強(qiáng)大、很貴的設(shè)備),常見的模式是學(xué)生按照實(shí)驗(yàn)手冊上的流程走一遍過場,編寫幾行代碼,而至于這玩意是怎么工作的,實(shí)事求是地講,多數(shù)負(fù)責(zé)教學(xué)的老師都未必知道。 同在高校如火如荼的“嵌入式系統(tǒng)”課程、人人都可以號稱懂“嵌入式”相比,為什么FPGA成了這么高冷的一門技能呢? 我認(rèn)為主要是在學(xué)習(xí)和應(yīng)用FPGA的過程中存在以下幾個(gè)誤區(qū): 1、FPGA很難學(xué) - 這是學(xué)生以及工程師在談到FPGA的時(shí)候第一反應(yīng),因?yàn)樗麄兛吹降亩际巧锨K甚至幾千塊錢一個(gè)的板子,配一個(gè)幾百塊錢的編程器;板子上安裝的都是幾百個(gè)管腳、看起來非常牛b閃閃的器件,據(jù)數(shù)據(jù)手冊上說支持著各種自己從來都沒聽說過的技術(shù)術(shù)語 - xx總線、xx接口、多少個(gè)CLB、掛著各種高速的DDR、USB、PCIe,據(jù)說還能跑什么軟核、硬核,初學(xué)的菜鳥們臉立馬漲的通紅,我是不是太無知了?根本與他們擁有的知識結(jié)構(gòu)對應(yīng)不起來;軟件?光下載個(gè)安裝包就要10GB,安裝需要半天時(shí)間,還經(jīng)常蹦出來個(gè)錯(cuò)誤信息,還是英文的;運(yùn)行個(gè)案例試試?剛買的高性能的電腦也要跑十幾分鐘,出去上趟廁所回來,編譯的進(jìn)度條還停留在80%上。。。。哇,太強(qiáng)大了!學(xué)習(xí)中遇到問題請教老師,老師無奈地?fù)u搖頭:我也不懂,你問問你大師兄xxx吧,旁邊大神級的師兄酷酷地走過來,修改幾行代碼,搞定,這一切都讓你懷疑自己,懷疑你是不是學(xué)習(xí)FPGA的那塊磚。其實(shí)我要說的是,學(xué)習(xí)FPGA比學(xué)會PCB設(shè)計(jì)都要容易的多 - 你已經(jīng)學(xué)了數(shù)字電路,具備了數(shù)字邏輯的理論基礎(chǔ),比抽象的PCB庫、原理圖、網(wǎng)表、布局、布線要容易理解得多吧?編程語言,Verilog的語法太簡單了,常用的都不到一頁,比C語言不知道要簡單幾個(gè)量級;只要你學(xué)會了如何將要實(shí)現(xiàn)的功能從邏輯上描述清楚,再用HDL描述出來,基本就能讓這個(gè)“萬能芯片”給你表演一些很神奇的東西出來了。 2、我要買塊高大上的開發(fā)板 - 當(dāng)我們給初學(xué)者推薦小腳丫FPGA的時(shí)候,多數(shù)情況下都會招到他們的鄙視,你們這玩意能學(xué)FPGA么?也配叫FPGA開發(fā)板?就像一個(gè)攝影菜鳥總覺得卡片相機(jī)不是相機(jī),一定要抱著一個(gè)能裝配各種鏡頭的、價(jià)格必須上萬元的單反才能學(xué)到攝影技術(shù)。基于對各種技能成長的觀察,大概率事件 - “器材黨”一般都是水平不行的,真正的高手基本都是在非?;A(chǔ)、淺陋的器材上成長起來的,因?yàn)橹挥凶罨A(chǔ)、淺陋的條件才能讓他們聚焦在最核心的東西上,從而能夠快速滴掌握真諦。 3、我需要很多教程才能學(xué) - 在淘寶上觀察一下你會發(fā)現(xiàn),那些暢銷的板卡并不是因?yàn)樗O(shè)計(jì)的多么合理、適用或者價(jià)格便宜,而是在其產(chǎn)品描述頁面羅列了一張長長的清單 - 贈(zèng)送xxx個(gè)案例、xxx張光盤的視頻教程等等。誠然這些參考學(xué)習(xí)資料對于初學(xué)者來講有一定的幫助,尤其是心理上有更多的安全感,但我認(rèn)為要真想學(xué)會一項(xiàng)技能,太多的參考并沒有什么正面的幫助,尤其是一些游擊隊(duì)員提供的不規(guī)范的設(shè)計(jì)資料,反而讓新手養(yǎng)成同樣不規(guī)范的習(xí)慣。學(xué)習(xí)過程最重要的是自己發(fā)現(xiàn)問題、解決問題,自己會通過各種手段找到答案,而不是拿來別人已經(jīng)做好的在上面修改。 4、我只學(xué)Xilinx、Altera的FPGA - 這就像你想學(xué)開車,認(rèn)為一定要用寶馬、大奔才能學(xué)會開車一樣,這種觀念是非常錯(cuò)誤的,是被某些勢力嚴(yán)重誤導(dǎo)了的。真正學(xué)習(xí)駕駛技能,你需要的是“大眾”、“本田”,因?yàn)樗鼈冃詢r(jià)比高,比較適合學(xué)習(xí)用,當(dāng)然對于不差錢的土豪來講,他用瑪莎拉蒂來學(xué)車也無可非議。重要的是我們普通的工程師要知道這個(gè)世界上除了Xilinx和Altera之外,還有Lattice、Microchip(原Actel的產(chǎn)品)提供更大眾化的FPGA產(chǎn)品,他們的用量巨大而且價(jià)格便宜,在你初期的3、4年里,用這些公司的產(chǎn)品已經(jīng)綽綽有余了,學(xué)會替你的老板省點(diǎn)錢,替你自己省點(diǎn)錢,也是做產(chǎn)品必須培養(yǎng)的優(yōu)秀品質(zhì)。 5、像C一樣寫Verilog - 對于玩過單片機(jī)、嵌入式系統(tǒng)、軟件編程的工程師來講,他們把Verilog當(dāng)成了C來寫,這真的是暴殄天物,是對FPGA的“A”極大不敬。相對于MCU/MPU來講,F(xiàn)PGA最值得傲嬌的就是這個(gè)“A”,海量的門陣列,十萬雄兵,你不能就讓他們排著隊(duì)干一件事情吧?學(xué)會并行處理、時(shí)序以及針對每個(gè)bit進(jìn)行操作是學(xué)習(xí)FPGA的精髓。 6、不關(guān)心資源配置 - 用高檔開發(fā)板習(xí)慣了,就像富二代的公子哥,根本沒有成本這一概念,只要能實(shí)現(xiàn)功能就可以了,我管它用了多少LUT,耗費(fèi)了多少RAM呢?哥不Care!這是不行滴,因?yàn)樵趯?shí)際的項(xiàng)目中,你的老板不同意你這么做,即便是他不懂,看不到這些問題,那你的設(shè)計(jì)一定比別人花費(fèi)更大的代價(jià),付出更高的成本,也就意味著在市場上不會有競爭力而被淘汰。如果從一開始就沒有養(yǎng)成重視資源配置,盡一切努力優(yōu)化自己的邏輯達(dá)到最佳資源利用的好習(xí)慣的話,最終你就會像一個(gè)紈绔子弟一樣敗家、敗項(xiàng)目。就像淘寶、逛街的魅力在于你能從花最少的錢買到最多的東西中獲得莫名的快感一樣,用FPGA的時(shí)候通過你自己的設(shè)計(jì)節(jié)省了多少n個(gè)寄存器、少用了m%的存儲器,也是讓人感到非常愉悅的體驗(yàn),何不養(yǎng)成這種習(xí)慣,在快樂中成長呢? |
19款電子扎帶
電路板識別電子標(biāo)簽