找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 173|回复: 0
打印 上一主题 下一主题

数码管倒计时和蜂鸣器同步的问题,麻烦大神们进来看看,指教一二。

[复制链接]

2

主题

2

帖子

21

积分

二级会员(20)

Rank: 2Rank: 2

积分
21
跳转到指定楼层
1#
发表于 2016-4-13 18:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您!

您需要 登录 才可以下载或查看,没有帐号?注册

x
通过Verilog HDL用数码管设计了一个40s的倒计时,想在10s之后加上一个蜂鸣器,无奈本人初学FPGA,苦试多次无果,故来此请教各位大神,能帮我在40s倒计时上面加上一个蜂鸣器吗,跪求了,谢谢!!!!module led_rxd(clk,rst_n,SOS_En_Sig,led,led_seg);; C3 ^5 Q! |" m% ?& w1 `0 m
input clk,rst_n;
: K0 {7 \0 n. Noutput [7:0]led;8 h4 h0 r2 d4 d2 ?
output [5:0]led_seg;
3 C; i; ~  [: M3 S4 h# {output SOS_En_Sig;
# ?7 x$ m8 p" s  dparameter seg_num0=8'hc0,) i8 g$ Z  c- E% ]: H
          seg_num1=8'hf9,
, }" d' T: X9 X# H) `             seg_num2=8'ha4,
, T5 ?; [  n. E+ v7 K, H             seg_num3=8'hb0,
' }$ e- n" z5 [' N" R             seg_num4=8'h99,
$ |! |- C8 B5 T1 v             seg_num5=8'h92,7 r' A1 t. s& k- ~" d
             seg_num6=8'h82,
) x2 O" e6 s# ?$ S) U5 S1 H( D             seg_num7=8'hf8,2 L) B! t4 r" M/ h/ P+ Y  ~5 u
             seg_num8=8'h80,. m) b% t9 f! v! Y
             seg_num9=8'h90;
* ]9 I2 ^/ i0 J. Cparameter seg_en0=6'b111110,
3 v6 H  o9 [" S- y* `          seg_en1=6'b111101,2 Y# e+ F2 T" D* X( m$ e6 p* n
             seg_en2=6'b111011,
2 n# O* q6 c* v             seg_en3=6'b110111,% e$ s2 ^, h/ @& U+ k
             seg_en4=6'b101111,# s7 s  Y0 ]+ D  D) @8 v
             seg_en5=6'b011111;
1 l) U4 o* W2 L- d$ _( ?; |! d' oreg [26:0]count;0 B1 ?" K( S; k' Z0 _0 D- Q
reg [3:0] count1;
  ?0 M- v; P% ]# Greg [3:0] count2;
! n$ [: Q# \3 G2 h0 P5 areg [7:0] led_reg;
- X. Z: B7 ]  S% p( W) }* L/ v# K$ }reg [5:0] led_seg_reg;0 I1 ]3 \: N# T
always@(posedge clk or negedge rst_n)
8 ]% Q1 G  l5 @: qif(!rst_n) count<=27'd0;
: m" Y( n2 Z$ P! G# L' }else if(count==27'd49_999_999) count<=27'd0;
/ y! r# z3 H$ B$ J$ S* y1 aelse count<=count+1'b1;5 g. o& C+ G+ P" @) t
wire clk_div=(count==27'd49_999_999);
# I5 q5 J9 c" ealways@(posedge clk_div or negedge rst_n)
  F0 j9 v/ x$ K! `if(!rst_n)
: C& |# s& _4 tbegin
% S; K/ a/ k$ S6 X1 [8 W: B5 Qcount1<=4'd0;- N3 |! s5 L% ]* U: E3 C4 w* j% S
count2<=4'd4;
: W4 w! B9 A1 }! S" ]4 R* mend! b. O1 C; q6 O
else if((count1==4'd0)&&(count2==4'd0))0 y9 ?, j2 Z# k
begin  z# j% K% A1 R' A8 s
count1<=4'd0;
4 o2 p3 F/ X# v. L% S0 xcount2<=4'd4;8 ~9 _6 U9 G: M
end, D) ~; t4 Q6 S% w3 q% I
else if(count1==4'd0)9 ~" E" O  Y3 ]5 b* ~3 e( S
begin3 c6 \9 U. c; J$ M4 i" C4 {9 f
count2<= count2-1'b1;
& Q/ c; D( h; K4 v' w& @count1<=4'd9;* O; }6 T+ ?! t! h
end! c- @9 }, l3 A
else count1<=count1-1'b1;
4 n2 k" c2 ^2 s; Sreg [26:0]count_1ms;//
6 i1 x2 R1 h1 W1 ualways@(posedge clk or negedge rst_n)1 W" a& \3 S( ]: b0 z
if(!rst_n) count_1ms<=27'd0;  5 z) w5 i' M" J) A; u
else if(count_1ms==27'd49_999) count_1ms<=27'd0;  K) ?7 O: C$ T0 P) v
else count_1ms<=count_1ms+1'b1;. c# e  [& `, b6 b5 V7 y
wire clk_dis=(count_1ms==27'd49_999);//9 ]- D8 l/ i& p5 {! o, ^
//1 F5 @& x" a# a5 V: C; {! f
reg [1:0]state;3 h( @) Y; |) g( g8 Q
always@(posedge clk_dis or negedge rst_n)
9 M( C3 \9 I& X+ \3 Sif(!rst_n)
, q+ M$ u; W) K0 B& |& t* s% V& \begin
$ p: f8 V# K7 k# U! |5 {+ \8 \0 a0 uled_reg<=8'hff;# u  T2 r; e( ^, V5 W7 [/ l
led_seg_reg<=6'b111111;
: Q& I" Q0 i0 f6 x! s, ]+ ?2 Lstate<=2'b00;3 D5 o4 W- ^* P0 |$ b- B3 F% `
end
6 P2 i) e4 B, p& J2 Y0 ]& |else if(state==2'b00)
" Y7 C5 K7 s* F3 ]4 Nbegin& }; [; M0 p) V0 c( c1 \; |: e
state<=2'b01;  K" g6 f% K  B; O
led_seg_reg<=6'b111101;
, e  @) r2 Q0 X* w3 r0 xcase(count2)
/ D& e5 J) p7 \! @6 x' F/ S) E4'd0: led_reg<=seg_num0;  
9 x' Q8 Y& Y, `" k# |' _4'd1: led_reg<=seg_num1;  
8 q0 I1 D6 b; L# G7 C' G4'd2:led_reg<=seg_num2; 4 ]" l7 |# X) O* `& x
4'd3: led_reg<=seg_num3;  4 \8 H  f! j% |8 |# f
4'd4: led_reg<=seg_num4;  
: G) r) c9 o: p- \- ~4'd5: led_reg<=seg_num5;  
0 _- q" m0 F* y4'd6: led_reg<=seg_num6;  9 a: l  p0 Y$ e) u0 E
4'd7: led_reg<=seg_num7;  1 u8 V$ ~. y3 k. j& L
4'd8: led_reg<=seg_num8;     a4 w: t: Z0 q* E2 j
4'd9: led_reg<=seg_num9;  
2 @0 S. t* A3 m  {: U% ndefault: led_reg<=seg_num0;  ; f& \6 J# Z8 U% U
endcase4 g% X# E5 c  G8 K) V- B
end. P( }+ v: ^0 S0 p4 S- R7 \* ^
else if(state==2'b01)
! {, R' m3 g# d. _$ Q. _begin
7 h7 j, E  m$ p" rstate<=2'b00;
7 i% |- ^% @( a, ?- ~( y( Aled_seg_reg<=6'b111110;) f' L* G! [+ C) J" t1 i) R( }
case(count1)
$ k# ]+ n4 I3 N% i7 T0 N4'd0:led_reg<=seg_num0;! ?! Y5 q3 D) ]; K, r4 L( K7 A& \
4'd1:led_reg<=seg_num1;, `$ [8 @7 ^# I! R- `& u$ l3 e
4'd2:led_reg<=seg_num2;" ^  V  T1 g6 C6 t4 R1 ]" N* n4 O
4'd3:led_reg<=seg_num3;
! O* W: l2 o9 i% }% z6 L* h4'd4:led_reg<=seg_num4;* o8 v; k) |9 C0 Y8 w1 b3 ]1 I
4'd5:led_reg<=seg_num5;9 x8 [$ r7 U6 k3 ~4 K$ n" z
4'd6:led_reg<=seg_num6;' j8 Y) N* d7 E$ c
4'd7:led_reg<=seg_num7;
, ~& J$ \8 e7 b( T' T7 W4'd8:led_reg<=seg_num8;/ U( B+ i7 R' |: x1 C
4'd9:led_reg<=seg_num9;" K# x3 A8 f: \, f: q# L# E& [
default:led_reg<=seg_num0;/ I9 u, V% v4 L8 d8 r0 \! {/ ]* _
endcase
- V3 n3 m& L% @* h8 kend8 H: t$ P- C+ l8 X% \
reg isEn;) }8 n! H4 i9 V9 J
always@(posedge clk or negedge rst_n)
7 b$ t+ I9 U. q1 f: |7 P# ?) [, Iif(!rst_n)
* Y4 H6 M; Y0 }begin/ R" G$ l& K2 U
isEn<=1'b0;
5 h  K9 z- |0 ^/ Send3 y# i6 g8 n/ k. |. i
else
" \) F, Y6 J8 _$ c# K5 N4 g/ dbegin
3 W, H$ i( q( g0 f' _; zisEn<=1'b1;
( ?/ B: j" p8 i/ q& o. g" |end
) q( U  n. ?/ D: I3 ~% Lassign led=led_reg;
+ S; J. V! y7 m- o' l5 }0 zassign led_seg=led_seg_reg;
; T/ z3 E+ @4 t( n5 ^" @assign SOS_En_Sig=isEn;6 j! r  i% \# o& T
endmodule5 J$ A, L/ ~6 J% d: b/ D0 U

: A- m( \6 N7 C' ]% b  ?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2025-4-19 15:02 , Processed in 0.067313 second(s), 30 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表