零基礎到看懂verilog程序以及調試成功

說來很失敗,以前沒有特意的去學過FPGA。呆滯後來有許許多多的應用與自己擦肩而過。覺得甚是遺憾,這一生我們聽了太多的道理,卻始終過不好這一世。

期初自己是做模擬的,對MCU之類的編程比較有興趣,卻忽略了FPGA之類。以前總想著找個時間去學習VHDL。當時記得看了一個星期書。果斷就放棄了。覺得那個太肯跌了。和之前學過的c還是有卻別的。但是還是幾年前。那個時候VERILOG的書比較少。夏宇聞估計那個時候我也不怎麼認識他。知道這幾日。發現自己掌握的東西太少。相當有必要來吧verilog搞懂。好在手上有一黑金的板子。今天做的工作很近單。但這僅僅是個開始。來點亮了一個流水燈。並在基礎上修改來修改去了好幾回。覺得有必要記錄下來。

不廢話了。正文:相信大家都覺得quartus比ISE好用吧。安裝**過程什麼的就不具體說明了。這個如果有必要的話可以傳一篇文檔上來。

先建立工程。每個軟件的必要!

打開軟件。file->new project rezard之後彈出界面。點擊NEXT。出現下圖

零基礎到看懂verilog程序以及調試成功

第一個是保存的文件夾名稱

第二是新建的文件名。第三和第二個會自動填寫上去的。然後提示是否創建。點擊是。

點擊next 然後再在next!填出如下界面。這裡是設置選用的芯片。由於自己的黑金石該芯片。所以選擇cyclone II.

零基礎到看懂verilog程序以及調試成功

然後一直點擊next直到finish。

然後點擊新建 填出一個對話框。選擇verilog HDL file 點擊OK。

保存之後然後進行編程。

這裡我的程序是讓流水燈循環點亮。然後在重複,如此生生不息。

這裡是自己的代碼。

這裡後面每句都解釋了。只要你稍微花點時間。絕對能看懂,樓主自己也是新手。對於verilog真的以前不怎麼懂的。但是樓主相信。只要花了時間。自己笨就笨點。大方向對了。還怕不會成功嗎。

另外這裡的腳包括了時鐘,復位腳還有8個LED。之後還需要管腳配置!!這個是必須的。要不沒有時鐘。或者時鐘的腳不對應。如何出來效果呢???

module led_12345678(clk,rst,led); //定義時鐘。復位腳以及輸出led8位的

input clk;//時鐘輸入

input rst;//復位腳

output [7:0] led; // 8bits led 輸出的格式是這樣的

reg [7:0] led; //定義reg型led.

reg [25:0] count;//定義count是26位的

always @ (posedge clk ) //這裡的意思是隻有時鐘上升沿來了就//一//直執行下面的begin-end之間的內容!!

begin

if((!rst) || count[22]==1) //如果復位//了//或者count[22]==1

begin

count<=26'b0;//count 26位全部賦值0

end

else

count<=count+1; //否則count就只加1,沒來一個上升沿就加1.其實這裡就是時間的問題。總會到count[22]=1的。如果等於了那就置0.而只有這個值等於1了。下面的流水燈才會左移加1.這就是需要滿足下面左移加以的條件。

end

always @ (posedge clk) //這個同樣的道理。只要來上升沿就執行,注意。這裡的always和上面那個always是並行的!!

begin

if((!rst))//檢測如果復位鍵來了

led<=8'b0000_0000;//led全部熄滅

else //否則

begin

if(count[22]==1) //如果,,,

begin

if (led==8'b1111_1111)//如果全部都是1了。就是都亮了

led<=8'b0;//那就全部置0

else//前往注意這裡if lese的關係。這裡有好幾個if else

led<=((led<<1)+1);//led左移並且加1,這裡就很好的解釋了流水的過程。左移+1.如果全是1了,那就全部置0.這就是流水的過程。

end

end

end

endmodule

到了這裡然後就完了。點擊processing->start compilation 編程成功後配置管腳。

點擊assignment ->pins彈出對話框,吧下面的腳脫進去就行。這裡因為我的時鐘是28腳。所以就直接拖進去28腳就好了。其他的LED對照板子原理圖直接拖進去。還有復位端也是如此。

零基礎到看懂verilog程序以及調試成功

接下來點擊Tools -》programmer彈出對話框。

零基礎到看懂verilog程序以及調試成功

點擊上面的mode會彈出4個選項。可以選擇JTAG。但是這裡我需要掉電也能運行程序。所以選擇AS模式。然後點擊左上角的hardware setup.填出界面。USB驅動檢查下已經有了

這裡,如果你的沒有發現驅動。那就插上你的USB Blaster.可以讓他自動安裝驅動程序。或者手動安裝。驅動在安裝軟件的driver文件下。

零基礎到看懂verilog程序以及調試成功

然後點擊關閉。再打開左邊的ADD file 文件。加載.pof文件然後在program configure打鉤就行。

零基礎到看懂verilog程序以及調試成功

零基礎到看懂verilog程序以及調試成功

然後點擊左側一欄的start就可以了。等待一會上面會出現藍色的100%就代表成功了。借來下一定要先拔掉開關。在拔下下載器。不然會對板子有損壞的。這是習慣。話說優秀也是一種習慣。優秀的工程師就是平時會注重這些。所以成功!!切記。

然後在吧電源插上。這是就可以看到流水燈的運轉了。

零基礎到看懂verilog程序以及調試成功

零基礎到看懂verilog程序以及調試成功

PS:到這裡可能用過quartus的可能覺得沒有什麼。但是作為新學者。這也算中成功吧。後面樓主會一直堅持吧黑金玩下去。這也代表這一種態度。之所以選擇這個時候才來學FPGA。本身前面由於自己懶。覺得不想學。所以沒有動力。最近因為項目的需要。需要一個信號源。去調製另外一個大功率信號。考慮到DDS本身的芯片可能會有缺陷。所以考慮到了FPGA的功能。剛好也可以藉助它提升自己。後面樓主會繼續深造,更新。


分享到:


相關文章: