Verilog程序
////////// 垂直扫描参数的设定
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// parameter FramePeriod=10'd666;
parameter V_SyncPulse=10'd6;
parameter V_BackPorch=10'd21;
parameter V_ActivePix=10'd604;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////// 水平扫描计数x_cnt只负责计数从0计数计到1040
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// always @ (posedge clk or negedge rst_n)
if(!rst_n) x_cnt <= 1; else if(x_cnt == LinePeriod) x_cnt <= 1;
else x_cnt <= x_cnt+ 1; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////// 水平扫描信号vsync产生 在0到120时为低电平
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// always @ (posedge clk or negedge rst_n)
if(!rst_n) hsync <= 1'b1;
else if(x_cnt == 1) hsync <= 1'b0; //产生hsync信号
else if(x_cnt == H_SyncPulse+1) hsync <= 1'b1;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////// 垂直扫描计数
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// always @ (posedge clk or negedge rst_n)
if(!rst_n) y_cnt <= 1; else if(y_cnt == FramePeriod) y_cnt <= 1;
else if(x_cnt == LinePeriod) y_cnt <= y_cnt+1;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////// 垂直扫描信号hsync产??