- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
电子线路设计、测试及实验(二)
多功能数字钟实验报告
一、实验名称:多功能数字钟
二、实验任务及要求:
1.实验任务:用FPGA器件和EDA技术实现多功能数字钟的设计
2.实验要求:基本功能:以数字形式显示时、分、秒的时间
小时计数器为同步24进制,要求手动校时校分
扩展功能:任意时刻闹钟
小时显示(12/24)切换电路
仿广播电台整点报时
自动报整点时数
三、实验条件
1.实验仪器:FPGA实验开发装置
2.实验软件:ISE
3.实验板:Basys2
四、电路设计过程
1.组成框图
主体电路Verilog实现的层次图
任意闹钟设定模块
数字钟总体设计框图
2.工作原理
分频器模块:设置输入为50MHz的时钟信号,设置一个25位宽计数信号
Count,每经过一个周期Count加一,当Count从0计数经过9500000
个cp周期时输出信号翻转一次并且Count清零重新开始计数,最终输出
1Hz时钟信号。
时分秒记时显示模块:由10进制计数器和6进制计数器组成60进制秒
计数器模块和60进制分计数器模块分别显示秒钟和分钟,由24进制计
数器显示小时。将1Hz的时钟信号作为60进制秒计数器的时钟脉冲,将
60进制秒计数器的进位信号作为60进制分计数器的使能信号,将60进
制分计数器的进位信号作为24进制时计数器的使能信号,进而完成时分
秒的显示控制。
12/24进制转换模块:设置一个选择控制信号en和上、下午指示信号PM,
当en=1时选择12进制,en=0时选择24进制。选择12进制时,若小时
大于12则使其自动减12,否则保持不变。当小时大于12时PM=1,指示
灯亮表示下午,否则指示灯不亮表示上午。
整点报时模块:设置一个计数信号right,它的值为24进制时的整点数,
用1Hz时钟信号作为脉冲控制,每1s响一次,每响一次right值减一,
控制整点报时的次数。
七段数码管显示控制模块;设置一个选择信号switch,当switch=1时显
示小时和分钟;当switch=0时选择显示分钟和秒。显示小时时若en=1
且小时数大于12则自动减12显示12进制,若en=0则显示24进制。
动态显示控制模块:用50Hz作为脉冲信号,设置一个20位计数信号Count,
每经过一个时钟脉冲加计数,设置2-4线译码器输入信号
s1=Count[19],s2=Count[18],则每经过262144个时钟周期,即约0.005s
后s1s0加一,译码器输出改变一次,进而控制让哪个显示器显示出时间。
3.单元电路设计(或源代码及注释)及仿真波形
10进制计数器:
modulecounter10(outputreg[3:0]Q10,inputcp,inputcr,inputen);
always@(posedgecpornegedgecr)
begin
if(~cr)Q10=4b0000;//异步清零
elseif(~en)Q10=Q10;//保持计数器不变
elseif(Q10==4b1001)Q10=4b0000;//计到9变回0
elseQ10=Q10+1b1;//计数器加1
end
endmodule
6进制计数器
文档评论(0)