|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
任意分频器
1 o6 J$ W- B" o1 L% f$ r5 ~5 ~1 p) q) bmodule frequency_divider_mealy_fsm1s(clk_in, rst, clk_out);
! r" ~9 E6 T' [
1 L; f9 }1 H* Z( n W parameter HW = 3; //输出时钟高电平宽度" k6 a' d" U* B& @4 v; f! J2 Y
parameter LW = 2; //输出时钟低电平宽度
7 D: M7 X$ O+ e1 c 6 m% R! p5 J4 w' K$ U
input clk_in;
6 L+ O, O# {: c) q* y ?; i) o input rst;
! {7 P8 N* l2 i5 B output clk_out;
! O! `2 o! g9 a( ~, I5 m+ w * [7 @4 b f% _- D
`define s0 1'b0 //显式状态机 q$ u7 i v6 u* m. X9 e+ q
`define s1 1'b1
: w1 n, A9 F+ A$ m$ ]
" h8 o! r4 B( U5 l% M4 n reg clk_out;: t" O9 `- G3 v( F1 N0 t
reg [31:0] count;
+ ^6 [. v7 ]# ?) Y3 E# z reg state;
$ d9 k. @$ T( X/ v ! i& s1 h* s/ q, j- U
always @ (posedge clk_in)
3 [8 l- @6 a4 d% C. m# v7 L begin5 F% I9 R; E2 [& Q& r
if (!rst) //同步复位
/ m- S4 ^7 Z- z" P3 c( I* m7 R begin
; |+ d) g3 b9 l3 v# z: r. @ z clk_out <= 1'b0;
' T# F+ \+ @. x$ K2 t count <= 0;
! W D8 x' p0 u( f x8 n# B state <= `s0;
9 |6 `! C; F; o8 a end/ m: O2 a$ L" X; B: h1 p
else3 \! U* b; [% E9 |+ Y8 Z$ z( W
case (state); v/ l/ o- U) o; M& \' o7 R+ W$ Z; q
`s0 : if (count < LW-1); I3 h8 @) d* g C
begin. a8 B0 ?0 n1 t5 Z1 }7 p
count <= count + 1;
1 U& z p7 ?6 `. h state <= `s0; //显式状态) c6 z; f% x5 I6 k# P: a
end7 T( |) r: B1 t# h1 b1 Z2 Z( j7 U8 m3 Z
else
7 x5 W! }, d- b2 P$ u begin
! n+ N& r1 n0 P1 F3 E% L# q count <= 0;2 r: F( P4 J! V" J
clk_out <= 1'b1;
) t* K5 v1 K- R# {$ B% i) v state <= `s1;8 a6 t- D9 M& y% \
end
% P# V5 E! E: [' H; C 3 [, l4 E: H! M; L$ m% p
`s1 : if (count < HW-1)
3 Q* `* g# E y' n1 ?: p begin2 C) G: f3 e- Z+ W4 k: ^1 |8 e) Z1 N
count <= count + 1;6 x2 g# j: K3 r) @7 S% L8 M# d
state <= `s1; //显式状态' J. d$ ]9 S4 y! k6 j1 a: w" {" @
end% R6 O, t9 j% M' F
else
5 L9 _" j: R3 j- `5 w begin% d$ W! c/ m# a7 h1 k* z' r6 _
count <= 0;
" l, D1 s* p* ^% Y: j8 b$ m1 h5 L clk_out <= 1'b0;3 u. c ]/ E3 [5 \3 o9 B. _
state <= `s0;
$ `! [5 n# C/ U2 l end: r8 N7 B# c; H/ D8 K
endcase8 _/ b4 \8 H2 B' E2 q6 W6 y+ O+ ?
end
9 A4 E7 ~9 e. q8 r& S# d9 f' q% b
7 Q A) E) q% H3 C9 Xendmodule
) C4 ?# t) B$ l5 f3 O |
' y' D* p& I* h3 t% m7 G3 x9 c
8 Y# ^3 O$ \# w) v& F: Y5 x) E8 y6 Q2 G. _3 S5 S, @! H8 {/ U: `
i) m& ?, @" B
$ o8 r, I5 v6 H
7 m7 r0 T. h" V% f& Y" E |
4 n7 ^4 A9 T) r- o2 U |
: o) d' E8 U* {) P- P* y9 \; R9 c0 f7 u |
|