|
除2
( f6 [+ F0 [6 G* Q( c* Vmodule div2 (3 W0 Q7 x& m7 l. q( t1 ~0 L
11 input clk,
* U, X$ b+ |% F3 e5 l+ l12 input rst_n,
3 }+ t( z# {3 A( p9 b! C, z: s' O13 output reg o_clk
! K( ~# `8 [; }- W" M14 );7 E, k0 i% N* [
15 1 E3 K% W: Q1 O, ^9 q% E
16 always@(posedge clk or negedge rst_n) begin+ r* V Q W: O. U* `- e
17 if (!rst_n)
' Q+ R: g5 x1 [5 t& h h. V+ f9 N18 o_clk <= 0;
6 g' V( ?1 d. j1 d5 g19 else$ v* @; z% J& Y8 |( |
20 o_clk <= ~o_clk;' P! _& N5 R( N+ g# ?2 U" u
21 end& I0 w, r3 K$ n- }
22
* ^7 M: }% [& a, }23 endmodule- |! j+ D; ^) j! d
0 @, ?. ]* w. ^0 N不懂這在做什麼?
! d4 K* U. ?1 \2 l' }$ A- x( \3 F5 u; a
+ |' b. G4 ^- n除4
% l$ l9 z) c8 ? module div4 (9 |# ]' q# D, V5 N) X
11 input clk,
8 U. W7 A! U8 y8 {; k: f12 input rst_n,! l/ \* R8 a* b3 V) N; P
13 output reg o_clk
6 ?8 v3 J" G! P+ d9 m9 M14 );
! {% T, z; c0 ?3 K" q- t15 7 X% `" N# U4 s* E
16 reg [1:0] cnt;
h/ @6 C- i# Q# x" |17 : f4 \1 F: A# t' l ^3 B6 `
18 always@(posedge clk or negedge rst_n) begin0 }6 p: Q- h3 p" T
19 if (!rst_n)
; D- G6 @/ e( J( Q9 m5 y20 cnt <= 0;
) Q/ y4 z$ x4 e/ G# \21 else if (cnt == 3) // 0 ~ 3
0 e( Z0 V0 e! t) d22 cnt <= 0;. H" D' ?" L( H; s# K+ Z1 i
23 else
: w6 J' p/ ]* W% k0 ^& i24 cnt <= cnt + 1;; V9 }7 V$ B7 P" Q. ~1 p
25 end! |2 b9 v6 r+ _
26
8 i& K8 f, g2 ?& x27 always@(posedge clk or negedge rst_n) begin
" \* y, f% m1 [ q, g5 ]$ X28 if (!rst_n)
6 c3 t/ U7 [, ~/ U29 o_clk <= 0;
3 L. x" O7 L+ V& N1 y+ q7 g30 else if (cnt < 2) // 0 ~ 1' w7 O) L. z( i- C. b; h9 [6 p: B; X
31 o_clk = 0;8 ~# p. O# h8 _5 j: e
32 else // 2 ~ 3
1 e4 I4 Y8 e: {: S7 x33 o_clk = 1;
, @) A- @: v* T2 V7 ^5 o. J34 end% G5 f9 l! Y9 o
35 endmodule' g) E! Q, B, V, x C
) X6 C% }1 G8 [" o2 O# Q+ l& W! z! |
不知道這些程式的原理 可以講解一下 3Q |
|