找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3421|回復(fù): 3
打印 上一主題 下一主題
收起左側(cè)

這是我做的基于FPGA的VGA顯示源碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
#
ID:425202 發(fā)表于 2018-11-12 19:05 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
里面有詳細的設(shè)計過程包括代碼、visio畫的時序圖


fpga源程序如下:
  1. module vga_ctrl(
  2. sclk,
  3. rst_n,
  4. hsync,
  5. vsync,
  6. rgb_data
  7. );
  8. input sclk;
  9. input rst_n;
  10. output hsync;
  11. output vsync;
  12. output [7:0]rgb_data;


  13. reg clk;
  14. reg hsync;
  15. reg vsync;
  16. reg [9:0]cnt_h;
  17. reg [9:0]cnt_v;
  18. reg [7:0]rgb_data;
  19. /* wire [7:0]out_data;
  20. reg  [13:0]rd_addr; */

  21. /* my_pll        my_pll_inst (
  22.         .inclk0 ( sclk ),
  23.         .c0 ( clk )
  24.         );
  25. */
  26. always@(posedge sclk or negedge rst_n)
  27.     if(rst_n==1'b0)
  28.     clk<=0;
  29.     else
  30.     clk<=~clk;
  31.          
  32.          
  33.          
  34. //cnt_h;
  35. always@(posedge clk or negedge rst_n)
  36.     if(rst_n==1'b0)
  37.         cnt_h<=0;
  38.     else if(cnt_h==799)
  39.         cnt_h<=0;
  40.     else
  41.         cnt_h<=cnt_h+1;
  42.                   
  43. always@(posedge clk or negedge rst_n)
  44.     if(rst_n==1'b0)
  45.         cnt_v<=0;
  46.     else if(cnt_v==524&&cnt_h==799)
  47.         cnt_v<=0;
  48.     else if(cnt_h==799)
  49.         cnt_v<=cnt_v+1;
  50.                   
  51. always@(posedge clk or negedge rst_n)
  52.     if(rst_n==1'b0)  
  53.         hsync<=1;
  54.     else if(cnt_h==95)
  55.         hsync<=1;
  56.     else if(cnt_h==799)
  57.         hsync<=0;
  58.                   
  59. always@(posedge clk or negedge rst_n)
  60.     if(rst_n==1'b0)
  61.       vsync<=1;
  62.     else if(cnt_h==799&&cnt_v==1)
  63.       vsync<=1;
  64.     else if(cnt_h==799&&cnt_v==524)
  65.       vsync<=0;
  66.                
  67.                
  68. always@(posedge clk or negedge rst_n)
  69.     if(rst_n==1'b0)
  70.      rgb_data<=0;
  71.     else if( cnt_h>=143&&cnt_h<243&&cnt_v>=34&&cnt_v<134)
  72.      rgb_data<=8'b0011_1111;
  73.     else if(cnt_h>=143&&cnt_h<783&&cnt_v>=34&&cnt_v<194)
  74.      rgb_data<=8'b111_000_00;
  75.     else if(cnt_h>=143&&cnt_h<783&&cnt_v>=194&&cnt_v<354)
  76.      rgb_data<=8'b000_111_00;
  77.     else if(cnt_h>=143&&cnt_h<783&&cnt_v>=354&&cnt_v<514)
  78.      rgb_data<=8'b000_000_11;
  79.     else
  80.      rgb_data<=8'b0;



  81. /* my_ram        my_ram_inst (
  82.         .clock ( clk ),
  83.         .data ( 0 ),
  84.         .rdaddress ( rd_addr ),
  85.         .wraddress ( 0 ),
  86.         .wren ( 0 ),
  87.         .q ( out_data )
  88.         ); */
  89. /*
  90. always@(posedge clk or negedge rst_n)
  91.     if(rst_n==1'b0)
  92.          rd_addr<=0;
  93.          else if(cnt_h>=143&&cnt_h<243&&cnt_v>=34&&cnt_v<134)
  94.          begin
  95.             if(rd_addr==9999)
  96.               rd_addr<=0;
  97.             else
  98.               rd_addr<=rd_addr+1;
  99.           end
  100.           */
  101. endmodule
復(fù)制代碼

所有資料51hei提供下載:
VGA.zip (4.39 MB, 下載次數(shù): 41)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

板凳
ID:356472 發(fā)表于 2018-12-27 19:33 | 只看該作者
tutuwxy2 發(fā)表于 2018-12-16 22:21
我存過,但顯示的不太穩(wěn)定,正在找原因。

我的已經(jīng)很成功了,顯示圖像和字符
回復(fù)

使用道具 舉報

沙發(fā)
ID:356472 發(fā)表于 2018-12-16 22:21 | 只看該作者
Mr_Dai 發(fā)表于 2018-11-25 17:08
樓主你是把圖片的數(shù)據(jù)存在ROM中的嗎?我現(xiàn)在在學(xué)習(xí)VGA顯示圖像,想和你談?wù)撘幌?/blockquote>

我存過,但顯示的不太穩(wěn)定,正在找原因。
回復(fù)

使用道具 舉報

樓主
ID:420321 發(fā)表于 2018-11-25 17:08 | 只看該作者
樓主你是把圖片的數(shù)據(jù)存在ROM中的嗎?我現(xiàn)在在學(xué)習(xí)VGA顯示圖像,想和你談?wù)撘幌?/td>
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表