eda数字钟实验报告_3.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验四 数字钟设计 实验目的 进一步学习更复杂的EDA熟练项目设计,更的掌握VHDL语言设计。 学习动态数码管的VHDL编程。 更加熟练计时显示、进位和校时的编程方法。 实验内容与要求 1、在实验箱上实现动态扫描数码管显示时分秒; 2、可以预置为12小时计时显示和24小时计时显示; 3、一个调节键,用于调节目标数位的数字。对调节的内容敏感,如调节分钟或秒时,保持按下时自动计数,否则以脉冲计数; 4、一个功能键,用于切换不同状态:计时、调时、调分、调秒。 三、设计思路 首先设计分和秒的计时模块,由于分和秒都是模六十计数,输出都设计有一个进位,当计时到59后又从零开始计数,此时进位输出由零变为1,进位端形成一个上升沿作为下一模块的计数脉冲,所以秒模块的进位用来作为分模块的计数脉冲,分模块的计数模块用来作为时模块的计数脉冲。小时计数计数模块设置一个控制端用来控制模24和模12计数。此外设计一个校时控制模块,输入端分别为秒、时、分的手动控制计数端和正常计数时的各计时模块的计时脉冲,以及一个控制端控制正常计时和校时。最后设计一个动态扫描模块,用来动态显示时间。由于实际实验箱最小频率脉冲为2HZ,因此需要设计一个二分频的模块用来得到1HZ秒计时模块。 四、实验程序(程序来源:独立设计编写) 二分频模块 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY div2 IS PORT(clk : IN STD_LOGIC; clk2: out STD_LOGIC); END div2; ARCHITECTURE behav OF div2 IS signal temp:std_logic; BEGIN PROCESS(clk) BEGIN IF clkEVENT AND clk=1 THEN temp=not temp; 输入时钟上升沿时输出变换一次电平,实现二分频 END IF; END PROCESS; clk2=temp; END behav; 模60计时模块 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNT60 IS PORT (CLK,RST,EN : IN STD_LOGIC; 计时脉冲,复位端,使能端 CQ0: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); 个位BCD码输出 CQ1: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); 十位BCD码输出 COUT : OUT STD_LOGIC); 进位输出 END CNT60; ARCHITECTURE behav OF CNT60 IS SIGNAL CQI0: STD_LOGIC_VECTOR (3 DOWNTO 0); SIGNAL CQI1: STD_LOGIC_VECTOR (3 DOWNTO 0); SIGNAL COUT0 : STD_LOGIC; BEGIN PROCESS(CLK,RST,EN) BEGIN IF RST=1 THEN CQI0 =(OTHERS =0); 检测到复位信号则输全为零 ELSIF CLKEVENT AND CLK=1 THEN IF EN =1 THEN IF CQI0 9 THEN CQI0 =CQI0+1; ELSE CQI0 =(OTHERS=0); END IF; END IF; IF CQI0 = 9 THEN COUT0 = 1; ELSE COUT0=0; END IF; END IF; END PROCESS; CQ0=CQI0; PROCESS(COUT0,RST) 个位的进位作为十位计数的脉冲 BEGIN IF RST=1 THEN CQI1 =(OTHERS =0); 复位时输出变为零 ELSIF COUT0EVENT AND C

文档评论(0)

132****1393 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档