找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 172|回复: 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);" y" a+ i$ }1 _$ t* f
input clk,rst_n;
5 a. }' r( l- R3 G$ b, Voutput [7:0]led;
' S2 E0 o9 o7 w  a2 s# Moutput [5:0]led_seg;6 l" h: l3 t5 O: x6 ~3 c
output SOS_En_Sig;3 j7 X( A, X2 l
parameter seg_num0=8'hc0,
- q8 j2 n' P% A9 H( _          seg_num1=8'hf9,, M: ^3 D- X/ M+ V+ G8 N2 U
             seg_num2=8'ha4,
# O: O' M- |8 W" ?; T( p             seg_num3=8'hb0,! I# I* r1 r3 V; a# V3 b: D
             seg_num4=8'h99,. K# G1 j9 w4 U. P2 Q; Z- H
             seg_num5=8'h92,0 h0 h! u( A# C9 R% y
             seg_num6=8'h82,
4 y% f3 p( Z7 g+ \/ M             seg_num7=8'hf8,
' v7 z! }# t+ ^1 z" `, D1 c             seg_num8=8'h80,% ^; S+ N6 I1 ~- o' q& w* |
             seg_num9=8'h90;
3 H7 B) _2 E; u8 Q2 i1 u& x5 ^parameter seg_en0=6'b111110,
% g: h: X# V7 Y/ |, ~! O# e, t9 T          seg_en1=6'b111101," k2 @; n* m0 {( R3 x* i+ h, |
             seg_en2=6'b111011,, a  S5 F2 l, U/ Z  G. w
             seg_en3=6'b110111,
( m  p2 {2 k: t, r9 A$ H, o             seg_en4=6'b101111,
+ C/ @: i" s7 S  D6 B             seg_en5=6'b011111;4 c2 t! a' A9 q6 Z7 L6 u
reg [26:0]count;5 {0 ~2 n1 o, z- `+ y6 z1 v
reg [3:0] count1;) u: z5 I3 z* k6 B: m+ z5 E7 j! H
reg [3:0] count2;
! X7 _$ w5 V* F) i9 Rreg [7:0] led_reg;
2 I' |% ~1 S1 H1 Z4 I6 jreg [5:0] led_seg_reg;! W  k; o" \7 F( Y' t. o' i+ U3 H
always@(posedge clk or negedge rst_n)7 }  d1 E2 ~. ?* b4 m# E
if(!rst_n) count<=27'd0;# @" f) h2 Z1 x/ j4 X  T
else if(count==27'd49_999_999) count<=27'd0;
# O3 |  H5 b' ^- yelse count<=count+1'b1;
) k$ S" ?# P6 \* C& s9 }6 u: W2 xwire clk_div=(count==27'd49_999_999);' s5 W$ d7 `8 ?: n* E+ y
always@(posedge clk_div or negedge rst_n)
4 R: o6 t1 e7 M2 xif(!rst_n)
) _5 c2 K& |( j1 C- `" Dbegin
% N( A! k$ `* ~count1<=4'd0;% m7 H3 j- i+ b( K6 b
count2<=4'd4;
0 _( l4 l- i5 [4 h( u, R* ^5 j7 ]end
: n. c4 P  ~( \4 H% ~else if((count1==4'd0)&&(count2==4'd0)); q5 n8 o, F0 t0 w& b- i
begin
' Q; I+ u7 p+ A- Scount1<=4'd0;
3 f* ^3 ?! D, X2 E( P! ^count2<=4'd4;
8 q1 k. n- t0 s8 ^) tend% r+ }* S  T8 m+ p
else if(count1==4'd0)  B; V& p7 x  X$ {* N$ e: t7 D
begin
: |( f0 R1 @7 g4 {) dcount2<= count2-1'b1;
! m4 G3 P- G8 K0 h" C3 R  M. n! Ucount1<=4'd9;/ n, ?, B; T1 a$ {/ h
end% X- F5 T! n  x( [, K# n( z" t
else count1<=count1-1'b1;8 z+ x2 B( j' D5 C" Z" @
reg [26:0]count_1ms;//
' X# Z/ b. N( J; D4 palways@(posedge clk or negedge rst_n)7 G/ h! [( A+ L1 b
if(!rst_n) count_1ms<=27'd0;  1 b+ B1 S$ ]9 c- S7 k0 m& D
else if(count_1ms==27'd49_999) count_1ms<=27'd0;
8 x$ l. C- f9 I2 N& Uelse count_1ms<=count_1ms+1'b1;3 a( H) o4 `; B$ e5 u, ~; Y
wire clk_dis=(count_1ms==27'd49_999);//$ w5 R* D; E9 R, J+ ^
//' K( H' \3 e3 W9 r
reg [1:0]state;& ]  s" i# {2 K6 ~0 q8 D
always@(posedge clk_dis or negedge rst_n)- K; O, r" u! L% `) `; [' R
if(!rst_n)
4 W$ [8 `5 A. e* {# S2 v0 Bbegin
1 ^) i; U9 |, P; }( M; H* h1 U$ eled_reg<=8'hff;
2 s; ]9 {% s' G8 H5 hled_seg_reg<=6'b111111;
) W/ \7 F. g8 y6 z. C4 b6 k  bstate<=2'b00;
1 ^! t1 A3 W5 H5 k3 nend
; Y0 K; ^9 O( Q% lelse if(state==2'b00)
  a3 n. _: k3 H7 N( @) ^/ ^begin
3 S2 ^* e" O) B* A# T  }state<=2'b01;; R( V! a  e1 ^, \" \5 k- a" C, e
led_seg_reg<=6'b111101;
* A) j% w0 l7 E: u3 }1 }case(count2)! R7 `" B0 r) c7 u- Q5 e' _, A( ]
4'd0: led_reg<=seg_num0;  ( J; s1 U) x- i' a
4'd1: led_reg<=seg_num1;  # v- T4 G5 o0 W0 b4 l# U
4'd2:led_reg<=seg_num2;
% f- n7 p1 T8 V: l  y, f! _8 k. o/ q4'd3: led_reg<=seg_num3;  $ k! J* M, y% Z
4'd4: led_reg<=seg_num4;  / q; h- S" L: ?- W; B
4'd5: led_reg<=seg_num5;  ) z$ _1 k0 {: K( E
4'd6: led_reg<=seg_num6;  * _7 Q' o& |3 U
4'd7: led_reg<=seg_num7;  
- |, N% ]7 p6 `4'd8: led_reg<=seg_num8;   
6 A' ]6 e  f6 ?7 d! \4'd9: led_reg<=seg_num9;  7 a- z4 w5 w7 M/ G4 v- H
default: led_reg<=seg_num0;  
3 E/ \4 o4 `4 u+ X* zendcase
7 `) R1 |+ g! t+ xend
: d# a- c  m" F8 Z+ T, Nelse if(state==2'b01); B: u6 G; q* l$ p; j
begin 1 \3 o) m+ |- R, {. N( m/ g. m' D
state<=2'b00;' Q7 N: U  W) n
led_seg_reg<=6'b111110;8 N# c( M4 f' p4 N! ]& o" K2 q
case(count1)
. q, {8 R8 n9 Y  E% V3 Y4'd0:led_reg<=seg_num0;% h2 u3 P# @3 A
4'd1:led_reg<=seg_num1;
0 z" t+ c- n. U0 w/ `# N4'd2:led_reg<=seg_num2;& E% J* W7 u3 q5 K: y7 {: j
4'd3:led_reg<=seg_num3;
) Q  P1 m  L* C* Q/ Z/ y4'd4:led_reg<=seg_num4;8 F4 n8 |2 t! d
4'd5:led_reg<=seg_num5;
0 A$ \  V, L5 S/ O1 V! _  J4 C4 W4'd6:led_reg<=seg_num6;
" r4 y% U  ?8 I; @$ E7 T4'd7:led_reg<=seg_num7;0 b; c, r, Q! a1 J  c4 ^
4'd8:led_reg<=seg_num8;4 i- [$ K" G3 i
4'd9:led_reg<=seg_num9;
# A% m9 u5 Q/ `! |default:led_reg<=seg_num0;6 J, k" S9 U' F8 T1 g" D& Q
endcase
( |1 T' y, {/ y0 y2 Nend
( t2 {+ K% a/ H& U- o$ Qreg isEn;3 x- Z' y: p! Z% v7 K* {
always@(posedge clk or negedge rst_n); M3 y3 ^- T1 F8 M% x
if(!rst_n)2 K0 E! E, P7 h6 m
begin
) ^1 l( p: D; Y  _# M- |: ?isEn<=1'b0;
) W- m; \+ I6 n. `" Wend/ O" h  V) {3 O0 i8 }
else
$ c$ }3 o( O& h1 Ubegin
+ M8 d- {1 z! U' `7 O$ P* w' JisEn<=1'b1;/ `, R, o* V+ [+ ~) `4 F5 I4 K# y
end2 ?0 R8 A1 B; m, P, @
assign led=led_reg;8 \( k& [$ G8 x4 L0 B7 Z
assign led_seg=led_seg_reg;( q  o/ [' p* m
assign SOS_En_Sig=isEn;
; n& W% |3 F0 \  i6 K4 m8 H6 Pendmodule
" \$ ~" ^3 t% t7 b7 ^& l3 L4 s/ j7 i  J9 M' k4 p( G% j2 h
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2025-4-18 03:48 , Processed in 0.054172 second(s), 30 queries , Gzip On.

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

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

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