|
module div_5clk(, y/ y P \# |$ ^/ G) L/ w+ a
input clk,
4 |8 T3 Q7 y0 M* ~& S/ Oinput rst,
% n2 \6 p7 V" j8 V: T 5 t- z9 ~1 e9 `( K+ B
output reg clk_out
, ~4 S* E: J8 n [ );1 b4 |# x3 N6 {0 ~7 H7 s8 e
' A3 ^7 x2 w1 K+ p5 Z6 j, S
reg [3:0] cnt;. E+ G, m/ D1 C* d' [7 l# y6 b$ S
9 `3 W4 ]( X" L1 m
parameter div1 = 1 , div2 = 4; // div1 = 5 / 2-1, div2 = 5 - 1
5 L& S1 ]& L1 ^$ f/ L
) H Z0 F. A9 ]$ U2 s" _always@(posedge clk or negedge rst)begin
. J2 P) B8 E0 s% Y$ e# d if(!rst)begin; D" w* F- A/ }" u3 C
cnt<=1'b0;
# z; d! k C# n$ @9 J% V end, k) c$ X) A c) C2 ?
else if(cnt==div2 )begin //div2=3'b100
1 A3 b% u( R6 n. o cnt<='b0;
4 y: r* s$ t. K+ k" D: z7 i& B& T9 N end: y, d4 H8 c- A- Q3 s& f; k
else- n! y) B( K5 G& R1 ^" z$ A0 d4 T
cnt<=cnt+1'b1;
: x1 [, r1 {- q# ~end % N+ j+ C! X" v7 ]2 b" G/ e
$ c- H6 J# I4 B, c5 o
always@(posedge clk or negedge rst)begin
3 [, o p) Y3 T* J0 S! Q/ H" T if(!rst)begin
7 k* R( a1 W: `9 [2 U5 Y n clk_out<='b0;
) ]' a- I/ P+ P3 |6 f7 J" J; G end2 Q) B9 j( P$ E$ Z( t
else if(cnt==div1)begin
5 o( ~8 }& K. v4 q' s. S4 h clk_out<=~clk_out;/ u& O- |0 O8 H; g, r% I4 a# | d/ w
end6 M/ R1 ?: O! R; Z) r
else if(cnt==div2 )begin# Y# L1 H. h3 g0 J" |: `+ f
clk_out<=~clk_out;" V& x% M8 H/ b& Q
end4 Z0 x7 d" P$ T. U6 K+ Z
end! K) e, M* b) z; v
+ t1 I2 O* x$ e1 c2 `4 n' i
endmodule6 C3 G |9 i* e& F6 M' [
占空比60% |
|