一直以來在qq、msn、校內網上面總有一些朋友問我fpga如何學習,其實我也是個菜鳥,很難回答大家找個問題,今天剛好在網上看到這篇文章,感覺和我學習fpga的過程十分相似,就**了下來,希望對大家有所幫助。(以下內容為**)
回想起自己學fpga,已經有一段時間了,從開始的茫然,到後來的瘋狂看書,調電路,練習各種fpga例項,到最後能獨立完成專案,一路走來,感受頗多,拿出來和大家分享,順便介紹下自己的一點經驗所得,希望對初學者有所幫助。
廢話不說了,下面進入正題,學習fpga我主要經歷了這麼幾個階段:
①、vhdl和verilog語言的學習,熟悉vhdl和verilog語言的各種語法。
②、fpga的學習,熟悉quartusii軟體的各種功能,各種邏輯演算法設計,介面模組(rs232,lcd,vga,spi,i2c,ad,da等)的設計,時序分析,硬體優化等,大家可以先從簡單的做起,複雜的電路一定要把晶元資料讀懂,上面的時序分析一定要看明白,然後才能設計正確驅動。
③、niosii的學習,熟悉niosii的開發流程,熟悉開發軟體(sopc,niosii ide),了解niosii的基本結構,編寫niosii c語言程式,除錯板子各模組功能。niosii軟體除錯要很費時間,大家要耐的住厭煩,如果對軟體不熟悉會出現很多問題,自己遇到問題和解決問題的過程,也就是大家進步的過程,大家可以把niosii內嵌的各種功能除錯一遍,最後再移植c8051、ucosii作業系統和uclinux作業系統,估計你已經很熟悉了niosii了。
先來說說第乙個階段,現在主要的硬體描述語言有vhdl,verilog兩種,現在verilog用的人越來越多,因為容易上手(與c語言語法比較類似),也更靈活,現在的ic設計基本都用verilog。但是vhdl也有自己的優點,vhdl語言設計的程式很長,因為他本身語言比較嚴謹,在歐美一些國家還是比較喜歡vhdl語言。所以我希望大家對兩種語言應該都比較熟悉。我們的開發板上都盡量把這兩種語言進行完善。
我選的fpga是cycloneii系列的fpga(ep2c5/ep2c8),因為資源比以前的fpga多了好幾倍,還有pll,內嵌的ram,可以試試signaltapii,用內嵌的邏輯分析儀測試引腳波形,對於fpga的除錯,邏輯分析儀是至關重要的。利用這塊板子我完成了專案中的幾個主要功能:rs232通訊,指令解碼,配置dds,ad資料快取記憶體等,在實踐中學習起來真的比平時快很多,用到什麼學什麼動力更大。在這裡給大家推薦兩本官方的書:
①、《altera fpga/cpld 設計(基礎篇)》:講解一些基本的fpga設計技術,以及quartusii中各個工具的用法(ip,rtl,signalprobe,signaltapii,timing closure floorplan,chip editor等),對於入門非常好。
②、《altera fpga/cpld 設計(高階篇)》:講解了一些高階工具的應用,logiclock,時序約束很分析,設計優化,也講述了一些硬體程式設計的思想,作為提高用。
這兩本書大家不一定要買,可以看一下pdf文件就可以了,如果你看pdf文件,感覺不舒服,肯定我們支援你買正版書,哈哈。
③、還有一些很好的fpga和sopc實際應用的書,在這想不起來書名了,很多書都是在書店看完了(書太貴,買不起哈,呵呵)。
我主要說一下altera的官方**如果學習的是xilinxfpga的話,自然要登入不過很多人一看到英語就不想看,其實上面的英文很簡單,很多時候不敢看是因為對自己沒信心或心靜不下來看。不過官方**上資料很多,剛開始可能會覺得資料安排的有點亂,不方便查詢,以後有時間我列個資料的鏈結目錄,整理一下,方便大家查詢。
到這裡,自己最fpga的學習有一段時間了,練習了很多例項,自己也編寫了不少程式,也有了一些專案經驗,算是對fpga有些了解了。在不斷的學習中發現fpga不僅可以做邏輯設計,演算法設計等,還能做嵌入式開發,altera先後開發了nios,niosii兩款fpga的嵌入式軟核,並有配套的軟體,剛開始看到這些我真是心中突然豁然開朗,學習真的是無止境,又乙個全新的領域擺在我面前,我決定學習niosii,要學就要學最好。
剛開始入門是很痛苦的,嵌入式設計需要從硬體到驅動到軟體全部熟悉,硬體系統問題還不是很大(以前做過微控制器,dsp,arm等),處理器的架構心裡還有點數,對於驅動和軟體工程,剛開始學習真的很頭痛。niosii應該還算比較新的內容(應該是2023年出的),國內的書籍不算很多,網上這方面的資料也比較零碎,在niosii軟體除錯上,費了很多的功夫,我們這裡給大家niosii經典的教程(pdf),大家把這本書看完,估計大家對niosii軟體結構有一定的了解了,如果想深入了解niosii軟體,可以看一下niosii軟體結構解析這本書。
對於初學者,如果只是用ep2c5內嵌的ram太小,程式寫不大,而且每次總要絞盡腦汁優化程式**大小,很多時候優化了後函式功能會受到限制,所以很不利於初學者,所以我們的板子上都外擴了sdram,flash這兩個比較基本的模組,基本上可以滿足使用者各種的需求功能。
大家想很熟悉fpga和sopc,以後的路還很長,不過每次程式的的除錯成功都是一次喜悅,同時也有很多驚喜在等著我們,歡迎使用成都威爾達電子公司的開發套件,讓我們一起學習和進步吧......
FPGA 初探FPGA 入門過程的分享
南信大電子工程師協會慕課計畫 fpga入門學習 2 從入門到入墳的經驗1 南信大電子工程師協會慕課計畫 fpga入門學習 3 從入門到入墳的經驗2 理論 打好基礎 實際工程 軟體使用 上板實驗 直觀的效果 系統工程 組合功能 展現應用效果 複雜運算 數字訊號處理 影象處理 神經網路 大型工程 科研專...
FPGA的設計藝術(11)FPGA的構建過程
本文討論fpga的構建過程,由於fpga的過程太多了,恐怕會有歧義,這個過程,不是開發過程,不是開發流程,而是實實在在的fpga編譯的過程,使用編譯恐怕不是太合適,但是大家都叫習慣了,也知道fpga的編譯過程就是指的是fpga實現的中間一系列過程,例如綜合,實現以及最後生成位元流程式設計檔案。這篇文...
FPGA學習筆記(一) 初識FPGA
該隨筆中部分內容 自小梅哥 fpga field programmable gate array,現場可程式設計門陣列 正如其名,fpga內部有大量的可程式設計邏輯功能塊,使用verilog hdl 硬體描述語言 實現設計。玩過微控制器的小夥伴剛接觸fpga可能會有點困惑,其實fpga與微控制器最大...