⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vga_driver.v

📁 vga的fpga实现
💻 V
字号:
module vga_dirver(reset,clk,mode,vs,hs,blank,r,g,b);
input clk,reset,mode;
output vs,hs,blank,r,g,b;
reg[10:1] h_cnt,v_cnt;
reg[3:1] color;
reg vs,hs;
parameter 
  h_vidio =2'b00,
  h_front =2'b01,
  h_sync  =2'b10,
  h_back  =2'b11;
parameter 
  v_vidio =2'b00,
  v_front =2'b01,
  v_sync  =2'b10,
  v_back  =2'b11;
reg [2:1] h_state,v_state;

assign blank=hs&vs;  //复合消隐信号
assign {r,g,b}=color;

always @(posedge clk)
begin
  if(reset==0)
  begin
    //vs=1;
    //hs=1;
    h_cnt=0;
    v_cnt=0;
  end
  h_cnt=h_cnt+1'b1;
  if(h_cnt==800)    //800个象素,640个有效
    h_cnt=0;
  if (h_cnt==0)       h_state=h_vidio;
  else if(h_cnt==640) h_state=h_front;
  else if(h_cnt==664)  //开始行同步 
  begin 
    h_state=h_sync;
    v_cnt=v_cnt+1'b1;   //行同步来时,场计数器加一
    if(v_cnt==525) v_cnt=0;
  end
  else if(h_cnt==760) h_state=h_back;
  
  if(v_cnt==0) v_state=v_vidio;
  else if(v_cnt==480) v_state=v_front;
  else if(v_cnt==498) v_state=v_sync;
  else if(v_cnt==500) v_state=v_back;

  if(mode==0)  //横彩条
  begin
    if(v_cnt[5:1]<3) color ='b111;
	else if(v_cnt[5:1]<7)color ='b110;
	else if(v_cnt[5:1]<11)color ='b101;
	else if(v_cnt[5:1]<15)color ='b100;
	else if(v_cnt[5:1]<19)color ='b011;
	else if(v_cnt[5:1]<23)color ='b010;
	else if(v_cnt[5:1]<27)color ='b001;
	else color='b000;
  end

  if(mode==1)  //竖彩条
  begin
    if(h_cnt[5:1]<3) color ='b111;
    else if(h_cnt[5:1]<7)color ='b110;
    else if(h_cnt[5:1]<11)color ='b101;
    else if(h_cnt[5:1]<15)color ='b100;
    else if(h_cnt[5:1]<19)color ='b011;
    else if(h_cnt[5:1]<23)color ='b010;
    else if(h_cnt[5:1]<27)color ='b001;
    else color ='b000;
  end
end

always @(h_state or v_state)
begin
  case (h_state)
    h_vidio: hs=0;
    h_front: hs=0;
    h_sync:  hs=1;
    h_back:  hs=0;
  endcase
  case (v_state)
    v_vidio: vs=0;
    v_front: vs=0;
	v_sync:  vs=1;
	v_back:  vs=0;
  endcase
end
endmodule

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -