用Verilog--HDL语言编写的电子秒表.pptx

用Verilog--HDL语言编写的电子秒表.pptx

ID:61764401

大小:101.22 KB

页数:11页

时间:2021-03-19

用Verilog--HDL语言编写的电子秒表.pptx_第1页
用Verilog--HDL语言编写的电子秒表.pptx_第2页
用Verilog--HDL语言编写的电子秒表.pptx_第3页
用Verilog--HDL语言编写的电子秒表.pptx_第4页
用Verilog--HDL语言编写的电子秒表.pptx_第5页
资源描述:

《用Verilog--HDL语言编写的电子秒表.pptx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、电子秒表——VerilogHDL语言本设计是用VerilogHDL语言编写的电子秒表,精度为0.01秒,用两个按键来操作秒表(开始/暂停按键和重置按键),并用四段数码管显示。程序中的数码管驱动模块是根据BASYS2开发板数码管电路编写的。代码如下://总模块modulemiao_biao(rest,clk,a_to_g,A_TO_D,kon,clk001);inputwirerest;//复位inputwireclk;//50M时钟outputwireclk001;//输出0.01S的脉冲wire[3:0]q0;//每一位上的数据,公四位wire[3

2、:0]q1;wire[3:0]q2;wire[3:0]q3;wireQ0;//每一位计到0后,Q变为1,作为下一片的脉冲信号wireQ1;wireQ2;outputwire[6:0]a_to_g;outputwire[3:0]A_TO_D;inputwirekon;Wireclk001out;//以上是各个网络的定义,clk001可以不用当做输出//以下是各个模块的连接,以及各个模块的调用assignQ0=~(q0[0]

3、q0[1]

4、q0[2]

5、q0[3]);assignQ1=~(q1[0]

6、q1[1]

7、q1[2]

8、q1[3]);assignQ2=~

9、(q2[0]

10、q2[1]

11、q2[2]

12、q2[3]);jian_kongjian_kong0(rest,kon,clk001,clk001out);cp_001scp_001s0(rest,clk,clk001);count4count4_0(clk001out,rest,q0);count4count4_1(Q0,rest,q1);count4count4_2(Q1,rest,q2);count4count4_3(Q2,rest,q3);shumaguanshumaguan0(a_to_g,A_TO_D,clk,q3,q2,q1,q0);Endmod

13、ule//到此总模块结束modulecount4(a,clr,q);//计数器,从9计到0inputwirea;inputwireclr;outputreg[3:0]q;always@(posedgeaorposedgeclr)beginif(clr==1)q<=0;elseif(q==9)q<=0;elseq<=q+1;endendmodule//该模块的十进制计数器,每一位的数据由一个该计数器提供Moduleshumaguan(a_to_g,A_TO_D,clk,qian,bai,shi,ge);//数码管驱动outputreg[6:0]a_to

14、_g;outputreg[3:0]A_TO_D;inputwireclk;inputwire[3:0]qian;inputwire[3:0]bai;inputwire[3:0]shi;inputwire[3:0]ge;reg[3:0]duan;reg[1:0]wei;rega;reg[16:0]q;always@(posedgeclk)beginif(q==49999)beginq<=0;a<=~a;endelseq<=q+1;endalways@(*)//7位段译码case(duan)0:a_to_g=7'b0000001;1:a_to_g=7'b

15、1001111;2:a_to_g=7'b0010010;3:a_to_g=7'b0000110;4:a_to_g=7'b1001100;5:a_to_g=7'b0100100;6:a_to_g=7'b0100000;7:a_to_g=7'b0001111;8:a_to_g=7'b0000000;9:a_to_g=7'b0000100;default:a_to_g=7'b0000001;endcasealways@(*)//4位位选译码case(wei)3:beginA_TO_D=4'b1110;duan=qian;end2:beginA_TO_D=4

16、'b1101;duan=bai;end1:beginA_TO_D=4'b1011;duan=shi;end0:beginA_TO_D=4'b0111;duan=ge;enddefault:A_TO_D=4'b1110;endcasealways@(posedgea)//四个状态循环if(wei==3)wei<=0;elsewei<=wei+1;endmodule//到此数码管驱动模块结束modulecp_001s(rest,clk,a//产生0.01秒的脉冲,用来驱动计时);inputrest;inputclk;outputrega;reg[20:0

17、]q;always@(posedgeclkorposedgerest)beginif(rest==1)beg

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。