📄 blank_gen.v
字号:
module blank_gen( rst, datack, hsync, vsync, blank_rev, vsync_rev, vsout, blank_video_send );input rst,datack,hsync,vsync;output blank_rev;output vsync_rev;output vsout;output blank_video_send;reg blank_rev_svga;wire blank_rev;reg vsync_rev;reg vsout;reg [11:0] hcnt_h,vcnt_h,hcnt_l,vcnt_l;reg hsync_reg1,hsync_reg2,vsync_reg1,vsync_reg2;always @ (posedge datack) begin hsync_reg1 <= hsync; hsync_reg2 <= hsync_reg1; vsync_reg1 <= vsync; vsync_reg2 <= vsync_reg1; end reg reset_n;always @ (posedge datack or negedge rst)if(!rst) reset_n <= 0;else if(!vsync_reg1 && vsync) reset_n <= 1; always @ (posedge datack or negedge rst)if(!rst) vcnt_h <= 0;else if(vsync_reg1) begin if(hsync_reg1 & !hsync_reg2) vcnt_h <= vcnt_h + 1; endelse vcnt_h <= 0;reg [7:0] vcnt_h_n;always @ (posedge datack or negedge rst)if(!rst) vcnt_h_n <= 0;else if(vsync_reg1) begin if(!hsync_reg1 & hsync_reg2) vcnt_h_n <= vcnt_h_n + 1; endelse vcnt_h_n <= 0; always @ (posedge datack or negedge rst)if(!rst) vcnt_l <= 0;else if(!vsync_reg1) begin if(hsync_reg1 & !hsync_reg2) vcnt_l <= vcnt_l + 1; endelse vcnt_l <= 0;always @ (posedge datack or negedge rst)if(!rst) vsync_rev <= 0;else if((vcnt_l<'d4 && !vsync_reg1) || (vcnt_h>'d0)) vsync_rev <= 1;else vsync_rev <= 0;always @ (posedge datack or negedge rst)if(!rst) vsout <= 0;else if((vcnt_l<'d1 && !vsync_reg1) || (vcnt_h>'d2)) vsout <= 1;else vsout <= 0; always @ (posedge datack or negedge rst)if(!rst) hcnt_h <= 0;else if(hsync_reg1) hcnt_h <= hcnt_h + 1;else hcnt_h <= 0;always @ (posedge datack or negedge rst)if(!rst) hcnt_l <= 'd0;else if(!hsync_reg1) hcnt_l <= hcnt_l + 1;else hcnt_l <= 'd0; /*******************************************************//***********Generate Blanks for SVGA 800*600************//*******************************************************/always @ (posedge datack or negedge rst)if(!rst) blank_rev_svga<=0;else begin//91 897 if(((hcnt_h >=28) || ((!hsync_reg1)&& (hcnt_l < 'd112))) && vsout && reset_n)//)// (vcnt_h > 0)&& (vcnt_h < 288) blank_rev_svga<=1; else blank_rev_svga<=0;endreg blank_video_send;always @ (posedge datack or negedge rst)if(!rst) blank_video_send<=0;else begin//91 897 if( (hcnt_h <= 'd1080) && vcnt_h_n>'d1 && vcnt_h_n<'d242 && reset_n) blank_video_send<=1; else blank_video_send<=0;endassign blank_rev = blank_rev_svga ;endmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -