|
module div_5clk(4 h4 W; E) v+ x/ m6 ?
input clk,! G: l2 q# d3 S7 [+ z. D# `! h
input rst,) {4 ^' U" |8 l9 |: Z" b2 r
0 n7 C' H- b- z. ^3 l9 {output reg clk_out I: M# J. J/ u( d- O6 O, `7 `& r
);
6 m8 @0 S3 S, K+ V$ @( c# n 7 E, D! g; L$ i$ x* _" @% n$ M
reg [3:0] cnt;
! o$ r3 R) g" `( c0 v2 G$ M. y 1 I& `* A0 h+ l" M" m+ s& d+ y
parameter div1 = 1 , div2 = 4; // div1 = 5 / 2-1, div2 = 5 - 1- I! e& b; t# ]1 k3 Q( I
0 |$ p: C5 l8 Z7 l: c
always@(posedge clk or negedge rst)begin
9 n Y6 Y; s) z1 T# T9 I6 }' p* V4 D if(!rst)begin
/ a& N9 R+ f C9 ]7 L* c cnt<=1'b0;* _7 \: Y6 A/ g5 k) p4 [4 Y
end, v1 h0 A7 w- {% f+ a. R
else if(cnt==div2 )begin //div2=3'b100! Y3 W$ y0 N3 ^4 q& v, m
cnt<='b0;2 R- ?" V% V, Y9 o! m# C8 ^! |
end
) Q/ T4 T6 @9 e% E/ t( _, Q else9 s2 Z9 m$ P: g& C
cnt<=cnt+1'b1;
. C& L5 ^7 e. d3 Yend ! x2 v# n: P# t; u: e
& w; n7 V. n5 Y9 Q
always@(posedge clk or negedge rst)begin
% Y, W, R E+ N$ [0 X if(!rst)begin
2 t0 y. x* u4 k; Y" g% z# F' y clk_out<='b0;
/ h0 T& l3 \7 h( E e. \7 { end
3 s9 q" N0 N2 s3 R. O7 o else if(cnt==div1)begin
8 R" z, O( z$ r5 K: V" ]$ m" c4 ?" a clk_out<=~clk_out;
3 |9 G, Z o/ {) @* Z2 \ end
) M: L) K6 P8 A; @ else if(cnt==div2 )begin
6 C+ \0 T& e1 d, v% M clk_out<=~clk_out;' c! F5 r B% G
end1 u* l- Q# _5 e+ `/ v9 c
end
5 V# ?5 \/ S$ g ' h, X4 z8 _3 K) F# U$ W# G
endmodule
/ T9 h+ W1 |3 m9 ]- X4 J8 F( z9 q占空比60% |
|