|
除2) ~5 Q5 Q% v# [# R6 s8 \+ U
module div2 (
) I3 n+ y( s X' P/ K) a11 input clk,
L$ i7 {) h4 S. H3 s12 input rst_n,
7 Y2 I* `& C9 V- M- N13 output reg o_clk7 [3 o$ R, r7 s
14 );
( X8 A9 K0 Z$ V n9 i; N5 Y# M15
8 L+ l$ d2 z( [/ G5 b! Y% [( j16 always@(posedge clk or negedge rst_n) begin% Q; @) B& s9 a8 C# p W
17 if (!rst_n)6 c$ B" p" r3 c7 W" T
18 o_clk <= 0;
8 N7 g6 ?4 E" x$ r; w& b19 else
: k3 s3 O! [, M20 o_clk <= ~o_clk;2 ?; Z2 J( V: f, X6 W2 ]) \. P
21 end* }' B# G9 i/ J0 B6 [8 ]
22
1 Q1 C+ H! z: h' P) t23 endmodule# h. J9 H4 Z8 G. p* h; p, i
- o% T ]" ^1 \
不懂這在做什麼?: b3 R- g& Z) M/ ^" {8 t; b& [; G
" {& P! _$ k1 J8 ?, u. j$ }8 }
9 r% U. r1 @+ E1 k! k1 @$ A0 ?
除4( E1 ]& K7 _8 p4 t( k8 d' p
module div4 (9 R5 `0 c' h9 c
11 input clk,
- d, h# F; z1 S* L& i- |+ o12 input rst_n,
% ^! Y$ h" L* r. Q& ^1 w4 D; R7 j13 output reg o_clk
% f4 d' h) E7 a14 );) h, V5 n3 s' ]% E1 t, P
15 ; _- g- W# w. n& q
16 reg [1:0] cnt;$ x5 p }/ i9 o4 c4 C
17
% @( x) w. Q2 b& y" i8 Z18 always@(posedge clk or negedge rst_n) begin
9 O: p+ x5 [! S19 if (!rst_n)
. v. Z, m; e) I+ [: L' W% s8 G20 cnt <= 0;2 E: ~1 ?4 f4 E# }! H. O8 L* n2 }
21 else if (cnt == 3) // 0 ~ 3# q: x1 {+ M2 }3 X. T5 V! L M5 a
22 cnt <= 0;/ N! C/ `/ y4 T6 W0 [6 Y. n
23 else
6 v0 ] j" P, \! ^; f6 |24 cnt <= cnt + 1;
6 w' O* x- Q0 d0 E0 q25 end$ S5 \8 Y) U& o* ~0 Q! A8 c
26
: ?% H$ `/ w+ {, @# n27 always@(posedge clk or negedge rst_n) begin
) o! [- l0 \' q' u9 f28 if (!rst_n)$ }( c" |( @5 E5 X7 c: }) U
29 o_clk <= 0;
, L" o/ ]8 j$ f5 d% a: {# g+ r; ~30 else if (cnt < 2) // 0 ~ 1
/ L9 O, K/ V" w$ h' K: |31 o_clk = 0;
! q7 [7 h1 d) @32 else // 2 ~ 3
; p! {8 b+ z7 f5 a( x. s33 o_clk = 1;
- h4 X s% L7 [( ?34 end q# A- _! r" W! O7 [8 G* k: [
35 endmodule5 f* P0 L0 H1 g8 q
3 t5 s" r! e" Q6 e不知道這些程式的原理 可以講解一下 3Q |
|