對于新手學習FPGA設計,要從基礎開始做,基礎牢,才有成為高手的可能。 對于初學者,有以下幾步是必須要走的。
第一步
學習了解FPGA結(jié)構(gòu),F(xiàn)PGA到底是什么東西,芯片里面有什么,不要開始就拿個開發(fā)板照著別人的東西去編程。
很多開發(fā)板的程序?qū)懙暮軤€,筆者也做過一段時間的開發(fā)板設計。筆者覺得很大程度上,開發(fā)板在誤人子弟。不過原廠提供的正品開發(fā)板,代碼很優(yōu)秀的,可以借鑒。
只有了解了FPGA內(nèi)部的結(jié)構(gòu)才能明白為什么寫Verilog和寫C整體思路是不一樣的。
第二步
掌握FPGA設計的流程。了解每一步在做什么,為什么要那么做。很多人都說不就是那幾步嗎,有什么奇怪的?呵呵,筆者想至少有一半以上的人不知道synthesize和traslate的區(qū)別吧。
了解了FPGA的結(jié)構(gòu)和設計流程才有可能知道怎么去優(yōu)化設計、提高速度、減少資源。不要急躁,不要去在為選擇什么語言和選擇哪個公司的芯片上下功夫。
語言只是一個表達的方式,重要的是你的思維,沒有一個好的指導思想,語言用得再好,不過是個懂語言的人。
第三步
開始學習代碼了。筆者建議要學代碼的人都去Altera或Xilinx的網(wǎng)站上下原廠工程師的代碼學習。不要一開始就走入誤區(qū)。
第四步
template很重要。能不能高效利用fpga資源,一是了解fpga結(jié)構(gòu);二是了解欲實現(xiàn)的邏輯功能和基本機構(gòu);三是使用正確的模板。FPGA內(nèi)部器件種類相對較單一,用好模板,你的邏輯才能被高效的綜合成FPGA擅長表達的結(jié)構(gòu)。
結(jié)語
做FPGA主要是要有電路的思想。作為初學者,往往對器件可能不是熟悉,那么應該對于數(shù)字電路的知識很熟悉吧?FPGA中是由觸發(fā)器和查找表以及互聯(lián)線等基本結(jié)構(gòu)組成的,其實在我們在代碼里面能夠看到的就是與非門以及觸發(fā)器。
不要把verilog和C語言等同起來,根本就是不同的東西,沒有什么可比性。
在寫一句程序的時候應該想到出來的是一個什么樣的電路,計數(shù)器、選擇器、三態(tài)門等等。理解時序,邏輯是一拍一拍的東西,在設計初期想的不是很清楚的時候可以畫畫時序圖,這樣思路會更加的清晰。
還有就是仿真很重要,不要寫完程序就去往FPGA中去加載。首先要仿真,尤其是對比較大型一點的程序,想像自己是在做asic,是沒有二次機會的,所以一定要把仿真做好。
還有很多新手對于語言的學習不知道選vhdl好還是verilog好,個人偏好verilog。當然不是說vhdl不好,反正寫出來的都是電路,那當然就不要在語言的語法上面花太多的功夫了。verilog言簡意賅,assign、always、case、if else掌握這些幾乎可以寫出90%的電路了。
上面是筆者的一些愚見,希望對大家有所幫助。
審核編輯 :李倩
-
FPGA
+關(guān)注
關(guān)注
1630文章
21796瀏覽量
605983 -
Verilog
+關(guān)注
關(guān)注
28文章
1351瀏覽量
110389 -
開發(fā)板
+關(guān)注
關(guān)注
25文章
5121瀏覽量
98189
原文標題:大神經(jīng)驗談 | 新手學習FPGA的入門之道
文章出處:【微信號:FPGA研究院,微信公眾號:FPGA研究院】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論