|
EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
各位大神此设计有什么毛病吗,能麻烦你们帮我指出来吗?9 V n9 p3 o9 } z3 P) ?
设计要求,40秒倒计时,9秒之后3秒一次的SOS警示,我调试之后蜂鸣器不响,怎么回事,跪求大神指教!!!!
' B( o" ^+ I$ m; d amodule led_rxd(clk,rst_n,SOS_En_Sig,led,led_seg);
9 T2 G* w' u' s( N( Xinput clk,rst_n;
2 E7 Q9 r6 q5 `) B: Y, s4 d" voutput [7:0]led;
3 k2 m8 @- W+ `; B# R4 \+ Woutput [5:0]led_seg;
1 M+ H) y9 k { P" |output SOS_En_Sig;
* [4 A0 @' X% g& eparameter seg_num0=8'hc0,
0 G% i3 v+ E1 \; J' n# Z- N2 c seg_num1=8'hf9,( r2 G! w4 [- P' c
seg_num2=8'ha4,! s: J" o$ Y$ E t/ n/ S
seg_num3=8'hb0,! R1 }/ v9 ?0 \6 s2 n/ m8 S# d
seg_num4=8'h99,8 i) w' n' z, K/ [
seg_num5=8'h92,4 i: _" L: e) k" t$ \- d: \1 h
seg_num6=8'h82,! G9 J2 \5 v! ]- }
seg_num7=8'hf8,
1 ^3 ]7 e8 g7 h% A5 q seg_num8=8'h80,
! H+ y1 @4 Z4 e. I% K& ]+ [ seg_num9=8'h90;0 ~; s/ T+ |. Q- q* U
parameter seg_en0=6'b111110,* S2 Z: W& [/ L, r0 T! x6 k
seg_en1=6'b111101,
. ~' e8 T: W* V- z" R seg_en2=6'b111011," h4 F$ G9 n0 l. T* V
seg_en3=6'b110111,1 v# w* j x* T5 G) f9 t: G+ t
seg_en4=6'b101111,0 ~9 M, y! d& V6 ^
seg_en5=6'b011111;, _5 m5 b, f* ^' z/ f+ y
reg [26:0]count;
# {8 z$ E+ d: Q& Z, w# [6 lreg [3:0] count1;" ~% b* p8 ]- x0 E; m& h# N
reg [3:0] count2;
" |* i/ c1 `- I! B9 A; S7 ireg [7:0] led_reg;
5 E( q; r/ _/ T4 c( o. xreg [5:0] led_seg_reg;
1 l! [, B% p( k5 L- H/ valways@(posedge clk or negedge rst_n) l7 K4 B- U7 Y: u, X% f7 O0 j
if(!rst_n) count<=27'd0;. U3 [8 M `' N7 l4 q9 N" e
else if(count==27'd49_999_999) count<=27'd0;
2 J! T& }3 D! A3 selse count<=count+1'b1;% t* u6 @/ }$ B% c# F8 \
wire clk_div=(count==27'd49_999_999);" X2 j& {$ O; p# b' G8 r
always@(posedge clk_div or negedge rst_n)2 Q4 g# e+ U3 ?7 n
if(!rst_n)$ s2 U, H6 Z, W
begin
3 N6 x: O- @1 \2 k7 B: ccount1<=4'd0;
5 P6 C9 K5 o o% x/ O( h( y7 {7 ~count2<=4'd4;
# u8 X1 I) N& E& x: D) uend
5 j- s' M0 F7 [& j: ]( Lelse if((count1==4'd0)&&(count2==4'd0))
# S1 `0 W" Z8 K' [9 @begin% Z$ t5 S3 C) }/ A9 r1 J
count1<=4'd0; 2 R# S; [& y% z9 x( U2 J7 N
count2<=4'd4;
% w' l) b# X$ r! f! Lend6 T% d; k2 @ c# m. R. o9 H( H
else if(count1==4'd0)
) S! S) T( r3 f: Q+ W. lbegin$ j1 N6 A0 j8 J, {
count2<= count2-1'b1;
& e; a7 t5 X! ]; l! pcount1<=4'd9;
8 O( u" \; I: J/ V# tend* V1 c3 }- }5 X9 ~; G, K5 p
else count1<=count1-1'b1;
- ?2 P* ^& F: P* C8 R. y3 oreg [26:0]count_1ms;//& f% c0 x) P# E# P* m
always@(posedge clk or negedge rst_n): o1 G# P t; H2 g, C! {
if(!rst_n) count_1ms<=27'd0; * _/ `- q5 B j7 m/ w8 ]& @
else if(count_1ms==27'd49_999) count_1ms<=27'd0;8 k+ J% q3 b6 _! Z* i
else count_1ms<=count_1ms+1'b1;& z2 ~. G0 v' m1 j
wire clk_dis=(count_1ms==27'd49_999);//
$ K7 |; r. v9 s ~" f//; ] E* e* P t+ i, I
reg [1:0]state;
7 |! |. M4 F& N- V% g" _# [always@(posedge clk_dis or negedge rst_n)7 J# a# h/ v2 s+ z' u8 P
if(!rst_n)
% L* b0 J& D+ C$ ]begin
4 M5 o& M& ~0 M6 Iled_reg<=8'hff;
5 d- U2 z9 ?/ E' tled_seg_reg<=6'b111111;9 `. Q7 q. z2 Y; D+ M! X
state<=2'b00;/ ? i' Q! a2 ~' Y/ J
end/ G6 k L+ Y+ ~* N7 r* D
else if(state==2'b00)
; [* ~2 X! w$ P( pbegin Q+ x o# u; m; Y4 x# v
state<=2'b01;+ @' [' W m' ]9 a% f
led_seg_reg<=6'b111101;
- Y. [6 E Q1 X% Wcase(count2)
9 U1 x3 V6 s: u2 S( ]. X4 S4'd0: led_reg<=seg_num0; 6 Z% E" {" D/ I+ a! e
4'd1: led_reg<=seg_num1; * E8 L. N8 w$ {+ |. m( u) P
4'd2:led_reg<=seg_num2; v' D) n) Z0 D& b, L* N
4'd3: led_reg<=seg_num3;
( n0 r W+ u% \% _/ S; `0 J4'd4: led_reg<=seg_num4; 8 R/ d- F4 }5 J& ?
4'd5: led_reg<=seg_num5; ' f0 k- U. r/ [
4'd6: led_reg<=seg_num6;
$ B% Z w c& j; M) w; `1 b4'd7: led_reg<=seg_num7;
$ i/ K* S' q! i. |# N6 z4'd8: led_reg<=seg_num8; - E4 d$ ?( A6 c0 u* l Z* u
4'd9: led_reg<=seg_num9; 4 q9 Y; O, x8 H( v. ^8 C3 E( x
default: led_reg<=seg_num0; - ~# \, V: Y( P3 c
endcase
; b8 S1 l8 O7 U' z. Zend. E& l4 h. X R9 y/ a, @3 E4 d9 w
else if(state==2'b01)$ i1 H1 }8 x1 E, q& m% G, q
begin 5 N% q( y) g; a
state<=2'b00;
; ~# z/ e' `/ B; `& lled_seg_reg<=6'b111110;$ x' V; ^. _5 h+ _# W! c
case(count1)
2 Y# O9 O4 y( Q4'd0:led_reg<=seg_num0;" i9 H& C s" s1 T0 U, g) ?
4'd1:led_reg<=seg_num1;( g5 X7 [# u0 u) E# L0 ?
4'd2:led_reg<=seg_num2;/ ^4 l! P/ M6 r% c6 T
4'd3:led_reg<=seg_num3;! z3 T0 }* S8 U1 v0 H8 E0 I% K- o
4'd4:led_reg<=seg_num4;- [0 ~; m, k1 f; t) S
4'd5:led_reg<=seg_num5;
) D( c) F6 c8 O+ |- y4'd6:led_reg<=seg_num6;
6 \) m, [5 \3 _4'd7:led_reg<=seg_num7;* Z. c( k) }3 g3 o2 {6 C2 S" Z
4'd8:led_reg<=seg_num8;
8 H' i8 h9 S0 q, V- D7 v* ]& h/ @4'd9:led_reg<=seg_num9;
- U9 P) Z, o: d8 e; x9 Z8 a! ndefault:led_reg<=seg_num0;9 \ S1 S% ~9 [0 t% |5 |
endcase. w% |5 T f1 Y) N, ~4 l
end4 a3 V( D/ ]* R8 E9 d
reg isEn;. Y! u, s7 v2 L; M" M
reg [27:0]count3;
# `9 _/ d4 K" t7 l' Jalways@(posedge clk or negedge rst_n)
; x9 j2 F" n7 J' @if(!rst_n)
% n' j( h/ V4 R/ pbegin' r& n/ I$ t$ E2 s7 ~
isEn<=1'b0;
8 a; y3 G) v+ a: H4 i$ \count3<=28'd0;* k% Y; f& z4 i5 N+ m7 {
end
& _3 b) b( g3 l: r6 Pelse if((count2)&&(count3==28'd149_999_999))
# _1 _ e! F% Pbegin
9 x0 j# I0 |6 D. w9 yisEn<=1'b1;
! \: z9 O8 ~6 L& O% r3 ncount3<=1'b0;
3 N1 J# t* O) X* jend# a4 a8 _& }3 ]* p. J
else
+ B6 W/ ^4 ]$ m7 V+ e Pbegin/ @! Z7 l/ i. g# t% {& |) e1 ^
isEn<=1'b0; U) g2 {& f$ P& ~; z1 i
count3<=count3+1'b1;
& d Z) F$ J: U6 ]+ eend
" u" r0 e6 h/ T4 {assign led=led_reg;7 N$ r8 E! \! u+ H
assign led_seg=led_seg_reg;
( ?) E: a C }1 J% `4 Iassign SOS_En_Sig=isEn;
, M7 n8 M$ Z/ P- {9 _% rendmodule
8 f/ [9 f3 H3 n7 m" w' U' | |
|