|
EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
各位大神此设计有什么毛病吗,能麻烦你们帮我指出来吗?9 B4 x2 Z, Y' [
设计要求,40秒倒计时,9秒之后3秒一次的SOS警示,我调试之后蜂鸣器不响,怎么回事,跪求大神指教!!!!6 P1 l" B" B& @0 D+ \" g/ X- p
module led_rxd(clk,rst_n,SOS_En_Sig,led,led_seg);
& A; ]. t( N0 O) Z$ S, e6 i0 Finput clk,rst_n;
+ |( ]) A& o& A5 X* v9 t4 Toutput [7:0]led;
# ^0 g2 C5 \$ V5 H5 o$ V) u! uoutput [5:0]led_seg;- F4 J+ W" C& g5 s) L( T
output SOS_En_Sig;: E$ D* k4 s/ |+ r# ~
parameter seg_num0=8'hc0,; c1 X/ N- i3 P. ?5 G# s$ q& O
seg_num1=8'hf9,1 F' W% V k) Y! N# @. N
seg_num2=8'ha4,& r$ L& S8 k; T8 [ \
seg_num3=8'hb0,+ j+ w6 }* w n1 D: T5 y
seg_num4=8'h99,4 }: k- E7 B( \7 Q5 ^6 O) \: G
seg_num5=8'h92,
/ \8 x/ X! F7 s2 U" {) { seg_num6=8'h82,8 s* K! x) V5 `* G8 @$ d8 Y' V
seg_num7=8'hf8,9 K m" ]- L# H( r4 i! _: c
seg_num8=8'h80,
" p: t4 v" i% T( u seg_num9=8'h90;+ r, r" V. K8 j- A+ ^) j8 o5 m
parameter seg_en0=6'b111110,
& O6 S$ r* Q) q, @3 k, b' V2 C seg_en1=6'b111101,. `" [! T& c, c
seg_en2=6'b111011,
, T/ E% X# ?. Q seg_en3=6'b110111,
! X% M4 i6 j% s seg_en4=6'b101111,- r% F4 J' N5 C7 Z! g$ U$ H
seg_en5=6'b011111;
5 t, Y8 ^, s7 D3 O& l2 G/ n% }. ?& i) X+ Zreg [26:0]count;
9 o5 m3 l; U, `6 g7 zreg [3:0] count1;6 v0 M! D: f" O6 i, x I
reg [3:0] count2;
/ T9 D0 N4 | b3 u; O3 ^ [reg [7:0] led_reg;
# }0 ?- \) a5 ^ U% M Creg [5:0] led_seg_reg;
6 y. T+ Y. K, t" V) Z) P. Kalways@(posedge clk or negedge rst_n)
; l$ [) n- P- z* d- iif(!rst_n) count<=27'd0;2 c, n( P! `8 j0 _5 y3 h
else if(count==27'd49_999_999) count<=27'd0;
; H7 ?* y) A2 L) n7 Delse count<=count+1'b1;
; X9 v. G. y/ K) Dwire clk_div=(count==27'd49_999_999);/ k! _/ y/ n( A1 t3 }4 H4 A" m2 k# Q
always@(posedge clk_div or negedge rst_n)
1 C9 y4 X+ i$ lif(!rst_n)( y# [ L2 X) C8 S- J: y
begin2 [9 J4 Y P3 E+ A
count1<=4'd0;
/ ?7 I/ V0 A7 s( K. Jcount2<=4'd4;. k" j% c: ]/ h+ l; a: |- v
end
( b L9 `( ^ n J4 xelse if((count1==4'd0)&&(count2==4'd0))
: z+ ^4 m+ [6 X% T0 Mbegin, s o# F0 {+ @$ M: I& P$ \
count1<=4'd0;
7 z, N; D0 ?7 C- }( W1 }count2<=4'd4;* @! z5 ]- @9 P( x& `9 Z7 ]& Q
end
; I, t$ ~/ v( N/ O" q# q8 H* Yelse if(count1==4'd0)
: n1 {9 _1 \; w0 {begin+ \$ Y" S3 o% V% Y/ {
count2<= count2-1'b1;
; T8 x, U) Q$ Z' zcount1<=4'd9;9 h; @" V* n8 A8 f) {2 m
end; V: }2 a8 N) V1 u1 f
else count1<=count1-1'b1;% O7 [( N/ H- C0 Z% x- R
reg [26:0]count_1ms;//% _6 Q( | {1 y" n( p0 d
always@(posedge clk or negedge rst_n)" C$ M$ l1 l) q
if(!rst_n) count_1ms<=27'd0;
; c1 C! x0 M6 u/ D# velse if(count_1ms==27'd49_999) count_1ms<=27'd0;
0 D, [; x, l2 [+ Telse count_1ms<=count_1ms+1'b1;' d( ]( {1 P4 Q* `) U0 L4 @9 s
wire clk_dis=(count_1ms==27'd49_999);//& ~/ d) U; o* f5 n
//+ P: }' D7 P8 ]+ E
reg [1:0]state;
" n$ n9 `7 w2 i, @$ [8 ~7 Y! Walways@(posedge clk_dis or negedge rst_n)/ u; E8 V* g; w" q& S6 a
if(!rst_n)' f# U- ?! D4 U0 u4 f' J% Z
begin% L! O) T0 U! N
led_reg<=8'hff;9 X( t- A1 K) h
led_seg_reg<=6'b111111;
/ @$ U+ w" n1 ]7 Q* {2 X9 z0 hstate<=2'b00;; V; e Q# u j- N# I# L9 Y6 J
end- j" M5 e7 J) W8 K4 d) |' L) x
else if(state==2'b00) 1 G; m0 }6 h& e8 Q8 @" e& M0 R
begin
+ E2 D; p: ?4 V. ?% X& astate<=2'b01;6 s& t# O' u" \# r* N2 _& R; }
led_seg_reg<=6'b111101;
! {+ w1 P1 j9 i% Q8 x4 Hcase(count2)
$ n0 n+ Z- p9 K* U4'd0: led_reg<=seg_num0;
3 b3 C* U- z8 }/ V9 F4'd1: led_reg<=seg_num1;
- P* c) i- G3 ^$ q! l4'd2:led_reg<=seg_num2;
d2 z" y/ {& ]) _4'd3: led_reg<=seg_num3;
- a6 }! K. D4 V: p3 F9 J' w1 K' L4'd4: led_reg<=seg_num4;
0 p2 S5 I i K8 e; q4'd5: led_reg<=seg_num5; ' n# ?- N% ~# M2 Y+ g2 n
4'd6: led_reg<=seg_num6; $ x% o* V' T' A- z0 _: w3 @
4'd7: led_reg<=seg_num7;
& y/ V4 i2 R* t0 w4 J4'd8: led_reg<=seg_num8; # ~! [% H( x# n0 k2 f+ ~& |/ f9 F
4'd9: led_reg<=seg_num9; ) _: \( O5 l( ~: o4 L7 P) O( M+ b
default: led_reg<=seg_num0; 4 s3 @9 a. _/ O
endcase
. f5 |, j0 C# ~9 d7 l+ A5 |end5 k. u; {5 V$ |- d7 [, U
else if(state==2'b01)
2 F4 L& c! m# U* R4 Gbegin ; ~+ e ]2 W0 @0 l8 w5 F
state<=2'b00;3 i7 _& c1 q7 E; m) A
led_seg_reg<=6'b111110;
* v- S' |9 E5 M# }& \case(count1)% T" H6 W' \0 r! S6 T( w
4'd0:led_reg<=seg_num0;
# H1 A: s8 V1 Y3 R. f4'd1:led_reg<=seg_num1;
( B, N6 ]; Y6 A9 Y' y6 m! |1 G4'd2:led_reg<=seg_num2;/ `! [) {( ^& k- k" \6 `' `
4'd3:led_reg<=seg_num3;' M. Y# F& m% E, k
4'd4:led_reg<=seg_num4;
, r' a" E; V0 K4 s, S9 T8 U/ T4'd5:led_reg<=seg_num5;7 r( l3 {/ _' p9 u
4'd6:led_reg<=seg_num6;
0 Z% [* N8 @" V% T9 T4'd7:led_reg<=seg_num7;. r& n( t- R+ p9 D
4'd8:led_reg<=seg_num8;
" u/ B8 c4 z/ G4'd9:led_reg<=seg_num9;) H$ f) @: o4 D9 L5 c4 [% T' l% Z
default:led_reg<=seg_num0;
& v) |! _% _* I% mendcase
3 F& h: h" q. m" X1 Z, Gend( `* d) G' b5 k
reg isEn;
1 Y/ H& X+ K* D' Q& Y2 mreg [27:0]count3;
$ j. c) }1 k) U( ]always@(posedge clk or negedge rst_n)7 V% [' x% q% n
if(!rst_n)
+ H' o `/ G; o8 s' Hbegin
8 f, M9 J8 a) f6 M( Q. \# M5 v7 kisEn<=1'b0;0 G" s! X( D" g& v
count3<=28'd0;
7 y1 s' @. D5 ?* [end# e7 ^+ S" j* E
else if((count2)&&(count3==28'd149_999_999))
* v4 p+ u" R; Q: b; Ibegin, s) `) s ^" n6 o! i; V+ L8 c1 B& \
isEn<=1'b1;
& T& a6 X' U. |" t: ]7 j4 K) _count3<=1'b0;
! _4 D a6 D* w" Uend% r! a: t* A' f/ Q7 `
else
& ^, L8 |' j7 F; v) xbegin0 y' h2 n& J/ B. {' I4 w& Z' m) x
isEn<=1'b0;
8 s- S1 t# n7 @. b2 e! A; Xcount3<=count3+1'b1;; p7 N& z# }# \3 [8 G
end+ \% i/ A& R/ H4 P8 w
assign led=led_reg;& ~" Z3 v, F1 b3 E
assign led_seg=led_seg_reg;- _8 K% ?3 E. T- [' h+ I
assign SOS_En_Sig=isEn; @1 l8 F- m/ [
endmodule, I* Z) I7 D: u
|
|