找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 165|回复: 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);
, @- C$ g" L" N! g( Iinput clk,rst_n;
, a; _8 ^! r$ L' i1 i; C5 z6 uoutput [7:0]led;
6 _0 d6 d/ E6 x: |$ \% ~output [5:0]led_seg;  V9 @9 l) D; F& ]7 A* T
output SOS_En_Sig;
3 }% V8 R8 u! d' y; T) s( S4 H: S9 Qparameter seg_num0=8'hc0,* |( O2 t+ x2 \/ V( z" o# e1 e
          seg_num1=8'hf9,
! A- R+ n2 H  W" U+ [, j" w- |- u             seg_num2=8'ha4,
6 X& o$ e- ^! t. l+ o5 {; I' V             seg_num3=8'hb0,
2 S( h3 O9 g1 w8 m; t             seg_num4=8'h99,
+ I7 L4 P0 M" q9 X* B             seg_num5=8'h92,
- s. V, n1 V) U! E, }             seg_num6=8'h82,
: m" T- E5 b  x/ F             seg_num7=8'hf8,! F: V6 w- S+ k( n8 q
             seg_num8=8'h80,1 d9 [- U6 P+ z4 k7 B5 s5 p
             seg_num9=8'h90;
/ c+ N8 w. Y, C" [, C& Aparameter seg_en0=6'b111110,: ~8 @, U' V! L2 l" ~! M
          seg_en1=6'b111101,- i5 i6 s0 G; ?% A7 X. {
             seg_en2=6'b111011,
) M" e1 R  I: [: H. K/ v- p             seg_en3=6'b110111,
8 p3 k& g0 d4 E) ]             seg_en4=6'b101111,. K' W3 V5 s: e, f7 _* c
             seg_en5=6'b011111;8 @* Q2 R0 t2 O: O
