|
除2* Y/ J+ I0 w* R& S% k9 j( p4 J+ A
module div2 (3 b* b8 p3 Z3 i, _
11 input clk,- F3 u- c+ [- n% o
12 input rst_n,
* q1 V# v6 @6 r# A13 output reg o_clk9 i0 b% D- i3 ^
14 );
, o# J6 X" J7 a15 6 \# \, |* c8 C5 G4 x& C
16 always@(posedge clk or negedge rst_n) begin
1 Y" p/ X( c* l, z& ~17 if (!rst_n)
9 R# w4 K9 G5 B- L18 o_clk <= 0;
; p. V) J( f! ~19 else A9 D0 h7 Z% q( v3 y
20 o_clk <= ~o_clk;- J5 c* _" q% a2 I7 h* R( o
21 end, K: T+ W. z1 M$ l: i) C4 Y& h
22
' H7 G* ^5 L1 ]( d8 c8 u2 }7 x: _23 endmodule& m& a7 o& D! r9 W* k4 R* K8 S# X
( L- j) {! C4 A" p+ s5 H
不懂這在做什麼?
0 u! Z! _/ }+ D6 n" g& C' K9 B# n5 G( i1 Z% m: a$ F4 W6 [2 w3 d
8 t' @5 v" K# C' y8 q/ O
除44 d/ n- u9 ^. J; y8 Z- J9 V
module div4 (; }. @* e0 K! ^4 T3 L
11 input clk,) |# y; x4 P: r6 H1 Y; L* |4 x; U
12 input rst_n,: ~& I7 j* W; b4 E" m
13 output reg o_clk
, y0 O6 ~* W% }' Q/ C14 );
4 ?: f6 a! h2 V, c: y$ `6 v15
7 Y, D) r. W( F8 M, h16 reg [1:0] cnt;7 W8 q1 i8 J3 \) ]
17 6 g: L) A- J s9 B1 j# F
18 always@(posedge clk or negedge rst_n) begin% Q3 S+ Z9 P' t `) i9 p
19 if (!rst_n)
! y3 c" t# s& Y) \; G) a7 z4 ]20 cnt <= 0;
5 I4 E" g: v$ s+ k21 else if (cnt == 3) // 0 ~ 35 B9 P/ G6 y+ w0 U& Q& S3 w
22 cnt <= 0;0 Z/ Z1 b& v1 k4 q$ W
23 else4 i, j% X0 a- c: T- q8 ~
24 cnt <= cnt + 1;% H2 d! ~2 {" ~* `! g { f
25 end
5 P7 [+ T! Y8 Z' N/ W. s2 i) I26 & k& Z4 T: g( l4 c) r2 k
27 always@(posedge clk or negedge rst_n) begin
7 h: E2 |* g4 ?/ b# s6 O28 if (!rst_n)8 U: |- m: }0 g" y& E6 l8 Y+ @% s% I
29 o_clk <= 0;
7 W! K& d# @& {! \9 F30 else if (cnt < 2) // 0 ~ 1
8 l0 }) ?/ h1 a# a1 N2 S9 w. h31 o_clk = 0;
; c( q! E8 c3 P- \9 |32 else // 2 ~ 3
0 }; q! Y" R6 m. a33 o_clk = 1;
+ [9 S& x* Y e: D. E34 end* |3 I8 m; Q3 O& m$ r6 g) c# ?0 {
35 endmodule. x) l. u) [+ }; m, Y
# f" { h' h C" _不知道這些程式的原理 可以講解一下 3Q |
|