基于EDA数字钟设计报告

上传者: ltc103 | 上传时间: 2021-12-30 22:04:34 | 文件大小: 2.16MB | 文件类型: -
1题目分析 1.1 设计要求(数字钟的功能) (1)具有秒、分、时技术显示功能,且以24小时循环计时; (2)具有清零功,且能调时、调分; (3)具有整点报警功能,并且在报警过程中能中断报警。 根据以上功能要求,可设计以下的功能方块图: 1.2功能要求分析 根据以上数字钟的功能要求,需要完成以下几个部分: (1)时钟模块:由试验箱内部时钟提供,对计数器提供计数时钟信号; (2)秒钟模块:对秒进行60进制循环计数,并向分钟产生进位,同时具有调分功能; (3)分钟模块:对分进行60进制循环计数,并向小时产生进位,同时具有调时功能 (4)小时模块:对小时进行24进制循环计数。 (5)报警模块:在整点时报警,持续10秒钟,在报警过程钟可以中断。 1、模块一 SECOND LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY SECOND IS PORT (CLK: IN STD_LOGIC; --系统时钟信号 RESET:IN STD_LOGIC; --系统复位信号 SETMIN:IN STD_LOGIC; --分设置信号 ENMIN: OUT STD_LOGIC; --分计数时钟信号 DAOUT: OUT STD_LOGIC_VECTOR(6 DOWNTO 0)); --秒计数值 END ENTITY SECOND; ARCHITECTURE ART OF SECOND IS SIGNAL COUNT :STD_LOGIC_VECTOR(6 DOWNTO 0); SIGNAL ENMIN_1,ENMIN_2:STD_LOGIC; BEGIN DAOUT<=COUNT; ENMIN_2<=(SETMIN AND CLK); ENMIN<=(ENMIN_1 OR ENMIN_2); PROCESS(CLK,RESET,SETMIN) BEGIN IF (RESET='0')THEN COUNT<="0000000"; ENMIN_1<='0'; ELSIF(CLK'EVENT AND CLK='1')THEN IF(COUNT(3 DOWNTO 0)="1001")THEN IF(COUNT<16#60#)THEN IF(COUNT="1011001")THEN ENMIN_1<='1'; COUNT<="0000000"; ELSE COUNT<=COUNT+7; END IF; ELSE COUNT<="0000000"; END IF; ELSIF(COUNT<16#60#)THEN COUNT<=COUNT+1; ENMIN_1<='0'; ELSE COUNT<="0000000"; ENMIN_1<='0'; END IF; END IF; END PROCESS; END ART; 2、模块二 MINUTE LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY MINUTE IS PORT (CLK: IN STD_LOGIC; --分计数时钟信号 CLKS: IN STD_LOGIC; --时设置时钟信号 RESET: IN STD_LOGIC; --系统复位信号 SETHOUR:IN STD_LOGIC; --时设置信号 ENHOUR: OUT STD_LOGIC; --时计数时钟信号 DAOUT: OUT STD_LOGIC_VECTOR(6 DOWNTO 0)); --分计数值 END ENTITY MINUTE; ARCHITECTURE ART OF MINUTE IS SIGNAL COUNT :STD_LOGIC_VECTOR(6 DOWNTO 0); SIGNAL ENHOUR_1,ENHOUR_2:STD_LOGIC; BEGIN DAOUT<=COUNT; ENHOUR_2<=(SETHOUR AND CLKS); ENHOUR<=(ENHOUR_1 OR ENHOUR_2); PROCESS(CLK,RESET,SETHOUR) BEGIN IF (RESET='0')THEN COUNT<="0000000"; ENHOUR_1<='0'; ELSIF(CLK'EVENT AND CLK='1')THEN IF(COUNT(3 DOWNTO 0)="1001")THEN IF(COUNT<16#60#)THEN IF(COUNT="1011001")THEN ENHOUR_1<='1'; COUNT<="0000000"; ELSE COUNT<=COUNT+7; ENHOUR_1<='0'; END IF; ELSE COUNT<="0000000"; END IF; ELSIF(COUNT<16#60#)THEN COUNT<=COUNT+1; ENHOUR_1<='0' AFTER 100 NS; ELSE COUNT<="0000000";ENHOUR_1<='0'; END IF; END IF; END PROCESS; END ART; 3、模块三 HOUR LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY HOUR IS PORT (CLK: IN STD_LOGIC; --时计数时钟信号 RESET: IN STD_LOGIC; --系统复位信号 DAOUT: OUT STD_LOGIC_VECTOR(5 DOWNTO 0)); --时计数值 END ENTITY HOUR; ARCHITECTURE ZRT OF HOUR IS SIGNAL COUNT :STD_LOGIC_VECTOR(5 DOWNTO 0); BEGIN DAOUT<=COUNT; PROCESS(CLK,RESET) BEGIN IF (RESET='0')THEN COUNT<="000000"; ELSIF(CLK'EVENT AND CLK='1')THEN IF(COUNT(3 DOWNTO 0)="1001")THEN IF(COUNT<16#23#)THEN COUNT<=COUNT+7; ELSE COUNT<="000000"; END IF; ELSIF(COUNT<16#23#)THEN COUNT<=COUNT+1; ELSE COUNT<="000000"; END IF; END IF; END PROCESS; END ZRT; 4、模块四 ALERT LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY ALERT IS PORT (CLK,CLK1,RESET,STOP: IN STD_LOGIC; DAINM: IN STD_LOGIC_VECTOR(6 DOWNTO 0); --分计数值 DAINS: IN STD_LOGIC_VECTOR(6 DOWNTO 0); --秒计数值 SPEAK: OUT STD_LOGIC); --声音报警 END ALERT; ARCHITECTURE ART OF ALERT IS SIGNAL S_SPEAK : STD_LOGIC; SIGNAL ENSPEAK :STD_LOGIC; BEGIN SPEAK<=ENSPEAK AND S_SPEAK; PROCESS(CLK1,RESET) BEGIN IF (RESET='0')THEN S_SPEAK<='0'; ELSIF(CLK1'EVENT AND CLK1='1')THEN IF(DAINM="0000000")THEN IF(DAINS"0000000")THEN S_SPEAK<=CLK; ELSE S_SPEAK<='0'; END IF; ELSE S_SPEAK<='0'; END IF; END IF; END PROCESS; PROCESS(STOP,RESET,DAINS) BEGIN IF(RESET"0010000")THEN ENSPEAK<='1'; ELSIF(STOP'EVENT AND STOP='1') THEN ENSPEAK<='0'; END IF; END PROCESS; END ART;

文件下载

评论信息

  • wyw921027 :
    很好用的资料。
    2018-07-04
  • dongxiaoyao :
    各模块都可以运行,可是缺少了顶层文件,有点可惜
    2013-12-31
  • qq357617480 :
    哈哈,有用,我做课程设计,也与数字钟相关,这个帮了我不少忙。
    2013-06-17
  • itmeiluo :
    如果注释还有层次写得分明点会好点
    2012-11-19
  • heqiuya :
    层次清楚,内容完整
    2012-10-09

免责申明

【只为小站】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【只为小站】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【只为小站】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,zhiweidada#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明