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