搜索
bottom↓
回复: 3

我在用FPGA做VGA驱动屏幕时,屏幕始终是黑色的。

[复制链接]

出0入0汤圆

发表于 2016-10-14 21:46:52 | 显示全部楼层 |阅读模式
本帖最后由 thy110 于 2016-10-14 21:48 编辑

我的原理图如图所示



实验现象是屏幕一直是黑色,没有提示““没有信号输入”。求助
我的驱动程序如下:
1、驱动ADV7123、产生行信号和列信号

  1. module LCD_VS_HS(clk,rst_n,VGA_ACT,HS,VS,VGA_CLk,VGA_SYNC_N,VGA_BLANK_N,ypos,xpos);//  600 800
  2. `include "LCD_Parament.v"
  3. input clk,rst_n;

  4. output VGA_ACT;
  5. output HS,VS;
  6. output VGA_CLk,VGA_SYNC_N,VGA_BLANK_N;
  7. output [10:0] ypos,xpos;

  8. reg [10:0] Hcnt,Vcnt;
  9. reg HS,VS;

  10. reg [10:0] ypos;
  11. reg [10:0] xpos;
  12. reg HACT,VACT;


  13. always @(posedge clk or negedge rst_n)
  14. begin
  15.         if(!rst_n)
  16.         begin
  17.                 Hcnt <= 11'd0;
  18.                 HS <= 1'b0;
  19.                 xpos <=11'd0;
  20.                 HACT <= 1'b0;
  21.         end
  22.         else
  23.         begin
  24.                 if(Hcnt == (`VGA_HTOTAl-1))Hcnt <= 11'd0;
  25.                 else Hcnt <= Hcnt + 1'b1;
  26.                
  27.                 if(Hcnt <= (`VGA_HSYNC-1))  HS <= 1'b0;
  28.                 else HS <= 1'b1;
  29.                
  30.                 if((Hcnt > (`VGA_HSYNC + `VGA_HBACK -1)) && (Hcnt <= (`VGA_HSYNC + `VGA_HBACK + `VGA_HACT -1)))
  31.                 begin
  32.                         xpos <= Hcnt-(`VGA_HSYNC + `VGA_HBACK);
  33.                         HACT <= 1'b1;
  34.                 end
  35.                 else
  36.                 begin
  37.                         xpos  <=11'd0;
  38.                         HACT <= 1'b0;
  39.                 end               
  40.         end
  41. end

  42. always @(posedge clk or negedge rst_n)
  43. begin
  44.         if(!rst_n)
  45.                 begin
  46.                 Vcnt <=11'd0;
  47.                 ypos <= 11'd0;
  48.                 VACT <=1'b0;
  49.                 VS <= 1'b0;
  50.                 end
  51.         else
  52.         begin
  53.                 if(Hcnt == (`VGA_HTOTAl-1))       
  54.                         Vcnt <= Vcnt + 1'b1;
  55.                 else if(Vcnt == (`VGA_TOTAL-1))
  56.                         Vcnt <= 11'd0;
  57.                
  58.                 if(Vcnt <= (`VGA_VSYNC-1)) VS <= 1'b0;
  59.                 else  VS <= 1'b1;
  60.                
  61.                 if((Vcnt > (`VGA_VSYNC + `VGA_VBACK -1)) && (Vcnt <= (`VGA_VSYNC + `VGA_VBACK + `VGA_VACT -1)))
  62.                 begin
  63.                         ypos <= Vcnt -(`VGA_VSYNC + `VGA_VBACK );
  64.                         VACT <= 1'b1;
  65.                 end
  66.                 else
  67.                 begin
  68.                         ypos <= 11'd0;
  69.                         VACT <= 1'b0;
  70.                 end
  71.         end
  72. end

  73. assign VGA_ACT = HACT && VACT;
  74. assign VGA_CLk = clk;
  75. assign VGA_BLANK_N = HS & VS;
  76. assign VGA_SYNC_N = 1'b0;
  77. endmodule
复制代码


