找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

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

[复制链接]

2

主题

2

帖子

21

积分

二级会员(20)

Rank: 2Rank: 2

积分
21
跳转到指定楼层
#
发表于 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);- a8 w6 Q/ P2 x& z. @
input clk,rst_n;
, l3 V, C% Y: u& }5 s- q3 {4 boutput [7:0]led;
# g3 D! M5 O! _" G, K* O" ^, J% Qoutput [5:0]led_seg;
, o2 M) l5 c. K" z) p, ^4 Houtput SOS_En_Sig;
% i+ e5 l$ a, r: C1 Tparameter seg_num0=8'hc0,
( J" E, Q9 O) D0 A6 [& B! {5 U          seg_num1=8'hf9,
% j0 y( b3 g& z* x$ i! O6 D             seg_num2=8'ha4,
2 K: d/ @. @) j! B9 R/ o9 c7 A             seg_num3=8'hb0,+ Z3 M3 r; }1 `8 J) d
             seg_num4=8'h99,, e3 }4 D: [9 Z2 ]+ c& ]
             seg_num5=8'h92,: e. E2 B: f( K
             seg_num6=8'h82,4 s+ h/ f- ~5 j& p0 D9 ^" H
             seg_num7=8'hf8,
. j5 I$ h% G" O3 V% A6 I             seg_num8=8'h80,* j# }4 C2 R2 V  e
             seg_num9=8'h90;$ f/ G4 \/ N: s3 i' W! L: f. i
parameter seg_en0=6'b111110,
4 [* j$ t' ?- I  U& o' n' Z          seg_en1=6'b111101,
: A1 Z1 H5 u' ]             seg_en2=6'b111011,4 K6 ]0 X. o2 M1 u# n- p
             seg_en3=6'b110111,1 J. ^/ v& W: y4 ?2 Q7 m! W" J" J& w
             seg_en4=6'b101111,
/ R6 ~& `% v1 ?! C             seg_en5=6'b011111;- V( j% U1 r% M5 ^
reg [26:0]count;* k1 j, A* X! L  c1 t7 ^6 W0 {
reg [3:0] count1;
; y- ~, c0 S4 F" D9 Y$ `" ~- L# Nreg [3:0] count2;
' E4 w* C+ U* ]reg [7:0] led_reg;9 d; b. Q- V/ ?+ m; ]. L
reg [5:0] led_seg_reg;- E1 z! h; @' X
always@(posedge clk or negedge rst_n)
2 w/ i, \( H1 |) bif(!rst_n) count<=27'd0;
" ^2 |7 j" Y! f, \2 N) Delse if(count==27'd49_999_999) count<=27'd0;, @7 O" u& B3 g/ c# |* T
else count<=count+1'b1;
# [0 g0 J9 @/ B* twire clk_div=(count==27'd49_999_999);
( I8 Z$ e7 ~/ p+ T! talways@(posedge clk_div or negedge rst_n)
$ Q# T/ \6 ], N. G/ L* S. ]. Bif(!rst_n)
+ N1 J! ?& y' zbegin
7 ~7 `7 D- \, e0 V$ hcount1<=4'd0;3 ]+ B) x$ \# m
count2<=4'd4;; V( Z2 n, o# E% Q# y
end. v, `" S3 L; m; d+ q# K
else if((count1==4'd0)&&(count2==4'd0))' z! j3 ~$ n& b2 `5 H
begin
& l, s+ P% y4 ^- Scount1<=4'd0; 0 i5 T; x- \/ k
count2<=4'd4;6 ?& s2 r. _& |4 c, a
end
. b! _, W' [  T  t* C# {else if(count1==4'd0)
6 B$ d; w( V  S  _/ O9 y" ^! _begin. o* D* s4 X/ y# D2 Q
count2<= count2-1'b1;8 \: \- U8 L- {  w/ G; {
count1<=4'd9;; p* x$ P, `+ T
end$ q# O" ~+ S: a& y% P3 L1 z
else count1<=count1-1'b1;
. c/ `+ W6 H9 d* f$ qreg [26:0]count_1ms;//
* l# E) q& z$ ]7 P. kalways@(posedge clk or negedge rst_n)
4 j- w: t) L" W: |if(!rst_n) count_1ms<=27'd0;  
0 W! Y8 K/ H/ P; qelse if(count_1ms==27'd49_999) count_1ms<=27'd0;
5 x! f2 u; H+ ^( r' {; zelse count_1ms<=count_1ms+1'b1;
9 @7 V! e+ w& ^  O# z$ Iwire clk_dis=(count_1ms==27'd49_999);//
& @0 R; F) W! |& L; a+ G7 `' E4 @2 q//5 y, t( A( W, y2 D& p
reg [1:0]state;
) f# P- G7 V6 M0 Galways@(posedge clk_dis or negedge rst_n)
+ m: U9 ~7 Q' r3 b6 a' Q, w& }if(!rst_n)
! N! a- O* K- _7 O! _! ibegin
4 t0 q- y3 {" W- L& l* Fled_reg<=8'hff;, r* Y4 Q# D. A! ^  e9 ]
led_seg_reg<=6'b111111;" Y" c2 e4 i+ f( @1 `& [+ b  z2 B
state<=2'b00;
7 l# m; n# Q( v# O6 {2 @end) I# q( {6 e0 q! W! V4 a
else if(state==2'b00)
$ U' R: X% X6 O/ Kbegin
9 c5 c; Q, T% U- ?4 mstate<=2'b01;
& D% ~: r2 z# p# |1 cled_seg_reg<=6'b111101;: I7 Q/ {) Z8 R$ `0 _) o( v0 I
case(count2)
. q# z" s6 D2 x  D4'd0: led_reg<=seg_num0;  
9 B& `- d) D9 V: ]5 Z9 @( ]  o' T4'd1: led_reg<=seg_num1;  
& p( w/ {8 e; z2 w. S" T4'd2:led_reg<=seg_num2; 3 O/ h" A6 w$ e
4'd3: led_reg<=seg_num3;  
3 p; h  L8 c. O, L' b4'd4: led_reg<=seg_num4;  
/ d5 ~' l* W) X" L# R, v; U4'd5: led_reg<=seg_num5;  : U% ?4 h* _; v! Z
4'd6: led_reg<=seg_num6;  % {. r9 o2 q( r4 j9 e: x! s
4'd7: led_reg<=seg_num7;  " w$ }2 h; R& h+ n' ]8 [
4'd8: led_reg<=seg_num8;   
5 C% }, V, o- C7 {3 g  o4'd9: led_reg<=seg_num9;  
! u3 K$ I9 z8 n4 Y( Q/ r8 M/ udefault: led_reg<=seg_num0;  . v$ J5 v' j7 s& i
endcase
3 X3 p+ N6 _, F+ F- G. W& [3 aend
8 `# ]" ?0 j& D1 |. |, n3 B+ relse if(state==2'b01)
: f( d2 s# c- d2 s: Y9 _8 W0 Zbegin : S) ^' b0 t* P+ {& \# L) m4 I
state<=2'b00;' S) f  i1 j8 Y4 r+ B' p* q' B
led_seg_reg<=6'b111110;
- A) c  u1 G" k* {. l. gcase(count1)1 l7 a( N6 H: B
4'd0:led_reg<=seg_num0;
' y# x3 q/ \* ^; r4'd1:led_reg<=seg_num1;
. x3 r* a" I! j/ ]* k+ H) Q' @4'd2:led_reg<=seg_num2;! F: l  b$ T, D# F. C8 C
4'd3:led_reg<=seg_num3;/ |* l8 c: u. K! L' F# ]  \8 b
4'd4:led_reg<=seg_num4;3 O. E& K* x: D$ u$ w& Y# |  ]
4'd5:led_reg<=seg_num5;% \) `8 p. F1 _7 x6 J6 Q8 [3 U* S
4'd6:led_reg<=seg_num6;& J) j; o9 O: G. N
4'd7:led_reg<=seg_num7;
& L2 W6 P  i3 y" }( K) g( ^; C4'd8:led_reg<=seg_num8;4 h6 p6 H0 p3 d- P2 f/ O+ y3 p
4'd9:led_reg<=seg_num9;: i: e- k4 X8 V( o
default:led_reg<=seg_num0;
- ^6 J& h$ i" r& [: {9 I6 fendcase
( @( C- \( r# T# e( a" vend3 Y! ~0 L. \/ D0 x) j
reg isEn;* M$ l( N0 T' E2 Y
always@(posedge clk or negedge rst_n)
0 j+ J5 H) [) q5 p+ a! V% @if(!rst_n)
( _0 F* {# [4 \# Z3 R9 wbegin
" @* h& Q, W3 i0 E8 q; xisEn<=1'b0;
; A1 m  c' q4 q: S5 Zend
: U3 e4 F% |9 d7 `3 r4 U' ?- gelse- J. H+ n: O% |: V
begin3 K) R8 T1 U/ y" S  t9 G3 z
isEn<=1'b1;
+ L  k8 p5 B# ?; C3 \0 ~& V2 Rend
& K! r. C5 w! C- V$ j5 Uassign led=led_reg;
4 x. a  e- b# T3 I* r% {assign led_seg=led_seg_reg;# Y9 `0 H& w  k
assign SOS_En_Sig=isEn;
: z. J% [# X2 cendmodule. E" r; x6 |" {% Y
- u8 h) w. B2 k- d  A* _' G5 B
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2025-2-17 16:19 , Processed in 0.056078 second(s), 32 queries , Gzip On.

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

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

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