|
module div_5clk(
9 v6 e& v) a4 t6 s8 qinput clk,
" K1 a# |& P9 Q& Y" |( ginput rst,
: b+ q$ g1 ^" a2 T2 {. \+ Q , r0 H# o1 `1 I) h2 ^5 j
output reg clk_out
m" i( ^8 d' N" W+ u4 E );( n/ B2 `6 L; @& c
" _% Y3 N, Y! m7 x$ ^reg [3:0] cnt;+ I( d) }6 K. f* k/ L
+ T/ K4 k4 [: m5 }1 T* r
parameter div1 = 1 , div2 = 4; // div1 = 5 / 2-1, div2 = 5 - 1
2 L+ ?" W- d- H8 h6 T! R3 ?3 D . D0 W: D! z `6 R
always@(posedge clk or negedge rst)begin
& P* c0 m6 [( U, w! N if(!rst)begin
, N" \6 k, `1 H cnt<=1'b0;" p3 j* g- p! A: h9 J: i
end; y8 S9 m; t7 V+ A6 b
else if(cnt==div2 )begin //div2=3'b100. ]9 z7 H% c) T
cnt<='b0;
/ n! ]: d) s- Y5 f3 x$ g) q8 @ end
( y! |4 M% _. C& k3 O8 e: u else0 l: c& G" f, V
cnt<=cnt+1'b1;1 g; {0 X/ k& o4 G
end ' X& V. Z& O. G9 m9 ]
# U8 ?% m/ e7 n6 e. t- A+ F
always@(posedge clk or negedge rst)begin, B2 r' g' @$ N2 a( ?# m0 R
if(!rst)begin
7 O* G( \: m- w4 I9 Z: L( O }; |9 M clk_out<='b0;8 L, V' T" [1 x6 l" I5 F0 E( I
end
8 {% W' n# [0 g: Q D else if(cnt==div1)begin8 M3 Y, k0 X5 `7 D# @- g. _
clk_out<=~clk_out;
; d0 Q& Y, d! V% f end
1 ~1 x* s, [$ Z0 C& N else if(cnt==div2 )begin
7 w2 o8 \% z9 R( o8 ~ clk_out<=~clk_out;
; D1 {+ U. b8 ?" O% A1 A8 J/ \9 k end
1 Y5 \/ z& w, y3 @4 Iend
. l' p# J) s9 K+ H2 T( [: J* P # f7 F q" y) X1 i/ ?. k
endmodule
8 b9 f) ]5 r- X+ U0 B4 p占空比60% |
|