Altera_Forum
Honored Contributor
15 years agoHow to cut clock speed in half?
Im using the latest web edition of Quartus II and am only a few days old to Verilog HDL. I have been able to program the Cyclone II FPGA to blink an LED, woohoo! I am now trying to use some other code that is the beginning of creating a VGA signal. My problem is that the example code that im using to create H and V sync is designed for a 25mhz processor and my board is using a 50mhz crystal. What do I need to change about the 'input clk' command to cut the clock rate in half?
Thanks Jason
module hvsync_generator(clk, vga_h_sync, vga_v_sync, inDisplayArea, CounterX, CounterY);
input clk;
output vga_h_sync, vga_v_sync;
output inDisplayArea;
output CounterX;
output CounterY;
//////////////////////////////////////////////////
reg CounterX;
reg CounterY;
wire CounterXmaxed = (CounterX==10'h2FF);
always @(posedge clk)
if(CounterXmaxed)
CounterX <= 0;
else
CounterX <= CounterX + 1;
always @(posedge clk)
if(CounterXmaxed) CounterY <= CounterY + 1;
reg vga_HS, vga_VS;
always @(posedge clk)
begin
vga_HS <= (CounterX==6'h2D); // change this value to move the display horizontally
vga_VS <= (CounterY==500); // change this value to move the display vertically
end
reg inDisplayArea;
always @(posedge clk)
if(inDisplayArea==0)
inDisplayArea <= (CounterXmaxed) && (CounterY<480);
else
inDisplayArea <= !(CounterX==639);
assign vga_h_sync = ~vga_HS;
assign vga_v_sync = ~vga_VS;
endmodule