久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 4542|回復(fù): 0
收起左側(cè)

FPGA VGA顯示 verilog源碼仿真與資料分享

[復(fù)制鏈接]
ID:240399 發(fā)表于 2018-9-27 19:24 | 顯示全部樓層 |閱讀模式
FPGA 驅(qū)動(dòng)vga顯示源碼仿真與資料都有
0.png 0.png 0.png

  1. `timescale 1ns / 1ps
  2. /*==============================================================================
  3. Engineer            : a fei
  4. Module Hierarchy    : top function module
  5. Design Name         : vga_module.v
  6. Module Name         : vga_module
  7. Project Name        : test_project_top.qsf
  8. Target Devices      : Altera
  9. Tool versions       : QUARTUSII11.0/Windows XP
  10. Description         : 顯示“囧”字,綠背景,藍(lán)框,800*600@60Hz
  11. Dependencies        :                       
  12. Revision            : 0.01 - File Created
  13. Additional Comments : modify the pixer to 800X600@72Hz
  14. ==============================================================================*/
  15. module vga_module(
  16.         input                 i_fpga_clk        ,        //50MHz
  17.         input                 i_rst_n                        ,        //低電平復(fù)位
  18.                        
  19.         output                 o_vga_red                ,
  20.         output                 o_vga_green        ,
  21.         output                 o_vga_blue        ,
  22.         output                 o_vga_hsync        ,        //行同步信號(hào)
  23.         output                 o_vga_vsync                //場(chǎng)同步信號(hào)
  24. );

  25. //================================================================================
  26. // 4、Wire and reg declaration
  27. //================================================================================
  28.         reg[9:0] r_x_cnt;        //行坐標(biāo)(這里包括了行同步、后沿、有效數(shù)據(jù)區(qū)、前沿)
  29.         reg[9:0] r_y_cnt;        //列坐標(biāo)(這里包括了場(chǎng)同步、后沿、有效數(shù)據(jù)區(qū)、前沿)
  30. always @ (posedge i_fpga_clk or negedge i_rst_n)
  31.         if(!i_rst_n)
  32.                 r_x_cnt <= 10'd0;
  33.         else if(r_x_cnt == 10'd1000)
  34.                 r_x_cnt <= 10'd0;                //行計(jì)數(shù)只記到1000
  35.         else
  36.                 r_x_cnt <= r_x_cnt+1'b1;

  37. always @ (posedge i_fpga_clk or negedge i_rst_n)
  38.         if(!i_rst_n)
  39.                 r_y_cnt <= 10'd0;
  40.         else if(r_y_cnt == 10'd665)
  41.                 r_y_cnt <= 10'd0;                //場(chǎng)同步只記到665
  42.         else if(r_x_cnt == 10'd1000)
  43.                 r_y_cnt <= r_y_cnt+1'b1;//每計(jì)數(shù)完一行,場(chǎng)同步就加一
  44.         else
  45.                 r_y_cnt <= r_y_cnt;
  46.                
  47. //================================================================================
  48. // 4、Wire and reg declaration
  49. //================================================================================
  50.         wire w_vga_valid;        //有效數(shù)據(jù)顯示區(qū)標(biāo)志,當(dāng)坐標(biāo)不處于有效顯示區(qū)時(shí),R、G、B三原色信號(hào)接的電平都必須拉底(0)*/
  51. assign w_vga_valid = (r_x_cnt > 10'd180) && (r_x_cnt < 10'd980) //800*600
  52.                                         && (r_y_cnt > 10'd35) && (r_y_cnt < 10'd635);

  53.         wire        [9:0] w_x_pos;
  54.         wire        [9:0]        w_y_pos;        //有效顯示區(qū)坐標(biāo)
  55. assign w_x_pos = r_x_cnt-10'd180;//
  56. assign w_y_pos = r_y_cnt-10'd35;//

  57.         reg         r_vga_hsync;
  58.         reg                r_vga_vsync;
  59. always @ (posedge i_fpga_clk or negedge i_rst_n)
  60.   if (!i_rst_n)
  61.           begin
  62.                         r_vga_hsync <= 1'b0;
  63.              r_vga_vsync <= 1'b0;
  64.      end
  65.   else
  66.           begin
  67.              r_vga_hsync <= r_x_cnt <= 10'd50;  //產(chǎn)生hsync信號(hào)(行同步)0-50
  68.              r_vga_vsync <= r_y_cnt <= 10'd6;   //產(chǎn)生vsync信號(hào)(場(chǎng)同步)0-6
  69.     end

  70. //================================================================================
  71. // 4、Wire and reg declaration
  72. //================================================================================
  73.         //顯示一個(gè)矩形框
  74.         wire a_dis,b_dis,c_dis,d_dis;        //矩形框顯示區(qū)域定位
  75. assign a_dis = ( (w_x_pos>=200) && (w_x_pos<=220) )
  76.                                 &&        ( (w_y_pos>=140) && (w_y_pos<=460) );                               
  77. assign b_dis = ( (w_x_pos>=580) && (w_x_pos<=600) )
  78.                                 && ( (w_y_pos>=140) && (w_y_pos<=460) );
  79. assign c_dis = ( (w_x_pos>=220) && (w_x_pos<=580) )
  80.                                 &&        ( (w_y_pos>140)  && (w_y_pos<=160) );                               
  81. assign d_dis = ( (w_x_pos>=220) && (w_x_pos<=580) )
  82.                                 && ( (w_y_pos>=440) && (w_y_pos<=460) );

  83.         wire e_dis,f_dis,g_dis,h_dis;        //矩形框顯示區(qū)域定位
  84. assign e_dis = ( (w_x_pos>=320) && (w_x_pos<=340) )
  85.                                 &&        ( (w_y_pos>=320) && (w_y_pos<=410) );                               
  86. assign f_dis = ( (w_x_pos>=460) && (w_x_pos<=480) )
  87.                                 && ( (w_y_pos>=320) && (w_y_pos<=410) );
  88. assign g_dis = ( (w_x_pos>=340) && (w_x_pos<=460) )
  89.                                 &&        ( (w_y_pos>320)  && (w_y_pos<=340) );                               
  90. assign h_dis = ( (w_x_pos>=340) && (w_x_pos<=460) )
  91.                                 && ( (w_y_pos>=390) && (w_y_pos<=410) );

  92.         wire i_dis,j_dis,k_dis,l_dis;
  93. assign i_dis = ( (w_x_pos>=320) && (w_x_pos<=340) )
  94.                                 &&        ( (w_y_pos>=210) && (w_y_pos<=290) );                               
  95. assign j_dis = ( (w_x_pos>=460) && (w_x_pos<=480) )
  96.                                 && ( (w_y_pos>=210) && (w_y_pos<=290) );
  97. assign k_dis = ( (w_x_pos>=270) && (w_x_pos<=320) )
  98.                                 &&        ( (w_y_pos>270)  && (w_y_pos<=290) );                               
  99. assign l_dis = ( (w_x_pos>=480) && (w_x_pos<=530) )
  100.                                 && ( (w_y_pos>=270) && (w_y_pos<=290) );

  101. //================================================================================
  102. // 2、output                                                                  
  103. //================================================================================

  104.         assign o_vga_red = w_vga_valid ?        (i_dis | j_dis | k_dis | l_dis): 1'b0;
  105.         assign o_vga_blue = w_vga_valid ?  (a_dis | b_dis | c_dis | d_dis | e_dis | f_dis | g_dis | h_dis ) : 1'b0;
  106.         assign o_vga_green = w_vga_valid ? ~(a_dis | b_dis | c_dis | d_dis | e_dis | f_dis | g_dis | h_dis | i_dis | j_dis | k_dis | l_dis) : 1'b0;          
  107.         assign o_vga_vsync = r_vga_vsync ;
  108.         assign o_vga_hsync = r_vga_hsync ;
  109.        
  110. //================================================================================
  111. endmodule
復(fù)制代碼

全部資料51hei下載地址:
M20_VGA display.zip (4.48 MB, 下載次數(shù): 65)


評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 午夜影院网站 | av二区三区 | 精品一区二区三区在线观看 | www天天操 | 亚洲第一成人影院 | 美国黄色一级片 | 国产精品久久久久久模特 | 日韩精品无码一区二区三区 | 精品国产乱码久久久久久88av | 成人精品在线视频 | 亚洲一区二区三区在线 | 中文字幕乱码一区二区三区 | 欧美午夜视频 | 欧美视频一区二区三区 | 久久中文字幕一区 | 亚洲欧美一区二区三区国产精品 | 国产精品视屏 | 午夜看看| 亚洲人成人一区二区在线观看 | 国产色 | 亚洲欧洲成人av每日更新 | 亚洲一区二区在线电影 | 欧美成人精品在线观看 | 中文字幕高清免费日韩视频在线 | 日韩激情网 | 精品1区| 国产精品久久久久久久久久三级 | 亚洲精品电影在线观看 | 嫩草视频在线看 | 日本三级日产三级国产三级 | 国产美女在线播放 | 日韩国产精品一区二区三区 | 免费观看色 | 日本在线看片 | 久久综合久色欧美综合狠狠 | 欧美精品在线播放 | 国产黄色精品在线观看 | 麻豆久久久9性大片 | 日韩av一区二区在线观看 | 日韩高清国产一区在线 | 亚洲精品一区在线 |