|
|
module div_5clk(
; ?+ S7 M' y+ Linput clk,3 I! _. J# W! x2 \
input rst,9 B0 ]* [5 X5 j& K1 e/ `
; I1 ~; X$ D. [, H/ }! [
output reg clk_out
) Q; v, d2 L9 t O% b4 `3 n; } );
* I( v1 t( k# q9 J6 K3 R
0 W: ]+ c( h/ f; z. x" Breg [3:0] cnt;
0 M0 K/ Y9 n8 u. e, M5 ~7 V0 I
a" C; t$ o; ` u) Q6 G7 Tparameter div1 = 1 , div2 = 4; // div1 = 5 / 2-1, div2 = 5 - 1
$ u% ]2 _1 ~9 V
& n- f! p! P1 Jalways@(posedge clk or negedge rst)begin
5 G6 p3 d" K- U" u T- M if(!rst)begin
2 \" c5 n0 N% ^, q }# a0 | cnt<=1'b0;
: f# f7 p4 O" _ end l9 F( b+ V+ Q: f7 E( |! p/ o
else if(cnt==div2 )begin //div2=3'b100
4 ~9 [. p. e" o8 n- C cnt<='b0;
8 _. A& p8 v: G6 E8 U end/ a& b8 i7 ?6 k8 \7 r) o- X' z
else
# p1 E: i9 c8 O# } cnt<=cnt+1'b1;% z# y Q0 h' h2 {6 |8 ?
end
. h- F% \) t( G7 X
% E$ }, @ q1 y0 A& X+ |always@(posedge clk or negedge rst)begin4 C, S# Z+ N! }! k1 B; W. J; w
if(!rst)begin
b/ X9 u; j) z clk_out<='b0;
& e( y5 {: T6 t- n% R, w' G end; a \0 h. A' z2 Z+ l) ~9 C) u
else if(cnt==div1)begin
7 l+ m/ n; a; R clk_out<=~clk_out;$ I8 D$ `! @# z+ C! M0 {$ q
end5 V) x$ F& N, C* E7 K
else if(cnt==div2 )begin" D# W; @$ x/ x- b3 \
clk_out<=~clk_out;
' ~ Y& E7 B3 h) K end2 L" X0 T! z/ c
end$ u$ v/ ?! n& s2 G1 ~
0 L( c, S) @! V
endmodule
+ @* V1 Z3 \6 E( {; B; v) l占空比60% |
|