|
除2/ N1 h% M s( G# s* |: f! p7 p
module div2 (, W+ b* {7 a1 l$ ?' C
11 input clk,: T- }# W. M( b. v8 |
12 input rst_n,
; | B7 T" I3 v2 ?$ p13 output reg o_clk
6 h5 F, x7 e7 ~" G( e- a* _1 W. V* F: c3 _14 );* d% e3 p: G; j U
15 0 |2 W3 L& [7 c9 n: l! p
16 always@(posedge clk or negedge rst_n) begin
8 W6 e! O' `6 v% Q9 _17 if (!rst_n)) j1 U( `9 E$ G- @( t1 F; G: v
18 o_clk <= 0;: M2 D8 n" |" B( z0 D
19 else
+ X8 r6 r9 y# R' T" U( c+ \! V20 o_clk <= ~o_clk;
* Y. P( u- I8 k2 ~. q- k21 end
; g( r+ \$ }! x22 ' K7 ?% R7 d7 @( _) ]0 L9 }
23 endmodule7 I+ e2 V9 c! K5 w" O
* T3 ^2 w+ a/ Z- d7 J8 B. _( o不懂這在做什麼?
0 N8 e) W+ P. J T- P
( ?: v( E1 x h
3 p8 A5 V: \+ t除4
" k6 g K- _5 K+ q' t module div4 (
/ ?2 O% o1 Y2 B11 input clk,
3 Q: w+ o; g# h! ]12 input rst_n,
) ?- A- h: M1 U" f( `" g13 output reg o_clk8 f; M% ]* F* p' L& L, h
14 );; T8 h$ w; Q7 A% {; B/ W( {
15
6 ~% Q, m8 p+ s16 reg [1:0] cnt;, c$ C5 r% R" H/ m! l/ c d
17
I- \5 N- r# a; b. A7 h) z" ]18 always@(posedge clk or negedge rst_n) begin6 k# N% p8 J( Y, @ |
19 if (!rst_n)4 e2 I) E4 o' |7 u2 m
20 cnt <= 0;
, g0 y4 _/ r$ C, a0 k [$ l" l/ l C: C21 else if (cnt == 3) // 0 ~ 3
0 ^, v/ u. [/ u' p( ]22 cnt <= 0;; H! b, L @6 K) e1 z9 u" {1 L
23 else5 z% q5 Y' c/ X. A/ R
24 cnt <= cnt + 1;/ R0 z0 B' Q4 m
25 end0 _% r9 k6 [! P; I% M& A
26 * Z5 ]4 f+ ^$ R0 {
27 always@(posedge clk or negedge rst_n) begin
, m$ h/ i: r8 ~8 v7 M" l- T28 if (!rst_n)9 S s2 P7 {& r# ]
29 o_clk <= 0;# h+ ~0 \2 c3 j0 z4 G% V( R2 n
30 else if (cnt < 2) // 0 ~ 1
0 R/ r5 N1 h! L31 o_clk = 0;' x5 R! n* E9 T4 |, h
32 else // 2 ~ 3
: N, S- S" Q* q5 Q0 [ b33 o_clk = 1; 3 B) M E7 p4 x# Z9 b. z2 t' I
34 end
' a. F" g, t% h* K: A- P35 endmodule* v% \3 Z7 W; q0 G9 j
* |2 |) f6 z' @* g! ?0 [8 M( I
不知道這些程式的原理 可以講解一下 3Q |
|