blank_gen.v

来自「详细介绍SDRAM原理的中文电子书籍」· Verilog 代码 · 共 127 行

V
127
字号
module blank_gen(	rst,	datack,	hsync,	vsync,	blank_rev,	vsync_rev,	blank_pal,	vsout,	blank_video_send,	pal_ntsc_flag                );input	rst,datack,hsync,vsync;input	pal_ntsc_flag;output	blank_rev;output  vsync_rev;output	vsout;output	blank_video_send;output	blank_pal;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************//*******************************************************/reg	blank_pal;always @ (posedge datack or negedge rst)if(!rst)	blank_pal<=0;else begin//91 897	if(((hcnt_h >=62) || ((!hsync_reg1)&& (hcnt_l < 'd134))) &&  vsout && reset_n)//)// (vcnt_h > 0)&& (vcnt_h < 288) 		blank_pal<=1;	else		blank_pal<=0;endassign	blank_rev =   blank_pal;wire	blank_video_send =  blank_pal;endmodule

⌨️ 快捷键说明

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