|
除2
* H; e9 N' i. L* ^. cmodule div2 (' ~4 U* N I# ?2 R4 t( U% m
11 input clk,4 L6 ]; K+ {! q7 |& O3 _7 ^
12 input rst_n,8 S: J& B4 M+ ?9 q: Z
13 output reg o_clk5 u) L( `7 ~# e
14 );. ^7 s& `6 F. X( {* e
15
% K" G t2 ?" O3 {' a# m2 m6 S16 always@(posedge clk or negedge rst_n) begin) _) k( K% z1 |7 V, S
17 if (!rst_n), r" r% ^1 f9 \1 B# Q- W
18 o_clk <= 0;7 ~1 t2 A2 W* D! a# ^2 X/ c
19 else
8 ^0 s8 `3 p0 r20 o_clk <= ~o_clk;
. b9 D8 f3 l& N/ H& F8 P, b* r2 f21 end
& U2 x" d u2 W% X' a22
7 s8 N ^/ v5 v5 [' @- J. @23 endmodule5 {7 F6 C9 @1 r' A! U
/ \& R9 S3 s5 ~& N. ?# C
不懂這在做什麼?6 `. n& t# a" @2 {* T- ]# L; [7 z
8 \$ q' ~/ x4 Y. A
7 Q/ T z/ p: W/ V
除4
& K0 Y; s& K! {( c2 J* y module div4 (
9 N8 s" ?- e+ j& L( u/ [) n11 input clk,
) l/ @% D- f' a: u6 p12 input rst_n,
% y! b8 Y* v- F13 output reg o_clk- s! k( N4 g3 @: p
14 );7 U' @4 q# v5 X0 e+ f
15 6 a7 V$ l) r7 C' f- O
16 reg [1:0] cnt;% A' f* Y# D0 G
17 ( }0 |* \2 h( ]# H# D* `
18 always@(posedge clk or negedge rst_n) begin y( E/ s; M' i0 ]7 `6 d1 o
19 if (!rst_n)6 p+ r' k& m' e0 ]8 o) }( Q
20 cnt <= 0;
/ Q" _% }4 _: } w3 K21 else if (cnt == 3) // 0 ~ 3* G) b2 \* h: m8 }6 s
22 cnt <= 0;
4 s7 D- S) k) ~* ]6 M23 else
) J" ^" ^+ [ M4 L/ ^' C24 cnt <= cnt + 1;7 R* r X9 j5 N& P4 y8 A6 I. z
25 end
$ O7 ~4 ^" X; p( \8 F5 U$ N/ F- F26
* \$ Y* ?+ I5 d4 L6 H27 always@(posedge clk or negedge rst_n) begin: b7 n; h: {2 y4 V( g; c! M* Q
28 if (!rst_n)3 B; M8 @6 B* Y7 M+ f
29 o_clk <= 0;8 K8 n5 ]! f8 G. q* @3 o9 ?
30 else if (cnt < 2) // 0 ~ 1/ O9 u- I2 m3 a% O5 m. W8 i
31 o_clk = 0;
# U. z/ C. N4 K0 O, [32 else // 2 ~ 3
7 a5 c% G( ^8 I; j9 j' C0 F1 `33 o_clk = 1; ) z6 a! L9 V! l% {+ j7 X2 S$ ~
34 end" M: Z+ n( e) K8 \, ]; ^
35 endmodule' D, k7 F2 W: \, A% d2 @4 d* C# Q/ w+ {
4 @; H! e. K) Z; \不知道這些程式的原理 可以講解一下 3Q |
|