EDA365电子工程师网

标题: 各位大神,请进来看看,急急急~~~ [打印本页]

作者: zhangsong123    时间: 2016-4-13 10:36
标题: 各位大神,请进来看看,急急急~~~
              各位大神此设计有什么毛病吗,能麻烦你们帮我指出来吗?
7 i2 H0 ~" H6 c+ S9 E: W6 Q- w  设计要求,40秒倒计时,9秒之后3秒一次的SOS警示,我调试之后蜂鸣器不响,怎么回事,跪求大神指教!!!!) H3 H/ {* `% u' H5 R5 d
module led_rxd(clk,rst_n,SOS_En_Sig,led,led_seg);
7 j% D1 r9 v; h+ S0 T0 }/ Hinput clk,rst_n;, Q/ W, N: ^/ N. F$ D( x
output [7:0]led;
" o1 @* }  \% v7 a8 T2 soutput [5:0]led_seg;
6 u" Y8 O% r8 Z- E8 f! aoutput SOS_En_Sig;9 P- |, k4 u. j/ W0 ~* M/ k3 S
parameter seg_num0=8'hc0,9 j3 ]( z( f2 e  C$ _% ?5 z" r7 p/ M$ D
          seg_num1=8'hf9,
) p! A9 H! B& c! v    seg_num2=8'ha4,
. H0 @2 R9 {4 L+ R6 l& G, ]    seg_num3=8'hb0,4 F, d* p! w) u8 e
    seg_num4=8'h99,
5 P7 q1 u* C8 G9 V6 b! c    seg_num5=8'h92,) r+ P% E7 d) A3 N( v5 X# C( Z
    seg_num6=8'h82,
+ F- r( ]4 F' @1 W  y  t7 l/ w& Z    seg_num7=8'hf8,) G  h8 o& q; f& M
    seg_num8=8'h80,7 a# \6 C6 q3 P2 ?0 T9 u' E4 h  s
    seg_num9=8'h90;1 [# w; L2 e% M+ l; x
parameter seg_en0=6'b111110,
; e, Z9 c& B* \% x2 @. t          seg_en1=6'b111101," ?! W6 L* J, Q7 H& Z8 I
    seg_en2=6'b111011,6 i8 Y/ h1 D* J3 R; T! w
    seg_en3=6'b110111,5 ~# R1 S1 t! y6 h
    seg_en4=6'b101111,9 l7 f* f" z0 ]) D$ P4 c
    seg_en5=6'b011111;