reg [26:0]count;
, g) d) r& _$ N7 B) M' y) Treg [3:0] count1;
! g2 l1 K/ ^% V( zreg [3:0] count2;
9 L7 q4 K& u) X7 lreg [7:0] led_reg;' E6 L: u  e. @( k  Z, e9 X' V3 ~" @
reg [5:0] led_seg_reg;
- T. V( C; }0 H" n- z; o& talways@(posedge clk or negedge rst_n)  l, D- O6 S, O7 D2 V" c
if(!rst_n) count<=27'd0;
+ z* ?9 A$ P" l* }else if(count==27'd49_999_999) count<=27'd0;
' |4 }9 j" C2 \0 pelse count<=count+1'b1;
( y: L1 ~1 M9 q6 E9 o$ \' lwire clk_div=(count==27'd49_999_999);# Z0 z  w. |+ K" |
always@(posedge clk_div or negedge rst_n)0 B) j' [5 ~8 P9 n5 Y* M; Z1 X
if(!rst_n)
8 N2 F+ z: D6 `% K; u. [begin
+ V* Q5 v, t* r' z  Ccount1<=4'd0;; F. b' P  @" e" I" H3 w% n
count2<=4'd4;
7 i. R# i/ h) t& |% D" xend
3 [' p4 X4 y) J, T; Ielse if((count1==4'd0)&&(count2==4'd0))
; _* ?4 R; ]/ m5 d, ~begin2 x& W' e9 B4 D' x* w
count1<=4'd0;
' V. l. b. K" u6 t  Pcount2<=4'd4;8 X7 K1 C9 g: u) y, `
end
9 d% c% p6 `2 ~6 jelse if(count1==4'd0)
$ ~# ^& V8 \6 S# Y  Wbegin' S( e" c) w  _3 B2 a$ x5 @$ }) \
count2<= count2-1'b1;
7 Z# A6 R; Z( ?+ ?count1<=4'd9;
5 {+ L/ y0 N% r! z4 oend# G7 ^: D! C, g8 h' V6 {6 u
else count1<=count1-1'b1;
8 Y9 _' W' X/ l  z; ~reg [26:0]count_1ms;//6 n; R. W" u  X! d. s" t$ _
always@(posedge clk or negedge rst_n)3 h: R, d- G& U
if(!rst_n) count_1ms<=27'd0;  
) x0 B8 B4 e, j' Y* Velse if(count_1ms==27'd49_999) count_1ms<=27'd0;/ H, q* u2 ]# w$ Z" g. O( f
else count_1ms<=count_1ms+1'b1;
! n9 n) q" o) K9 u6 f( Z( Kwire clk_dis=(count_1ms==27'd49_999);//
+ r/ `+ M$ h4 O2 m//% ~+ c; V& z; s, W  ?
reg [1:0]state;4 I+ c- q7 M* O7 f
always@(posedge clk_dis or negedge rst_n)+ i" P- T# ^8 [9 b
if(!rst_n)0 @0 G$ z' G; p; v/ X
begin
/ w* V0 S0 x/ c" _/ Kled_reg<=8'hff;% G9 ^  j! Y: s. z6 ^' F
led_seg_reg<=6'b111111;
( Y* z# s; ^' r( k% rstate<=2'b00;4 A* U+ G% e* G/ [7 \
end) j; }9 _( i# W  z% O. e* H
else if(state==2'b00)
' J+ k. R: _$ w$ Q2 _6 Ubegin1 g7 v( h; O; N+ y% D% G4 r- V
state<=2'b01;" W! y" S8 a! i0 c0 _& d' E
led_seg_reg<=6'b111101;- Y  T3 M; ]8 L' j: i) y7 x( C
case(count2)
- Q3 i: O& l2 p4'd0: led_reg<=seg_num0;  " `6 Z/ v3 @6 s& q, G$ W( ~
4'd1: led_reg<=seg_num1;  
: `. h/ w9 F7 E% y. [1 ?4'd2:led_reg<=seg_num2;
/ z- s# S! j' c; g4'd3: led_reg<=seg_num3;  
2 x& G; O* k9 B4'd4: led_reg<=seg_num4;  
# b! L, v7 l8 P% Q5 Z4'd5: led_reg<=seg_num5;  ! u) |' D! p/ c. }, w1 r$ X) `
4'd6: led_reg<=seg_num6;  
9 P: T; E$ B/ ~: D. _8 L4'd7: led_reg<=seg_num7;  
8 b) n3 ]( L) i" f4'd8: led_reg<=seg_num8;   ! Z  j- E9 w* l9 x& w  S
4'd9: led_reg<=seg_num9;  
7 U$ n( \( j) H* w" r$ rdefault: led_reg<=seg_num0;  
- \) [; C; f& r# Q6 s# zendcase1 \8 B# @2 s5 ~8 z. \
end
: x; ?. }$ U+ x: n, M$ z; D% lelse if(state==2'b01)3 ]& A! ~' V8 I. [  P& n$ }- L
begin
' A# a) t' h' G1 w' o! ^- gstate<=2'b00;8 E' ^1 w+ g# {3 X, q
led_seg_reg<=6'b111110;
; S4 ^: O) H' s: \2 @* ^' Wcase(count1)& @7 N: |0 J; J* T/ h
4'd0:led_reg<=seg_num0;
; X9 S" V( i+ @4'd1:led_reg<=seg_num1;
, U% Q; v" K- j9 j4'd2:led_reg<=seg_num2;
4 }6 V9 L% f: s) l) w0 I# I4'd3:led_reg<=seg_num3;! @3 B0 o4 q6 T! r6 B
4'd4:led_reg<=seg_num4;
2 ?; T' p( Z4 \4'd5:led_reg<=seg_num5;
' Q% n' f  T5 D5 g$ J, H4'd6:led_reg<=seg_num6;
, V7 k) [5 [0 k) d$ Y0 M* {4'd7:led_reg<=seg_num7;
' L: t2 F0 p7 C/ q4'd8:led_reg<=seg_num8;8 i0 [. M* F1 N: B' Y
4'd9:led_reg<=seg_num9;
- j  F2 B2 Z; \/ z% J& l2 j1 ~( |default:led_reg<=seg_num0;1 z2 h& w* p# M  C
endcase
: P8 e) [- Z1 _+ E1 jend# D8 y5 i% F0 @0 o5 z' @) \
reg isEn;' G3 h. H: g5 S& q6 z; l
always@(posedge clk or negedge rst_n)
, f* \6 S  v6 \6 e5 N, c+ ]! t& vif(!rst_n)
8 T7 }3 w7 |9 g& S* Mbegin6 y# Y) u% \+ h% X" y2 |
isEn<=1'b0;
- ?* \+ O2 c/ [  rend% s5 S3 c- H: }+ Y$ q0 }
else
! r: B  D0 b* U2 I0 {2 R" a) H* Mbegin
& S2 y, |# x- P. \; E! HisEn<=1'b1;3 r2 Z2 v# P+ q* c/ k
end/ C+ N5 k& K) ~: M3 Q1 B0 {- m
assign led=led_reg;  {* j1 L* Q1 I) e+ K( @8 K0 e8 ]
assign led_seg=led_seg_reg;
1 u  s2 _$ f8 }  d8 n, ]4 G# `assign SOS_En_Sig=isEn;% \1 P$ l; Y2 ]4 a" p
endmodule7 W5 i- U. J' K$ @4 H% n- M
# o2 i: a0 Q, K  I$ p' x- n# q* D1 _& D" c
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2025-2-17 16:07 , Processed in 0.060657 second(s), 31 queries , Gzip On.

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

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

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