FPGA怎么學(xué)?幾個(gè)過來人的學(xué)習(xí)建議
時(shí)間:2017-08-03作者:華清遠(yuǎn)見
FPGA(Field-Programmable Gate Array),即現(xiàn)場(chǎng)可編程門陣列,它是在PAL、GAL、CPLD等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專用集成電路(ASIC)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點(diǎn)。那么,FPGA怎么學(xué)呢?這里整理分享一些學(xué)習(xí)FPGA的小建議,希望對(duì)大家有所幫助。
(1)深入了解FPGA 知己知彼,方能百戰(zhàn)百勝。既然要玩轉(zhuǎn)FPGA,那我們首先重要的當(dāng)然是要了解FPGA是什么,知道FPGA內(nèi)部的工作原理是怎樣的。 FPGA(Field-Programmable Gate Array),即現(xiàn)場(chǎng)可編程門陣列。看到編程兩個(gè)字碼農(nóng)就笑了,不就是編程嘛,那可是我們的強(qiáng)項(xiàng)。且慢,此編程非彼編程。一定要把FPGA的編程和軟件編程區(qū)分開來。軟件的編程,處理器會(huì)逐條的把語(yǔ)言翻譯成各種控制信號(hào),去控制內(nèi)部電路完成一個(gè)個(gè)運(yùn)算或操作。那么FPGA的編程是怎么實(shí)現(xiàn)的呢?無論Altera家還是Xlinix家的FPGA,叫法有什么差異,基本單元都相似,都是由真值表和D觸發(fā)器構(gòu)成。改變真值表的值就改變了邏輯功能,再通過和D觸發(fā)器組合來實(shí)現(xiàn)任何時(shí)序邏輯。所以我們對(duì)FPGA的編程,實(shí)際上就是去修改這些真值表和連接關(guān)系,使他們組成一張專門的真值表,去實(shí)現(xiàn)特定的功能。這和軟件編程一步步運(yùn)行程序有本質(zhì)的區(qū)別。要想玩轉(zhuǎn)FPGA,就必須理解FPGA內(nèi)部的工作原理,學(xué)習(xí)如何利用這些單元實(shí)現(xiàn)復(fù)雜的邏輯設(shè)計(jì)。 (2)掌握FPGA的編程語(yǔ)言 在學(xué)習(xí)一門技術(shù)之前我們往往從它的編程語(yǔ)言開始,如同學(xué)習(xí)單片機(jī)一樣,我們從C語(yǔ)言開始入門,當(dāng)掌握了C 語(yǔ)言之后,開發(fā)單片機(jī)應(yīng)用程序也就不是什么難事了。學(xué)習(xí)FPGA 也是如此,F(xiàn)PGA 的編程語(yǔ)言有兩種:VHDL 和Verilog ,這兩種語(yǔ)言都適合用于FPGA 的編程,VHDL 是由美國(guó)軍方組織開發(fā)的,在1987年就成為了IEEE 的標(biāo)準(zhǔn);而Verilog 則是由一家明間企業(yè)的私有財(cái)產(chǎn)轉(zhuǎn)移過來的,由于其優(yōu)越性特別突出,于是在1995年也成為了IEEE 標(biāo)準(zhǔn)。VHDL 在歐洲的應(yīng)用較為廣泛,而Verilog 在、美國(guó)、日本、臺(tái)灣等地應(yīng)用較為廣泛,作者比較推崇是Verilog ,因?yàn)樗浅R子趯W(xué)習(xí),很類似于C 語(yǔ)言,如果具有C 語(yǔ)言基礎(chǔ)的人,只需要花很少的時(shí)間便能迅速掌握Verilog ,而VHDL 則較為抽象,學(xué)習(xí)的時(shí)間較長(zhǎng)。 作為在校大學(xué)生,學(xué)習(xí)Verilog 的好時(shí)期是在大學(xué)二年級(jí)開設(shè)《電子技術(shù)基礎(chǔ)(數(shù)字部分)》時(shí)同步學(xué)習(xí),不僅能夠理解數(shù)字電路實(shí)現(xiàn)的方式,更能通過FPGA 將數(shù)字電路得以實(shí)現(xiàn)。作者發(fā)現(xiàn)華中科技大學(xué)康華光教授主編的《電子技術(shù)基礎(chǔ)(數(shù)字部分)》非常好,可以說是一本與時(shí)俱進(jìn)的教材,在本書的第二章后一節(jié)專門介紹了Verilog 語(yǔ)言與FPGA ,并且在每一章的后一節(jié)都介紹了如何使用Verilog 建模實(shí)現(xiàn)相關(guān)數(shù)字電路的內(nèi)容,因此本書非常適合大二學(xué)習(xí)FPGA 的學(xué)生參考。本書是以《電子技術(shù)基礎(chǔ)(數(shù)字部分)》為背景,并與該書同步配套學(xué)習(xí)FPGA ,并在它的基礎(chǔ)上作了改進(jìn),源于它而又高于它。 大三、大四的學(xué)生還可以進(jìn)一步強(qiáng)化學(xué)習(xí)Verilog ,建議以北京航天航空大學(xué)出版社出版的由夏宇聞教授編寫的《Verilog 數(shù)字系統(tǒng)設(shè)計(jì)教程(第二版)》作為藍(lán)本,本書比較全面地、詳細(xì)地介紹了Verilog 的基本語(yǔ)法。如果是其他初學(xué)者,可以直接借助《Verilog 數(shù)字系統(tǒng)設(shè)計(jì)教程(第二版)》和本書即能全面掌握Verilog 的語(yǔ)法,這是學(xué)習(xí)FPGA 的第一步,也是必不可少的一步。 (3)掌握FPGA設(shè)計(jì)的流程 了解了FPGA的結(jié)構(gòu)和設(shè)計(jì)流程才有可能知道怎么去優(yōu)化設(shè)計(jì),提高速度,減少資源,不要急躁,不要去在為選擇什么語(yǔ)言和選擇哪個(gè)公司的芯片上下功夫。語(yǔ)言只是一個(gè)表達(dá)的方式,重要的是你的思維,沒有一個(gè)好的指導(dǎo)思想,語(yǔ)言用得再好,不過是個(gè)懂語(yǔ)言的人。 (4)FPGA實(shí)驗(yàn)尤為重要 學(xué)習(xí)FPGA除了要學(xué)習(xí)編程語(yǔ)言以外,更重要的是多實(shí)踐。很多時(shí)候光想是學(xué)不會(huì)的,有了什么想法好還是通過實(shí)驗(yàn)驗(yàn)證一下,將自己設(shè)計(jì)的程序能夠在真正的FPGA里運(yùn)行起來,這時(shí)我們需要選一塊板子進(jìn)行實(shí)驗(yàn),一般的板子基本上可以滿足大家的需求,大家感興趣的不妨買一塊做做實(shí)驗(yàn)。 (5)不要鉆牛角尖 剛開始學(xué)習(xí)FPGA的時(shí)候,我們沒有必要去細(xì)究每一個(gè)細(xì)節(jié)。所有的知識(shí),當(dāng)我們需要它的時(shí)候,再去深入了解就行。入門知識(shí),只要掌握常用的,夠用就行,這樣子才能很快就上手做項(xiàng)目,積累出經(jīng)驗(yàn),也讓自己積蓄起信心繼續(xù)前進(jìn)。要是一開始就對(duì)每一個(gè)問題、每一個(gè)知識(shí)點(diǎn)都咬住不放,或者去鉆研一些不常用的、以現(xiàn)有知識(shí)和經(jīng)驗(yàn)無法理解的知識(shí),只會(huì)讓自己耗費(fèi)大量的精力而進(jìn)展緩慢,讓自己覺得學(xué)習(xí)FPGA太難,只會(huì)讓自己?jiǎn)适判?
相關(guān)資訊
發(fā)表評(píng)論
|