OpenCores
URL https://opencores.org/ocsvn/freq_div/freq_div/trunk

Subversion Repositories freq_div

[/] [freq_div/] [trunk/] [rtl/] [divider.v] - Blame information for rev 5

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 joecrop
 
2
`include "defines.v"
3
 
4 4 joecrop
module divider(in, out, N, reset);
5 2 joecrop
 
6 4 joecrop
        input in;                               // input clock
7
        input [`SIZE-1:0] N;     // the number to be divided by
8
        input reset;                    // asynchronous reset
9
        output out;                             // divided output clock
10 2 joecrop
 
11 4 joecrop
        wire out_odd;                   // output of odd divider
12
        wire out_even;                  // output of even divider
13
        wire not_zero;                  // signal to find divide by 0 case
14
        wire enable_even;               // enable of even divider
15
        wire enable_odd;                // enable of odd divider
16 2 joecrop
 
17 4 joecrop
        assign not_zero = | N[`SIZE-1:1];
18 2 joecrop
 
19 4 joecrop
        assign out = (out_odd & N[0] & not_zero) | (out_even & !N[0]);
20 3 joecrop
        //assign out = out_odd | out_even;
21 4 joecrop
        assign enable_odd = N[0] & not_zero;
22
        assign enable_even = !N[0];
23 2 joecrop
 
24 4 joecrop
        // Even divider
25
        even even_0(in, out_even, N, reset, not_zero, enable_even);
26
        // Odd divider
27
        odd odd_0(in, out_odd, N, reset, enable_odd);
28 2 joecrop
 
29
endmodule //divider

powered by: WebSVN 2.1.0

© copyright 1999-2025 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.