' q  ?5 y' Z2 qreg [26:0]count;
- O1 Y9 ~; M9 I5 R  P. Mreg [3:0] count1;
9 r- D" k3 s* Q" `# @* V: Preg [3:0] count2;
4 F% N5 f: J$ a: Treg [7:0] led_reg;
2 E/ r/ a, w. S+ |) w# W% U) ?. lreg [5:0] led_seg_reg;4 w( b8 T3 c3 n- V, O
always@(posedge clk or negedge rst_n)
' c5 t/ o/ q' T0 Hif(!rst_n) count<=27'd0;
& r( |- y  P/ q2 i0 _9 I% ^) [else if(count==27'd49_999_999) count<=27'd0;
6 O5 S" D5 P6 s% Z& w$ P$ I, q7 Telse count<=count+1'b1;
* q& m! K# T7 b; xwire clk_div=(count==27'd49_999_999);6 {. W) l2 Z" G' F. c* u4 ^4 _- p1 h
always@(posedge clk_div or negedge rst_n)2 X: `" A# R  {' F( R
if(!rst_n)
5 I% I# v, g* T+ F# i/ _begin+ V( e% f! @4 O9 n/ s8 D2 O1 s$ E' Z
count1<=4'd0;% Z; [0 \0 Y- C8 A
count2<=4'd4;
) B, K2 b& G1 K% Y. m9 C0 xend
6 U1 J$ D5 k7 k- w/ S& I4 Aelse if((count1==4'd0)&&(count2==4'd0))
: Y9 r# S5 N# ?& tbegin
2 G2 y/ r0 _' ^! [count1<=4'd0;
) _& q% c2 J. ncount2<=4'd4;
3 x  [9 F3 w/ Hend
, Q' x' O6 J  |else if(count1==4'd0)5 e/ O7 S* a/ G) v. q
begin
- n  B" M" e- ]& a  tcount2<= count2-1'b1;
6 b. k! i/ ]. S+ i) b1 S+ d! B/ Mcount1<=4'd9;- Y! J9 h7 u9 u, [' e/ d. L
end
0 }) G! r) A! j9 Z+ @else count1<=count1-1'b1;
/ I2 ~- k1 U6 }( freg [26:0]count_1ms;//8 P  A  I) l7 r9 K( L6 q
always@(posedge clk or negedge rst_n)
0 C2 T/ G$ H) U$ l8 Sif(!rst_n) count_1ms<=27'd0;  
2 R0 a& {# D+ Z3 Melse if(count_1ms==27'd49_999) count_1ms<=27'd0;; Q$ l% P/ j9 X8 ]9 j( d
else count_1ms<=count_1ms+1'b1;
' D* L2 `) j9 k2 R! J: mwire clk_dis=(count_1ms==27'd49_999);//
! M- F* l9 |& |% X1 g: e//
" d+ ^! L' x& o  N0 j; u3 greg [1:0]state;
( j' S2 N6 }: w- P1 A" nalways@(posedge clk_dis or negedge rst_n)$ y! R* d- P$ G
if(!rst_n)1 C8 z+ h1 q4 Y, i- M
begin
! ^/ K7 j2 C5 [3 Uled_reg<=8'hff;
# P4 s7 R1 f' [# ]$ u8 ~led_seg_reg<=6'b111111;
9 I. O; ^% I/ Y* [; Gstate<=2'b00;4 t; r2 r5 E2 S
end
0 ]2 T1 J/ ?8 I+ m" xelse if(state==2'b00) 6 j9 ], M) G& w' {& z
begin7 E9 A: |) J5 ]1 q% u4 T1 z2 A5 O
state<=2'b01;
+ C# v; C7 M, A3 m/ h" y  qled_seg_reg<=6'b111101;3 U0 Z3 b( ?. ?8 O, ?0 }6 C
case(count2). T4 r0 R* O, V; R* @
4'd0: led_reg<=seg_num0;  
( E9 `3 o6 v: O  L4'd1: led_reg<=seg_num1;  8 b1 |1 _! g4 P6 J4 H6 B7 ]
4'd2:led_reg<=seg_num2; + j+ Q: C" o3 K
4'd3: led_reg<=seg_num3;  ) }/ \3 J: i2 |! i4 n
4'd4: led_reg<=seg_num4;  
$ H& Y' s: N) K% Z! z9 f4'd5: led_reg<=seg_num5;    r( M# ~  ^) V. r* g7 g* F+ U
4'd6: led_reg<=seg_num6;  
; {# C) Z6 i2 j( k) s9 l3 h- @( Y4'd7: led_reg<=seg_num7;  / g3 |* E# u/ ^) S
4'd8: led_reg<=seg_num8;   
: w6 w  E. _( \4'd9: led_reg<=seg_num9;  . ?6 N& z/ {. C8 @; H
default: led_reg<=seg_num0;  8 K, H' h5 \. T9 X" D( k7 W
endcase- a) E1 _  S. l+ D# Q) l! T# I3 V
end5 I, F: d* I1 D+ ?4 P* l
else if(state==2'b01)3 Z/ c0 o) U) U
begin - J7 I' u" a; B# A
state<=2'b00;; E* L1 X7 |. z) g) O4 e  V; _
led_seg_reg<=6'b111110;+ k% [) w# A9 D: s1 c0 Y
case(count1)
+ l% o% j) S& H3 S" C9 A6 Q4'd0:led_reg<=seg_num0;
% Y$ R4 g0 ?/ a/ U4'd1:led_reg<=seg_num1;6 }" Y$ |, }" l0 J0 s) V) `
4'd2:led_reg<=seg_num2;4 }9 e4 V; U0 i: R- ]4 d  r& @
4'd3:led_reg<=seg_num3;
7 F4 H4 R) n, h9 X/ F4'd4:led_reg<=seg_num4;5 V% [" Q. G2 X% o1 S/ {
4'd5:led_reg<=seg_num5;; K$ S/ S+ j  D" M" D4 `
4'd6:led_reg<=seg_num6;" b" R% J; R6 W5 n/ E& i
4'd7:led_reg<=seg_num7;
' V% t! E) [9 o4'd8:led_reg<=seg_num8;7 c+ i5 u; l  E( \1 i
4'd9:led_reg<=seg_num9;/ K4 n- [- S( y
default:led_reg<=seg_num0;! U. K( b5 Q7 G5 T
endcase
+ N& g5 \) X4 {, v" j/ R( m  N  |end
$ Z) v, A- f2 v4 _# i. E6 e# freg isEn;+ d3 o6 F8 |: D! c* ?, a% P
reg [27:0]count3;+ A4 ?$ v3 P0 M8 g$ K4 f, T
always@(posedge clk or negedge rst_n)
  M; n8 ^# j' j$ ?if(!rst_n)
3 T& ^1 K2 ~  t1 h4 [. s( ebegin
2 d4 n5 B; O8 F" B/ I2 }9 g: yisEn<=1'b0;
9 `, q' R# Q6 e: u9 _' zcount3<=28'd0;$ ]& L9 A8 g( Q
end
  k+ \) y4 N1 j: belse if((count2)&&(count3==28'd149_999_999))( G6 v- q. ^$ l. A  ~+ i
begin
6 K5 Q6 [4 u8 N/ D2 VisEn<=1'b1;- \. N; t* ^3 Y
count3<=1'b0;2 Y+ q# l7 j$ I, G  {
end8 y. C7 W4 F6 u
else
( ~4 a+ U5 ?6 z2 O, \$ M4 o4 ^begin5 r4 ]  T; P/ h
isEn<=1'b0;) ]$ M5 Y" [; C2 \" b
count3<=count3+1'b1;
' }; Y( d5 Q  Y- y! Qend/ U" f( o1 Z+ [7 ^% m/ L
assign led=led_reg;
% B& z3 H5 e$ F8 v% N. K" Rassign led_seg=led_seg_reg;  U; Y/ |' ?) B' a4 N( p9 O
assign SOS_En_Sig=isEn;
0 _4 b# c. X( V9 k( D: }' `( w( vendmodule
/ i$ f' X( R; K! l( N




欢迎光临 EDA365电子工程师网 (https://bbs.elecnest.cn/) Powered by Discuz! X3.2