打印

VGA显示黑屏,漂浮“hz?”字样

[复制链接]
1730|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
bitshiyan|  楼主 | 2013-3-8 12:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 bitshiyan 于 2013-3-8 21:43 编辑

刚开始学FPGA,,,实验了一下vga的程序。。。出现题目所述情况,怎么解??求赐教。。。。。。。module vga_dis(
                        clk,rst_n,
                        hsync,vsync,
                        vga_r,vga_g,vga_b
                );

input clk;                //50MHz     ,,sysclk=100Mhz,这个怎么解?
input rst_n;        //低电平复位
output hsync;        //行同步信号
output vsync;        //场同步信号
output vga_r;
output vga_g;
output vga_b;

//--------------------------------------------------
reg[10:0] x_cnt;        //行坐标
reg[9:0] y_cnt;        //列坐标

always @ (posedge clk or negedge rst_n)
        if(!rst_n) x_cnt <= 11'd0;
        else if(x_cnt == 11'd1039) x_cnt <= 11'd0;
        else x_cnt <= x_cnt+1'b1;

always @ (posedge clk or negedge rst_n)
        if(!rst_n) y_cnt <= 10'd0;
        else if(y_cnt == 10'd665) y_cnt <= 10'd0;
        else if(x_cnt == 11'd1039) y_cnt <= y_cnt+1'b1;

//--------------------------------------------------
wire valid;        //有效显示区标志

assign valid = (x_cnt >= 11'd187) && (x_cnt < 11'd987)
                                        && (y_cnt >= 10'd31) && (y_cnt < 10'd631);

wire[9:0] xpos,ypos;        //有效显示区坐标

assign xpos = x_cnt-11'd187;
assign ypos = y_cnt-10'd31;

//--------------------------------------------------
reg hsync_r,vsync_r;        //同步信号产生

always @ (posedge clk or negedge rst_n)
        if(!rst_n) hsync_r <= 1'b1;
        else if(x_cnt == 11'd0) hsync_r <= 1'b0;        //产生hsync信号
        else if(x_cnt == 11'd120) hsync_r <= 1'b1;

always @ (posedge clk or negedge rst_n)
        if(!rst_n) vsync_r <= 1'b1;
        else if(y_cnt == 10'd0) vsync_r <= 1'b0;        //产生vsync信号
        else if(y_cnt == 10'd6) vsync_r <= 1'b1;

assign hsync = hsync_r;
assign vsync = vsync_r;

//--------------------------------------------------
        //显示一个矩形框
wire a_dis,b_dis,c_dis,d_dis;        //矩形框显示区域定位

assign a_dis = ( (xpos>=200) && (xpos<=220) )
                                &&        ( (ypos>=140) && (ypos<=460) );
                                
assign b_dis = ( (xpos>=580) && (xpos<=600) )
                                && ( (ypos>=140) && (ypos<=460) );

assign c_dis = ( (xpos>=220) && (xpos<=580) )
                                &&        ( (ypos>140)  && (ypos<=160) );
                                
assign d_dis = ( (xpos>=220) && (xpos<=580) )
                                && ( (ypos>=440) && (ypos<=460) );

        //显示一个小矩形
wire e_rdy;        //矩形的显示有效矩形区域

assign e_rdy = ( (xpos>=385) && (xpos<=415) )
                                &&        ( (ypos>=285) && (ypos<=315) );

//--------------------------------------------------
        //r,g,b控制液晶屏颜色显示,背景显示蓝色,矩形框显示红蓝色
assign vga_r = valid ? e_rdy : 1'b0;
assign vga_g = valid ?  (a_dis | b_dis | c_dis | d_dis) : 1'b0;
assign vga_b = valid ? ~(a_dis | b_dis | c_dis | d_dis) : 1'b0;         

endmodule

显示器显示 黑屏,飘飘浮着“Hz?”。。如何解?

相关帖子

沙发
ococ| | 2013-3-8 16:39 | 只看该作者
是你板卡输出的VGA时序不是标准时序,显示器不能正常显示。
例如你要产生1024*768@60的分辨率时序,就需要使用65M的时钟来产生,而且行场的参数也要按照VESA标准来设定。

使用特权

评论回复
评分
参与人数 1威望 +2 收起 理由
bitshiyan + 2 先接受了,求详细赐教
板凳
jlass| | 2013-3-8 17:33 | 只看该作者
估计就如同楼上所说,应该是分辨率没设对

使用特权

评论回复
地板
GoldSunMonkey| | 2013-3-8 21:15 | 只看该作者
ococ 发表于 2013-3-8 16:39
是你板卡输出的VGA时序不是标准时序,显示器不能正常显示。
例如你要产生1024*768@60的分辨率时序,就需要 ...

同意这个意见啊

使用特权

评论回复
5
bitshiyan|  楼主 | 2013-3-8 21:42 | 只看该作者
ococ 发表于 2013-3-8 16:39
是你板卡输出的VGA时序不是标准时序,显示器不能正常显示。
例如你要产生1024*768@60的分辨率时序,就需要 ...

还没能解决,我先附上程序额,求进一步赐教。。。。

使用特权

评论回复
6
ococ| | 2013-3-8 22:41 | 只看该作者
根据你贴的代码,对比VESA标准 可以看出代码是产生一个800*600@72Hz 的图像。
首先你需要确保输入到本模块的clk是50Mhz,另外需要确定你用来显示图像的液晶屏是否支持该分辨率。
如果液晶屏不支持可以找个带VGA接口的显示器来看一下。

使用特权

评论回复
7
bitshiyan|  楼主 | 2013-3-9 12:28 | 只看该作者
ococ 发表于 2013-3-8 22:41
根据你贴的代码,对比VESA标准 可以看出代码是产生一个800*600@72Hz 的图像。
首先你需要确保输入到本模块 ...

好的,,我试一下,谢谢。。。

使用特权

评论回复
8
GoldSunMonkey| | 2013-3-9 21:54 | 只看该作者
可惜没有得到分数啊

使用特权

评论回复
9
bitshiyan|  楼主 | 2013-3-10 14:55 | 只看该作者
GoldSunMonkey 发表于 2013-3-9 21:54
可惜没有得到分数啊

哈,猴哥,这个分数放低了。。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

96

帖子

1

粉丝