第一步:學習了解FPGA結構,FPGA到底是什么東西,芯片里面有什么,不要開始就拿個開發板照著別人的東西去編程。很多開發板的程序寫的很爛,我也做過一段時間的開發板設計,我覺得很大程度上,開發板在誤人子弟。不過原廠提供的正品開發板,代碼很優秀的,可以借鑒。只有了解了FPGA 內部的結構才能明白為什么寫Verilog和寫C整體思路是不一樣的。 第二步:掌握FPGA設計的流程。了解每一步在做什么,為什么要那么做。很多人都是不就是那幾步嗎,有什么奇怪的?呵呵,我想至少有一半以上的人不知道synthesize和traslate的區別吧。 了解了FPGA eepw.com.cn/news/fpga 的結構和設計流程才有可能知道怎么去優化設計,提高速度,減少資源,不要急躁,不要去在為選擇什么語言和選擇哪個公司的芯片上下功夫。語言只是一個表達的方式,重要的是你的思維,沒有一個好的指導思想,語言用得再好,不過是個懂語言的人。 第三步:開始學習代碼了。我建議要學代碼的人都去Altera或Xilinx的網站上下原廠工程師的代碼學習。不要一開始就走入誤區。 個人愚見,歡迎大家討論。 做fpga主要是要有電路的思想,作為初學者,往往對器件可能不是熟悉,那么應該對于數字電路的知識很熟悉吧,fpga中是由觸發器和查找表以及互聯線等基本結構組成的,其實在我們在代碼里面能夠看到的就是與非門以及觸發器,不要把verilog和c語言等同起來,根本就是不同的東西,沒有什么可比性,在寫一句程序的時候應該想到出來的是一個什么樣的電路,計數器 選擇器 三態門等等,理解時序,邏輯是一拍一拍的東西,在設計初期想的不是很清楚的時候可以畫畫時序圖,這樣思路會更加的清晰,還有就是仿真很重要,不要寫完程序就去往fpga中去加載,首先要仿真,尤其是對比較大型一點的程序,想像自己是在做asic,是沒有二次機會的,所以一定要把仿真做好,還有很多新手對于語言的學習不知道選vhdl好還是verilog好,個人偏好verilog,當然不是說vhdl不好,反正寫出來的都是電路,那當然就不要在語言的語法上面花太多的功夫了,verilog 言簡意賅 assign always case if else 掌握這些幾乎可以寫出90%的電路了,上面是我的一些愚見,希望對大家有所幫助 做一塊板子,實現一個協議,先從簡單入手,譬如RS232,然后到復雜,PCI協議,然后再設計一些高速的,譬如ddr sdram,基本上你對fpga的了解就已經很深了 |