欢迎来到天天文库
浏览记录
ID:53053902
大小:148.60 KB
页数:5页
时间:2020-03-31
《EDA时钟实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、学校:五邑大学学院:信息工程学院姓名:梁杰帆实验:数字时钟一、实验目的:1.了解VHDL的程序设计,学会编写,调试,运行和仿真。2.掌握数字顶层原理图的设计与仿真。3.掌握多位计数器相连的设计方法。4.掌握十二进制,六十进制计数器的设计方法。二、设计要求使用顶层原理图与Verilog语言设计一个数字时钟,要求可以显示时,分,秒。三、顶层原理图设计3.1、模六十计数器模六十计数器由一个模六与模十的lpm计数器组合而成。3.2、模十二计数器模十二计数器有两个模十的74160计数器组合而成。整体结构图:功能描述:电路时钟由FPBA内部50MHZ脉冲提供,经由50M_100HZ_fenpin模块分频为
2、100HZ的脉冲。输入mod60的计数器,当作秒计时。mod60计数器计数值达到59时自动清零,并输出一个脉冲给第二个mod60计数器,当作分计时。当第二个mod60计数器计数值达到59时,自动清零,输出一个脉冲给mod12计数器,当mod12计数器计数值达到12自动清零。完成了十二小时的计时,并重新开始计时。由于计数器输出为四位的BCD码,故需要将BCD码转换成七位二进制才能显示相应数字。四、Verilog语言设计modulemod60(clk,clr,HL,HH,ML,MH,SL,SH,);inputclk,clr;outputreg[6:0]HL,HH,ML,MH,SL,SH;reg[7
3、:0]count_outS,count_outM,count_outH;wirecountS,countM;//秒计数部分always@(posedgeclkorposedgeclr)beginif(clr)count_outS<=0;//同步清零elsebeginif(count_outS[3:0]==9)begincount_outS[3:0]<=0;//低四位满九即清零if(count_outS[7:4]==5)count_outS[7:4]<=0;//低四位满九且高四位满五时高四位清零elsecount_outS[7:4]<=count_outS[7:4]+1;//低四位满九且高四位不
4、满五时高四位加一endelsecount_outS[3:0]<=count_outS[3:0]+1;//低四位不满九时低四位加一endendassigncountS=(count_outS==59)?1:0;//当秒计数值达到59是countS产生一个脉冲always@(*)//47译码显示begincase(count_outS[7:4])//高四位显示4'd0:SH=~7'b1111110;4'd1:SH=~7'b0110000;4'd2:SH=~7'b1101101;4'd3:SH=~7'b1111001;4'd4:SH=~7'b0110011;4'd5:SH=~7'b1011011;d
5、efault:SH=~7'b1111110;endcasecase(count_outS[3:0])//低四位显示4'd0:SL=~7'b1111110;4'd1:SL=~7'b0110000;4'd2:SL=~7'b1101101;4'd3:SL=~7'b1111001;4'd4:SL=~7'b0110011;4'd5:SL=~7'b1011011;4'd6:SL=~7'b1011111;4'd7:SL=~7'b1110000;4'd8:SL=~7'b1111111;4'd9:SL=~7'b1111011;default:SL=~7'b1111110;endcaseend//minuteal
6、ways@(posedgeclrorposedgecount_outS)//产生清零信号或产生秒计数满59进位信号进入这个alwaysbeginif(clr)count_outM<=0;//同步清零elsebeginif(count_outM[3:0]==9)begincount_outM[3:0]<=0;//低四位满九即清零if(count_outM[7:4]==5)count_outM[7:4]<=0;//低四位满九且高四位满五时高四位清零elsecount_outM[7:4]<=count_outM[7:4]+1;//低四位满九且高四位不满五时高四位加一endelsecount_outM
7、[3:0]<=count_outM[3:0]+1;//低四位不满九时低四位加一endendassigncountM=(count_outM==59)?1:0;//当秒计数值达到59是countS产生一个脉冲always@(*)//47译码显示begincase(count_outS[7:4])//高四位显示4'd0:MH=~7'b1111110;4'd1:MH=~7'b0110000;4'd2:M
此文档下载收益归作者所有