找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 167|回复: 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);6 K0 u8 V) m2 h- E; U* _& M
input clk,rst_n;
6 Y) o( ]+ k# S/ B' Voutput [7:0]led;; L. _& W& }( o% `$ [; T
output [5:0]led_seg;" C$ c! U7 c/ G2 b
output SOS_En_Sig;
; U2 |9 y9 a1 E1 m& V" [0 dparameter seg_num0=8'hc0,7 T: S+ \* y* X; h1 l) J
          seg_num1=8'hf9,# h: A1 a: s9 k+ K' O2 B  z3 E
             seg_num2=8'ha4,
. y# X; y, }# ^4 o5 t9 ^7 y             seg_num3=8'hb0,
5 X/ y  N9 b7 r7 w             seg_num4=8'h99,
" p* I* }; K. q5 q             seg_num5=8'h92,) |5 F9 {# V2 c( H6 C/ n
             seg_num6=8'h82,8 q' d1 O3 L0 m, p/ E- f
             seg_num7=8'hf8,
( p- l5 R. [& b$ X& x& M2 n             seg_num8=8'h80,
0 {7 `4 |- c. d1 h6 t2 k/ T4 C             seg_num9=8'h90;
& F: D! A( L* v0 n; iparameter seg_en0=6'b111110,% t# F- b# y% F
          seg_en1=6'b111101,2 A# s. O1 T1 E" y5 d
             seg_en2=6'b111011,
* j3 Y- i/ F/ f3 A             seg_en3=6'b110111,
  }" i: v% _  a             seg_en4=6'b101111,
4 A. I* Q: i$ @7 g& ]             seg_en5=6'b011111;* w6 M, j+ ?& D! B
reg [26:0]count;
6 J5 k, n0 A+ B4 S( ?reg [3:0] count1;
+ V, m1 e2 H3 R& q. B  \reg [3:0] count2;) F8 k9 B/ J4 S* O1 J7 {- N5 e8 M9 B
reg [7:0] led_reg;
  l" Y7 F. i: c; Z1 hreg [5:0] led_seg_reg;. j2 `; E' D( N5 C' b
always@(posedge clk or negedge rst_n)" G0 d+ v3 Z9 h: c3 ^0 R
if(!rst_n) count<=27'd0;( b. Y8 O, j, N  }
else if(count==27'd49_999_999) count<=27'd0;! c% F3 m1 U6 ~1 S: K. J  k+ m
else count<=count+1'b1;8 R% `$ R( P; b. C
wire clk_div=(count==27'd49_999_999);  F4 n' M& t2 O7 e
always@(posedge clk_div or negedge rst_n)
0 X1 O# K5 Y, [% W/ F" f5 Zif(!rst_n)+ a1 y7 J; y) R% V$ U+ O6 M# `" l* y1 L: d
begin. T7 k! Y0 a8 t. c  T
count1<=4'd0;
3 I) Q! L, t5 x+ v7 fcount2<=4'd4;9 X$ A3 ^# m( J: A, W) O
end+ l3 W, ?: S, S4 S! ~
else if((count1==4'd0)&&(count2==4'd0))
0 |, ]8 \4 U. ^% E% nbegin
' t. F# x5 S% H& N3 A, }2 ?2 ]count1<=4'd0;
4 B" G' K) A4 scount2<=4'd4;% D( A( m: q( y2 Q8 Z* y6 A$ ]
end$ b: O3 [4 b* J( S7 X9 h
else if(count1==4'd0)
% ~1 w4 i, G" L2 @  @8 m5 Ybegin# @2 K( J0 w; T3 l' [- d
count2<= count2-1'b1;$ m2 c: }# D4 z5 G$ L: m
count1<=4'd9;
  z; @4 X, C$ c, tend
+ U  c" X" {. G. ?! Selse count1<=count1-1'b1;- K  d: s* a5 W  F. }: G
reg [26:0]count_1ms;//
% r+ S8 z. i% V" qalways@(posedge clk or negedge rst_n)
( J. e5 Q3 \+ k+ T( m' Kif(!rst_n) count_1ms<=27'd0;  
: A3 }0 @1 U% K; }else if(count_1ms==27'd49_999) count_1ms<=27'd0;
; f- v4 `% P$ G0 d0 p8 p3 p: x' Uelse count_1ms<=count_1ms+1'b1;! K! z0 e& ]5 ]0 r5 u
wire clk_dis=(count_1ms==27'd49_999);//+ i1 a, d4 B; I# H
//
! D5 H( l1 T# I& [8 a0 j" p% ]reg [1:0]state;+ e1 g. R# Z* j) n( ~9 U( j3 c
always@(posedge clk_dis or negedge rst_n)* ]& V  y' E. P9 r: V! @* ^
if(!rst_n)0 B0 J  J% {7 r8 c
begin
. p1 a$ r' h1 f! X5 u# nled_reg<=8'hff;9 X! t  L9 b# |+ ~# _! {# c* f
led_seg_reg<=6'b111111;- ?+ B4 @/ K( \) ~
state<=2'b00;
0 f& L& v1 {8 A8 u/ F. d' Qend
9 I) |. X/ ?: S$ r$ [) a, uelse if(state==2'b00)
8 X% K. a  {7 t6 m+ ]( Bbegin( O/ p7 [; m# ?4 `. k# [0 `3 z
state<=2'b01;
# K( d& j* r, c, j3 }led_seg_reg<=6'b111101;9 i; r9 K1 ^* {: c5 H+ p- o1 v3 ]
case(count2)- ?% m; }8 v) g8 e+ _( o! Q$ o
4'd0: led_reg<=seg_num0;  " d8 U- p* O3 C
4'd1: led_reg<=seg_num1;  
/ A8 P8 e" l3 K2 j+ _7 \1 r2 v) @( N; ?4'd2:led_reg<=seg_num2; ; ?! Z& R# x2 U9 l( c
4'd3: led_reg<=seg_num3;  
! e  K  E9 I9 r. q% Z* l: L4'd4: led_reg<=seg_num4;  # c& d: ^( z; K, `  g: [
4'd5: led_reg<=seg_num5;  ( U5 r) D- O9 R) m, ?
4'd6: led_reg<=seg_num6;  , s! a9 B6 L* g. y
4'd7: led_reg<=seg_num7;  - M5 r; V2 Q. D# N7 ~
4'd8: led_reg<=seg_num8;   5 n/ m; R9 _; G! v6 K
4'd9: led_reg<=seg_num9;  
: n! {+ S8 a5 y! r1 F; ~default: led_reg<=seg_num0;  7 G& E& m# X0 G5 T+ p. z
endcase
" ]# ^/ H( W9 d: dend" {; n% m1 v3 t  x/ C
else if(state==2'b01)$ i; x% r/ b/ n
begin
2 p/ \: r% I/ Q: i, |state<=2'b00;
4 ^+ ?# s; {5 nled_seg_reg<=6'b111110;8 n( I) i# _6 z
case(count1)
# N) _2 p6 z. d4'd0:led_reg<=seg_num0;
6 ]* A- N4 O- w  D/ u5 d: I4'd1:led_reg<=seg_num1;* U) M- G( k: ?( ]  ~5 _. T
4'd2:led_reg<=seg_num2;$ ?1 Y8 U/ J8 u' ~
4'd3:led_reg<=seg_num3;! T5 f8 |6 x- W) I8 d& V; H! j
4'd4:led_reg<=seg_num4;6 Y- u5 Y& o' s' V" ]' v- M9 j8 R; E4 u
4'd5:led_reg<=seg_num5;
" R, C9 Y% @: W4'd6:led_reg<=seg_num6;
1 P! p- t; s& H5 N' f( t4'd7:led_reg<=seg_num7;. {/ w2 I' l  l6 o
4'd8:led_reg<=seg_num8;
7 b( l4 Z+ c- X4'd9:led_reg<=seg_num9;
4 U2 L" o/ O; N" F& v& ddefault:led_reg<=seg_num0;6 S- @4 u, y& t+ T/ O
endcase4 y+ ]" ]; R6 B6 [
end$ q: W8 H! Z7 @0 U% [
reg isEn;1 g) _  U7 i- B2 U; @
always@(posedge clk or negedge rst_n)
" z/ p+ o# ~1 v5 `' Fif(!rst_n). I* E: `' n1 v
begin
2 s) v3 m5 m! h" E9 Y: FisEn<=1'b0;
7 ^1 ], h6 Q6 c) mend
3 r& Q3 N1 Y+ N" R) r% ^else( ]( r( r, D/ B+ b
begin
0 q( t. `) g7 o0 J; D2 E0 X! RisEn<=1'b1;
5 g# U( H1 `) w: L5 ~end" _( p) h) G" x4 V7 @2 W8 k# r
assign led=led_reg;
: u; P3 O/ b* |1 F8 Wassign led_seg=led_seg_reg;
9 L9 ~- M: n5 Q; H" |' O  _/ sassign SOS_En_Sig=isEn;* W' g$ F* B% x: ~  C; Y
endmodule
5 Y9 @& |+ n6 ]4 T# y0 Q7 b+ D; N) k" E# ?  _9 C& r2 Z9 _
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2025-2-19 05:57 , Processed in 0.050692 second(s), 31 queries , Gzip On.

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

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

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