|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
任意分频器
% |0 J" ?, I+ u1 g) D6 Z- _module frequency_divider_mealy_fsm1s(clk_in, rst, clk_out);
$ }3 h# Z0 w2 m" d: @: f4 m3 S- F& n/ P+ W5 N- P
parameter HW = 3; //输出时钟高电平宽度+ J! Y n- w, L4 F2 b7 a
parameter LW = 2; //输出时钟低电平宽度
G1 c% H1 L. V" _9 f- s w% W 0 T" f- P& o7 v+ ~
input clk_in;4 m P* N( o/ b( T
input rst;
; z' d5 F- U) _) j9 @$ S output clk_out;
0 b4 O! _1 V2 H: l. q7 f3 l : c1 e; M' [- h0 f7 I' C/ b3 P
`define s0 1'b0 //显式状态机0 {2 g, u# d9 f' S- x4 _5 F5 C
`define s1 1'b1! t S9 g0 z5 @" Y( {0 @. A d
2 c0 h- n" h# {3 K _7 F, L reg clk_out;
) R3 v2 y# a5 E M+ ?" d1 { reg [31:0] count;1 h0 b @' d; X3 K k# P
reg state;, [' |. E& e* [' B, Y
: [- O& i2 z' o always @ (posedge clk_in) 4 T0 a! x: W$ s% X* l2 z+ z
begin5 m0 c% a% ]! a% Y; D8 G% ^5 i8 b; R
if (!rst) //同步复位
5 F R2 y" a. e3 X/ w {* T begin! L' d. ]: O, V, ~! W) M
clk_out <= 1'b0;% f! V4 n1 p9 m& ~0 `, h0 o" u: ]
count <= 0;( ?& \% b& _) i# B/ c
state <= `s0;" f" R) d# g$ q3 H( Z" }8 ~4 [
end
9 M R: t+ P' | else
' }6 f$ u _& L5 a case (state)0 j. Y. [) ~& x
`s0 : if (count < LW-1)
) E! u7 x" a5 G begin
' g# k m: J: ^) p+ M count <= count + 1;. y: `; E$ Q/ D
state <= `s0; //显式状态9 O" A: X6 _- O2 o8 `1 c
end
! N( T+ E* P3 ?/ `- A0 [* r( ` else
; W+ o. z' N- e& E* b. M begin
; W' O3 O5 i4 ]- X" N count <= 0;
/ J/ U/ v3 O' B% s$ [ clk_out <= 1'b1;
. R$ O ]/ ]9 C6 l6 X state <= `s1;
- j0 k/ Y* D. C; a: p end' P' j$ X0 n: [. ~
- O" v$ t' X+ C- A# S$ C& t
`s1 : if (count < HW-1)
; L( k* r a! H# a* s1 d9 l1 T6 P# _ begin* w y9 r" q' D5 k
count <= count + 1;3 z# ]/ a$ \9 U! ^& \* P
state <= `s1; //显式状态) L' b5 L: ?, H1 L7 H- x$ z1 e
end
) j1 d& n- {( L& H6 C else
% R3 z! U6 w& H0 L8 Z begin! [; }0 W) M8 P5 p3 Z" w3 r0 Y
count <= 0;1 ]: N& C, S/ J
clk_out <= 1'b0;( n; N9 M& {4 L7 D, z5 @! [
state <= `s0;6 P0 K& b9 P' I C7 ^8 f/ f' b0 ]( Z
end: t C4 s/ d0 d1 B3 G8 A4 l
endcase0 I5 g! F. [4 J- J4 ]5 c* N7 u# Z
end. N* n) [+ G; P
. i1 {, u/ ~4 L6 a( D& Wendmodule
$ Y3 s$ R1 g% r7 a" q4 ] |
0 N$ z5 R- h! j7 A. r6 d) v+ U0 a4 }
- z, o% f% S3 l* o: Y. k( S/ F& `; X5 G7 K9 `
' _+ |( \7 t U
. z" C9 U3 C3 e5 h |
9 I# s& s6 G4 o; B | 3 ^$ z# Z b* B5 z: ?; C
|
|