導讀:
大家都知道,對于剛接觸 FPGA 的學生來說,一聽到“ FPGA ”就覺得“難、很難、非常難”有點抵抗學習的能力,廣泛普便認為很難學,不容易通俗易懂,學起來特別費勁,干脆放棄或不學。但對于喜愛 FPGA 的群體來言,自身打心里喜歡這個課程,課后經常會探索 FPGA 書籍、視頻、看后還是不能掌握學習 FPGA 技能的方法,不知如何是好?今天,我想跟大家說的是,對于新手而言我們如何學好 FPGA 課程呢?
學習步驟:
第一步:學習了解 FPGA 結構, FPGA 到底是什么東西, 芯片 里面有什么,不要開始就拿個 開發板 照著別人的東西去編程。很多開發板的程序寫的很爛,我也做過一段時間的開發板設計,我覺得很大程度上,開發板在誤人子弟。不過原廠提供的正品開發板,代碼很優秀的,可以借鑒。只有了解了 FPGA 內部的結構才能明白為什么寫 Verilog 和寫 C 整體思路是不一樣的。
第二步:掌握 FPGA 設計的流程。據我了解過,市場上唯獨有一家 “ 革命性設計規范及技巧 ” ,也就是《明德揚 FPGA 至簡設計法》,就有一整套的設計流程規范模板,只要仿真去學習操作,了解每一步在做什么,為什么要那么做。了解了 FPGA 的結構和設計流程才有可能知道怎么去優化設計,提高速度,減少資源,不要急躁,不要去在為選擇什么語言和選擇哪個公司的芯片上下功夫。語言只是一個表達的方式,重要的是你的思維,沒有一個好的指導思想,語言用得再好,不過是個懂語言的人。 所以這家公司在目前上是唯一一家教你學習 FPGA 邏輯思維能力設計,讓你掌握設計思路,以后做一般 FPGA 項目都是 “ 小菜一碟 ” 。
第三步:開始學習代碼了。我建議要學代碼的人都去明德揚論壇上下載代碼,你看的代碼就能發現許多問題,因為沒有其他培訓公司像明德揚公司代碼寫的代碼規范,設計思路很 “ 潮流 ” ,美國式的教育方式,學了就會受益匪淺。
總結經驗:
歸根到底,學習 fpga 主要是要有集成電路邏輯思維能力,作為初學者,往往對器件可能不是熟悉,那么應該對于數字電路的知識很熟悉吧, fpga 中是由觸發器和查找表以及互聯線等基本結構組成的,其實在我們在代碼里面能夠看到的就是與非門以及觸發器,不要把 verilog 和 c 語言等同起來,根本就是不同的東西,沒有什么可比性,在寫一句程序的時候應該想到出 來的是一個什么樣的電路,計數器 選擇器 三態門等等,理解時序,邏輯是一拍一拍的東西,在設計初期想的不是很清楚的時候可以畫畫時序圖,這樣思路會更加的清晰,還有就是 仿真 很重要,不要寫完程序就去往 fpga 中去加載,首先要仿真,尤其是對比較大型一點的程序,想像自己是在做 asic ,是沒有二次機會的,所以一定要把仿真做好做一塊板子,實現一個協議,先從簡單入手,譬如 RS232 ,然后到復雜, PCI 協議,然后再設計一些高速的,譬如 ddr sdram ,基本上你對 fpga 的了解就已經很深了 學習 FPGA 最重要的是要了解綜合和時序仿真,你熟知你寫的每個進程到 RTL 級中都會綜合成什么樣的電路,只有這樣你才能使用有限的資源設計出好的邏輯硬件。
學習方法:
還有在平時遇到問題時,可以參考總結以下方法來學習:
1 、看資料第一選擇官網的原版。(官網上提供了各種各樣的資料,沒有什么書籍比這更權威的了,上面有足夠多的視頻和實例教程)
2 、關于一些名人或同行博文資料分享,資料看了之后要細細揣摩,要驗證其正確與否,方可吸收,否則吸收進去的可能不易理解。
3 、學 FPGA 一定要有邏輯思維能力,寫起代碼來會更規范,因為你寫的每一條語句對應的都是實實在在的一個電路。如中間或最后一條代碼寫錯,后面做起項目來,問題蠻多的,會發覺做起來特別吃力。網友們有興趣可以了解我明德揚這家公司,因為我也是那里真正了解感受到的。
4 、學習過程中一定要多提問,多討論,多記錄,多思考,多實踐才能熟能生巧。
總之,想學好 FPGA 朋友們們,一定要保持 “ 活到老,學到老 ” 的心態。因為 FPGA 還是大有發展潛力的,但它永遠只是實現 “ 想法 ” 的載體,所以需要在某一方面或者說某一領域有足夠的專業知識,比如數字信號處理,通信信號處理、雷達信號處理,無線通信,生物電子等等,因為這才是根本的。