|
除2
0 T; a* x$ I2 Y) m" Rmodule div2 (0 F2 B- b5 T( a5 q
11 input clk,4 r/ t l& @% A' j5 D. U$ |; m
12 input rst_n,
. |; q; p5 |- V13 output reg o_clk
' X5 c( F7 l5 h14 );
6 K9 M3 R& g8 V& n15 ( S) Y: _6 h- C) K' j+ _
16 always@(posedge clk or negedge rst_n) begin1 ~: U$ ]8 I" o4 q1 U
17 if (!rst_n)
, ^6 ?" q/ j' c& Y' L1 J18 o_clk <= 0;2 d* |* }* X# A: b; g/ f0 l0 H- }
19 else
' I: _$ R0 h- i8 g20 o_clk <= ~o_clk;4 }' S4 J* {6 `4 H- Z8 H
21 end7 {0 h4 E& H& ~" W
22
, _" c2 h/ o, d H# L: ~7 L5 Q. b23 endmodule8 y m7 i* u. K( ^
3 \5 v7 v+ Y, t' n$ C& ]9 z- U$ ?
不懂這在做什麼?
; \: K$ d& ~5 a h( G5 c$ [( w9 I
) |* s9 l# h( [5 h
除4
6 I; z4 n( g" l1 G+ I% E module div4 (5 t1 g1 Z$ K( O1 p( W
11 input clk,6 U. R$ w7 x- u7 c! W7 h, v6 F# t
12 input rst_n,4 I9 P" O+ I1 \2 P2 V, g
13 output reg o_clk
3 g3 ~+ y' d- Y: N! @0 w; V7 x6 ?14 ); v: X( t% C9 k# F4 u
15
% x0 }1 s; s1 g3 _16 reg [1:0] cnt;
2 _2 k: C2 }7 x; b" u: X17
/ e" s8 o' k0 F; a18 always@(posedge clk or negedge rst_n) begin
2 ]$ I0 d" p- r% |2 u0 ^19 if (!rst_n)
* p+ \- f, U8 [+ e {20 cnt <= 0;
; P# }- @) J* j21 else if (cnt == 3) // 0 ~ 37 J1 Z) {6 z/ o H! g
22 cnt <= 0;
?; T, s3 R& c1 }, n9 G23 else
3 Z! j" y( _6 v24 cnt <= cnt + 1;+ k! E5 c+ {# m1 m4 W" y" t+ w
25 end
) c3 a* s& G% R4 S8 y26 9 U3 }3 c# C1 A3 q$ {% @
27 always@(posedge clk or negedge rst_n) begin( {/ O* n3 T. g6 H2 J8 ~% j0 `
28 if (!rst_n)1 B% B; ]# o* j% F m0 s
29 o_clk <= 0;3 i6 x, h, {& @8 B: N/ X0 ^& X
30 else if (cnt < 2) // 0 ~ 1) x1 }) r. S1 i F' [& j& l; Z8 [
31 o_clk = 0;
; j9 Z6 w/ v, Z8 d4 r32 else // 2 ~ 3
& e S! k9 G& }6 x, c3 O33 o_clk = 1;
3 Z* G" y* _$ l' d0 t34 end7 i$ e$ U+ Z: b4 z1 m- D
35 endmodule8 o/ [% b3 s/ C+ Y- D
! j4 ~9 i+ i, j* n( |8 w
不知道這些程式的原理 可以講解一下 3Q |
|