首先,FPGA開發工程師是一個相對高薪的工作,但是,很多同學在剛入門時都會有一種無從下手的感覺,尤其是將FPGA作為第一個要掌握的開發板時,更是感覺苦惱;本人也是如此,以下就本人學習FPGA開發的一些情況做一些介紹,希望后來者能夠少走彎路。
第一次接觸FPGA是在本科畢設中,那時候選畢設課題得用搶的,盯著電腦等畢設選題時間一到,大家都開始搶,博主那時候剛好在北京參加一個飛行員招聘,所以很悲催的就被遺棄了,還好當時的舍友打電話告知要選題,要不然能不能畢業都難說,當時舍友幫我念著所剩無幾的畢設題目讓我進行選擇,最后在萬般糾結下就隨便選了一個與FPGA相關的,具體題目是做步進電機控制的,現在回想起來當時選的這個題目真的不是很難。也可能當時的認知比較低吧,很多東西都沒學會,整個畢設里也就做了個分頻器、按鍵、led燈指示僅此而已。
下定決心要學習FPGA是在研究生剛開學的時候,當時,對研究生學習沒有一點的目標和想法,整天糾結于是學算法、軟件還是硬件上了,糾結來糾結去,馬上就到了研一要結束了,作為一個2年制的專碩來說,這個時間點沒學到東西是很尷尬的;就在7月15號左右,我才正式開始了FPGA的開發學習(這里說一下本人畢竟在本科做過FPGA相關設計,所以要撿起來也是比較容易知道學什么的,而且在研一期間還自學了Verilog語言,還有一部分數電,感覺這些在接下來的學習都是很有用的)。
啰嗦完畢,接下來介紹具體怎么入手;首先,個人感覺總結的一套套路是:知道怎么用QuartusII軟件之后,直接上例程(比如電燈、流水燈、數碼管等);然后再學習Verilog代碼的編寫,其次,學會使用Modelsim的使用,接下來學習怎么編寫TestBench測試文件;接下來就是自己找各種視頻中的小項目自己去做,具體流程如下:建立新工程、編寫Verilog設計文件、保存到相應位置(注意這個位置是在工程文件夾下面的,而且工程文件和設計文件都不能使用中文)、編譯、修改錯誤、引腳設置、未用引腳設置(三態)、再次編譯、設置生成測試文件的位置、生成測試文件、對測試文件進行改寫(一般生成的測試文件都是不能用的,需要設計人員去設計輸入激勵)、編寫完成后保存、調用RTL仿真觀看仿真波形、如果功能無誤后下載到板子里,一般在調試的時候都用JTAG調試,除非要實現代碼固化的時候用AS下載,這些基本上就是做FPGA前端開發的整體流程了。
至于之后的signaltapII靜態時序仿真,博主沒做過,所以不做具體評論。相信新手們只要按照我所寫的具體流程去做,哪一塊不會就去找哪一快的資料,相信用不了2個月基本的入門是沒有問題的。
還有就是,個人感覺Verilog語言中重點需要掌握的就是一下這幾個語句結構:always寫時序和組合邏輯,assign寫組合邏輯,條件語句if
else,以及選擇語句case,還有仿真測試文件里經常使用的initial語句。還有就是需要掌握的幾個代碼:計數器編寫、狀態機編寫、FIFO編寫、打兩拍編寫。接下來就是要掌握的外圍器件的驅動和接口等,比如UART,IIC,SPI,VGA等,這里強烈推薦明德揚的視頻,講的很好,還有就是建議學一下基于FPGA的圖像邊緣檢測系統設計,這里面涵蓋了很多需要學習的東西,基本把這個項目搞定的話,找工作和FPGA開發都不會有太大的問題,在該項目中具體用到的比如:FPGA與OV7670攝像頭的接口設計,數據采集,圖像處理算法,SDram的讀寫,VGA的顯示等。具體項目介紹在潘文明老師出的手把手教你學FPGA設計那本書里面的第八章都有將到,不過具體代碼都是需要讀者自己編寫的。
「FPGA之Verilog點燈小程序」
話不多說,直接做介紹:
首先個人用的是QuartusII11.0,開發板用的是CycloneIV的EP4CE6E22C8N芯片。
led燈使用的是低電平有效;
要執行的功能是:上電燈就亮,這里使用的是四個led燈;
具體代碼如下:
由于功能上是只要上電就亮,所以就不需要時序控制了,那么就是一個組合邏輯電路;
moduleled_light( led ); output[3:0]led; reg[3:0]led; always@(*)begin led=4'b0000; end endmodule
審核編輯:湯梓紅
-
FPGA
+關注
關注
1643文章
21957瀏覽量
614038 -
Verilog
+關注
關注
28文章
1366瀏覽量
111803 -
計數器
+關注
關注
32文章
2284瀏覽量
96028 -
開發板
+關注
關注
25文章
5506瀏覽量
102244
原文標題:FPGA學習入門從點燈開始
文章出處:【微信號:ZYNQ,微信公眾號:ZYNQ】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
FPGA如何從入門到高手?

評論