|
除21 \6 X# B9 ^. k- x' J
module div2 (
) y, M3 y5 c: t* }* ]; @11 input clk,( u7 x2 X- |( ~! R) C6 i; P0 @
12 input rst_n,( _5 w ~1 c9 B$ H3 \
13 output reg o_clk$ u4 j! H$ m* f- M5 E- w! N0 h
14 );
; F/ `6 v0 a% B15
, |' x7 \6 W& N/ \0 y2 l4 f' F16 always@(posedge clk or negedge rst_n) begin- E0 _5 k8 r% U, ~ l$ {7 J
17 if (!rst_n)
% i8 Z; r- a5 ?18 o_clk <= 0;
7 o X) j+ m& j$ L" k( S19 else
% y K8 K6 h# l, `( a20 o_clk <= ~o_clk; c" L. e; B# F5 ]
21 end
3 D( T/ e7 q+ P+ g4 b4 g& [. Y N22
3 P8 y/ [. t2 U3 j) w/ _ @23 endmodule
5 ^9 Y- \! {! h8 T/ A9 B
; c3 p9 {5 ~% X5 I7 X* F- L# K% ?不懂這在做什麼?+ W; l! ~- h2 W
$ U& S" N/ ?3 q( g6 |2 d
! ~! v+ B+ w' f! x
除4
* ?: N. ^ k* [0 G& d F Q module div4 (
9 m7 [, |. V! e: @! m11 input clk,
7 p) B5 N( t' P9 V! [& O- C2 y; p/ K12 input rst_n,. q9 X: {3 t# i" n* v6 C2 f
13 output reg o_clk
# u8 T r9 p/ t/ O' i, l14 );
. ^9 k ], ]9 {+ d15
2 h+ J! I; l F( t/ X16 reg [1:0] cnt;
; z3 A6 W$ ?: G S17 ' p! N/ A; O( `8 _6 P
18 always@(posedge clk or negedge rst_n) begin
% r, ^ \, ?: W+ ~19 if (!rst_n)
5 h+ h' R! Z: O0 b( s5 ]20 cnt <= 0;
6 l) y: E5 Q, Y1 E' _5 n21 else if (cnt == 3) // 0 ~ 32 t$ y2 l9 t; {9 j6 s4 ]9 f0 ^
22 cnt <= 0;9 Y% i; H+ i/ G5 @. W
23 else7 P- q3 I3 m8 r
24 cnt <= cnt + 1;- D/ j' \$ a2 S* A
25 end
% M6 K4 ?, N+ c0 ~( C' }26
. U9 w' t& a* Z( ~27 always@(posedge clk or negedge rst_n) begin7 D2 Y' ^8 X+ Y8 D; ~
28 if (!rst_n)
5 k/ U/ l# B+ N. y( X* S, ]4 U; e29 o_clk <= 0;! _3 k7 P0 a7 c' Q
30 else if (cnt < 2) // 0 ~ 13 S( E' `; l6 |" z# Q" _2 l/ ]& s
31 o_clk = 0;' v$ [* ~2 s! I) n0 p6 u2 V K, S
32 else // 2 ~ 3$ u/ _" @' ^1 }
33 o_clk = 1;
. q# G5 i# v# w' v5 e34 end# M8 t7 W3 u- r: P- }$ x+ ~$ y7 U
35 endmodule
& ^0 x3 n# b7 _& Z$ w, h8 J; v$ r' Y, B( b
不知道這些程式的原理 可以講解一下 3Q |
|