发 帖  
原厂入驻New
[问答] fpga的图像mif文件vga显示问题,出来是白色一片
2247 FPGA开发板
分享
是640*480的60Hz显示,请教为何会这样?谢谢!代码如下


顶层模块module vga_rgb(
            input clk,
                        input rstn,
                        output vsyn,
                        output hsyn,
                        output red,
                        output green,
                        output blue
                        );
/********************************/
wire redq;
wire greenq;
wire blueq;
wire romad;
//syn模块
syn syn(
           .clk(clk),
                   .rstn(rstn),
                   .redin(redq),
                   .greenin(greenq),
                   .bluein(blueq),
                   .vsyn(vsyn),
                   .hsyn(hsyn),
                   .romaddr(romad),  
                   .redout(red),
                   .greenout(green),
                   .blueout(blue)
                   );
//red
red        red_inst (
        .address ( romad),
        .clock ( clk ),
        .q ( redq )
        );


//green
green        green_inst (
        .address ( romad),
        .clock ( clk ),
        .q ( greenq )
        );


//blue
blue        blue_inst (
        .address ( romad),
        .clock ( clk ),
        .q ( blueq )
        );                  
                   endmodule
  时间同步模块
module syn(           input clk,                   input rstn,                   input redin,                   input greenin,                   input bluein,                   output vsyn,                   output hsyn,                  /* output ready,                   output[15:0] hhaddr,      //h  行 v场                   output[15:0] vvaddr,  */                   output[15:0] romaddr,                     output redout,                   output greenout,                   output blueout                   );/********************************************/ reg[15:0] hcnt;  always@(posedge clk or negedge rstn)  IF(!rstn)  hcnt<=15'd0;  else if(hcnt==15'd799)  hcnt<=15'd0;  else  hcnt<=hcnt+1'b1; /**********************************************/ reg[15:0] vcnt;  always@(posedge clk or negedge rstn)  if(!rstn)  vcnt<=15'd0;  else if(vcnt==15'd524)    vcnt<=15'd0;  else if(hcnt==15'd799)  vcnt<=vcnt+1'b1;  /***********************************************/  reg isready;  always@(posedge clk or negedge rstn)  if(!rstn)  isready<=1'b0;  else if((hcnt>=15'd144 && hcnt<15'd764)&&(vcnt>=15'd35 && vcnt<15'd515))  isready<=1'b1;  else  isready<=1'b0;  /***********************************************/    assign vsyn=(vcnt<=15'd2)?1'b0:1'b1;  assign hsyn=(hcnt<=15'd96)?1'b0:1'b1;    /***********************************************以上输出行场同步和准备信号*/reg[15:0]n;    always@(posedge isready or negedge rstn)if(!rstn) n<=16'b0;else if(n==55380)n<=16'b0;else n<=n+1'b1;/****************************************************/   assign romaddr=n;    /**************************************************以上是rom的地址信号*/    assign redout=isready?redin:1'b0;assign greenout=isready?greenin:1'b0;assign blueout=isready?bluein:1'b0;  endmodule            
1
2018-4-2 16:43:19   评论 分享淘帖 邀请回答

撰写答案

你正在撰写答案

如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。

高级模式
您需要登录后才可以回帖 登录 | 注册

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
我要提问
关闭

站长推荐 上一条 /7 下一条

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