|
写一个复位模块8 b; ~ }% x4 P) Z
然后在此模块中把要设置的初值设好
$ N6 S, d4 J$ \6 F& V* y$ k7 D- U5 A0 D举个例子3 s/ O# z2 y" b
module SHORT_RESET(8 u: y: {$ F. a; L8 T' i
inpu wire Clk,$ W1 G+ b7 o* z* V6 z N
output reg Reset_n2 y5 r7 V/ l7 R/ V Z1 u
);
. J9 p7 R z" ~. z6 o m! _parameter U_DLY = 2;
/ X7 c2 }2 f+ ^# B' s: \* }0 Z. Eparameter RSTCNT_LENGTH = 12'd2499;
. A5 ]8 [3 j) v, yparameter RSTCNT_WIDTH = 12;- M8 y7 B+ R7 K7 H. O
reg [RSTCNT_WIDTH-1:0] Rst_Cnt;
" ^8 k, E& h8 x2 J+ Jalways @ ( posedge Clk )
1 [, s( |: Q- w" xbegin
|! a0 L5 \9 O8 R$ @- _if ( Rst_Cnt == RSTCNT_LENGTH )
$ M6 P' l- [. F" [3 b8 W p9 o4 Nbegin4 S( F# l. k, n8 c( A' W9 f
Rst_Cnt <= RSTCNT_LENGTH;1 S# @8 }+ K$ F( M1 s! [3 M3 t) |
end9 z7 U2 H) b T" u
else if ( Rst_Cnt < RSTCNT_LENGTH )
2 U( Y' O" Y V# C. b- ]2 Cbegin
* K6 b% P+ R; H* {" i# F; gRst_Cnt <= Rst_Cnt + 1'b1;5 R% R% b' j! }! S2 ~" Z4 R* M
end+ p" e1 H( ~5 m7 E
else begin2 r4 t. Y% `4 O3 {& K5 u0 e
Rst_Cnt <= {(RSTCNT_WIDTH){1'b0}};( v. a: \2 B0 `3 i
end
7 |, @& \, `; ?7 K9 o6 xend$ G! [6 D, T8 d! L. _5 a* u
//在此模块中对你所要的赋初值的寄存器赋值
( R5 N7 k3 r) w, }3 Salways @ ( posedge Clk )
: F; m, O! k4 m/ J- h, fbegin
% k: D5 {9 z0 Q: E, \. l6 i6 cif ( Rst_Cnt == RSTCNT_LENGTH )
' y2 b$ T2 c! N, \2 ?2 R- Kbegin1 B: w8 `: @+ @" u0 T
Reset_n <= 1'b1;* m# C! B+ U0 r3 s1 T
end
7 o3 F- f* k$ G: z. T9 U/ Delse begin
l6 U: q7 y B% l3 W) F9 ?: I' m* mReset_n <= 1'b0;0 Y! u5 r5 N2 K( ]$ L) U- u5 x
end
5 x* a7 x1 q9 Y% Mend
1 \' d" R! S) y, h* G4 B5 iendmodule |
|