2、颜色生成
  1. module LCD_Display(clk,rst_n,VGA_ACT,xpos,ypos,R,G,B);
  2. `include "LCD_Parament.v"
  3. input clk,rst_n;
  4. input [10:0] xpos,ypos;
  5. input  VGA_ACT;

  6. output [7:0] R,B,G;

  7. reg [23:0] RGB_data;

  8. always @(posedge clk or negedge rst_n)
  9. begin
  10. if(!rst_n)
  11.         RGB_data <= 24'h000000;
  12. else
  13.         begin
  14.         if(ypos>=0 && ypos < (`LCD_YPOS/8)*1)
  15.                 RGB_data <= `RED;
  16.         else if(ypos>=(`LCD_YPOS/8)*1 && ypos < (`LCD_YPOS/8)*2)
  17.                 RGB_data <= `GREEN;
  18.         else if(ypos>=(`LCD_YPOS/8)*2 && ypos < (`LCD_YPOS/8)*3)
  19.                 RGB_data <= `BLUE;
  20.         else if(ypos>=(`LCD_YPOS/8)*3 && ypos < (`LCD_YPOS/8)*4)
  21.                 RGB_data <= `WITHE;
  22.         else if(ypos>=(`LCD_YPOS/8)*4 && ypos < (`LCD_YPOS/8)*5)
  23.                 RGB_data <= `BLACK;
  24.         else if(ypos>=(`LCD_YPOS/8)*5 && ypos < (`LCD_YPOS/8)*6)
  25.                 RGB_data <= `YELLOW;
  26.         else if(ypos>=(`LCD_YPOS/8)*6 && ypos < (`LCD_YPOS/8)*7)
  27.                 RGB_data <= `CYAN;
  28.         else
  29.                 RGB_data <= `MAGENTA;
  30.         end
  31. end


  32. assign R = RGB_data[23:16];
  33. assign G = RGB_data[15:8];
  34. assign B = RGB_data[7:0];

  35. endmodule

复制代码



3、顶层

  1. module VGA600_800(clk,rst_n,R,G,B,VGA_CLk,VGA_SYNC_N,VGA_BLANK_N,HS,VS);
  2. input clk,rst_n;

  3. output [7:0] R,G,B;
  4. output HS,VS;
  5. output VGA_CLk,VGA_SYNC_N,VGA_BLANK_N;

  6. wire VGA_ACT;
  7. wire xpos,ypos;
  8. wire VGA40MHZ;
  9. wire locked;

  10. VGA_40MHZ u1(.areset(!rst_n),.inclk0(clk),.c0(VGA40MHZ),.locked(locked));

  11. LCD_VS_HS VSHS(.clk(VGA40MHZ),.rst_n(rst_n),.VGA_ACT(VGA_ACT),.HS(HS),.VS(VS),
  12.                                         .VGA_CLk(VGA_CLk),.VGA_SYNC_N(VGA_SYNC_N),.VGA_BLANK_N(VGA_BLANK_N)
  13.                                         ,.ypos(ypos),.xpos(xpos));

  14.                                        
  15. LCD_Display Display(.clk(VGA40MHZ),.rst_n(rst_n),.VGA_ACT(VGA_ACT),.xpos(xpos),.ypos(ypos),.R(R),.G(G),.B(B));


  16. endmodule
复制代码


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2016-10-14 22:02:43 | 显示全部楼层
要是有示波器就好了,看行场信号,另外要查你显示器分辨对应的行场脉冲时正脉冲还是负脉冲,别反

出0入0汤圆

 楼主| 发表于 2016-10-15 09:25:52 | 显示全部楼层
NJ8888 发表于 2016-10-14 22:02
要是有示波器就好了,看行场信号,另外要查你显示器分辨对应的行场脉冲时正脉冲还是负脉冲,别反 ...

找到问题所在了,ADV7123的BLANK_N信号,网上大多数讲的都是行信号和列信号的与,但是我试了不行,实际上是行信号数据有效区域和列信号有效区域的与,我修改后现在可以了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入91汤圆

发表于 2016-10-15 09:40:37 | 显示全部楼层
thy110 发表于 2016-10-15 09:25
找到问题所在了,ADV7123的BLANK_N信号,网上大多数讲的都是行信号和列信号的与,但是我试了不行,实际上 ...

black 还有 en信号  不同的模块不一样的
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-25 20:35

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表