名稱:隨機(jī)方向的彈球運(yùn)動(dòng)圖像VGA顯示DE1-SoC開發(fā)板(代碼在文末下載)
軟件:Quartus II
語言:Verilog
代碼功能:
VGA彈球圖案。
創(chuàng)建一個(gè)分辨率為640x480的VGA顯示器的彈球圖案。彈球開始并將沿隨機(jī)方向移動(dòng)。塊有8個(gè)移動(dòng)方向。
本代碼已在DE1-SOC開發(fā)板驗(yàn)證,其他開發(fā)板可以修改管腳適配,開發(fā)板如下:
FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com
部分代碼展示:
`timescale?1ns?/?1ps //產(chǎn)生方塊和運(yùn)行方向 module?graphic_generator(clk,?rst,?pixel_x,?pixel_y,?r,?g,?b); ???input????clk,?rst;? ???input????[9:0]?pixel_x,?pixel_y;?//像素坐標(biāo) ??? ???output???[7:0]?r,?g,?b; ???reg??????[11:0]?rgb;? ???wire?????refr_tick;? ??? ???//?refr-tick:?1-clock?tick?asserted?at?st?art?of?v-sync ???//?i.e..?when?the?screen?is?refreshed?(60?Hz) ???assign?refr_tick?=?(pixel_y==479)?&&?(pixel_x==1);? ???//?========================== ???//?object?output?signals ???//?========================== // //m序列 reg?[5:0]?ddout=6'b000001; always@(posedge?clk) ???begin ?????ddout[0]?<=ddout[1];//移位 ?????ddout[1]?<=ddout[2];//移位 ?????ddout[2]?<=ddout[3];//移位 ?????ddout[3]?<=ddout[4];//移位 ?????ddout[4]?<=ddout[3]^ddout[0];//本源多項(xiàng)式為x5+x2+1 end? ? // ??? ???wire?ball_on;? ???wire?[11:0]?ball_rgb;? reg?[9:0]?dir_x=2; reg?[9:0]?dir_y=2; ???always@(*)? case(ddout[2:0]) 3'd0: begin dir_x=2; dir_y=2; end 3'd1: begin dir_x=2; dir_y=-2; end 3'd2: begin dir_x=-2; dir_y=2; end 3'd3: begin dir_x=-2; dir_y=-2; end 3'd4: begin dir_x=0; dir_y=2; end 3'd5: begin dir_x=0; dir_y=-2; end 3'd6: begin dir_x=2; dir_y=0; end 3'd7: begin dir_x=-2; dir_y=0; end endcase ???//?=============== ???//?球 ???//?=============== ??? ???//?ball?left,?right?boundary? ???wire?[9:0]?ball_x_l,?ball_x_r;? ???//?ball?tob,?bottom?boundary? ???wire?[9:0]?ball_y_t,?ball_y_b;?? ???//?reg?to?track?left?,?top?position ???reg?[9:0]?ball_x_reg?,?ball_y_reg?; ???wire?[9:0]?ball_x_next?,?ball_y_next?;
點(diǎn)擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=235
閱讀全文