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