Trying to divide 100Mhz clock to 25Mhz for VGA

Guest #3598397
Rate this post
useful
not useful
I came up with this but I am not sure if this will give me 25Mhz and I 
can't think of a way to test it. Can someone tell me if this is right?
1
 signal clock_25MHz : std_logic;
2
  signal counter : integer;
3
  
4
  process(clk,counter,clock_25Mhz)
5
    constant max_count : integer := 3; --divide 100 by 4 (0-3)
6
  begin
7
    if (rising_edge(clk)) then
8
      counter <= counter + 1;
9
        if (counter = max_count) then
10
          clock_25Mhz <= not clock_25Mhz;
11
          counter <= 0;
12
        end if;
13
    end if;
14
  end process;
Guest #3598459
Rate this post
useful
not useful
Altera Quartus will promote clock_25 automatically to the clock network
if clock_25 is used as clock for other parts. No need for BUFG.

But clock_25 should not be a part of the sensitiv list of the process.
Moderator (Company: Titel) #3599337
Rate this post
useful
not useful
... wrote:
> Or he divides by two only...
Or he uses a binary counter and takes the third bit of it:
1
   signal cnt : unsigned( 2 downto 0) := "000";
2
 :
3
   clkcnt <= clkcnt+1 when rising_edge(clk); -- take advantage of the automatic rollover of an unsigned vector
4
   clock_25 <= clkcnt(2);

Achim S. wrote:
> I don't know, if on Altera Quartus this will feed a clock network as
> ...Guest states
And up to now its not known if it is a FPGA at all and if it is one if 
it is from Altera...

Reply

Please log in before posting.

or

Log in with Google account

Registration is free and takes only a minute.

Register now