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

Subversion Repositories pwm

[/] [pwm/] [trunk/] [RTL/] [down_clocking_even.v] - Blame information for rev 2

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

Line No. Rev Author Line
1 2 m99
/*Author: Zhuxu
2
        m99a1@yahoo.cn
3
Down clocking module
4
Output clock frequency is the original frequency divided by an even number
5
*/
6
module  down_clocking_even(
7
input   i_clk,
8
input   i_rst,
9
input   [15:0]i_divisor,
10
output  o_clk
11
);
12
 
13
wire    [15:0]divisor;
14
wire    borrow;
15
 
16
minus_one       minus_one_0(
17
i_divisor,
18
divisor,
19
borrow
20
);
21
 
22
wire    go;
23
assign  go=((i_divisor!=0)&&i_rst);
24
reg     [15:0]ct;
25
reg     clk;
26
always@(posedge i_clk or i_rst)
27
        if(!i_rst)begin
28
                ct<=0;
29
                clk<=0;
30
        end
31
        else if(go)begin
32
                if(ct>=divisor)begin
33
                        ct<=0;
34
                        clk<=~clk;
35
                end
36
                else ct<=ct+1;
37
        end
38
assign  o_clk=go?clk:i_clk;
39
endmodule

powered by: WebSVN 2.1.0

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