计 算 机 科 学 与 技 术 学 院 EDA 课程设计报告 设计题目: 数字时钟的设计 班 级 : 姓 名: 学 号: 日 期: 2 0 1 1 年 6 月 2 0 日 一、 系 统设计要求 1、 具有时、分、秒的计数显示功能,24 小时循环显示。 2、 具有异步清零、预置初值功能,实现LED 动态显示,整点报时采用声音报时,几点报几下。 3、 采用元件例化方式实现各模块间的连接。 二、 系 统设计方案 1、 整个模块采用两个时钟,一个时钟的频率为一秒,用于程序秒的输入。另一个时钟频率较高,用于七段显示器的选择端口三八译码器的输入时钟。 2、 时分秒皆采用两个位的计数,一位代表十位,一位代表个位。分秒为60 进制,时为24 进制。个位逢九向十位进一,秒逢59 向分进一,分逢59 向时进一。 3、 在小时的子程序里把两位小时数转换成一位数作为报时程序的输入。 三、 主 要 VHDL 源程序 秒 —底层 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; ENTITY SECOND IS PORT (CLK1,R:IN STD_LOGIC; CO1:OUT STD_LOGIC; S0,S1:OUT STD_LOGIC_VECTOR(7 DOWNTO 0) ); END ; ARCHITECTURE XIA OF SECOND IS BEGIN PROCESS(CLK1,R,SS0,SS1) VARIABLE SSS0,SSS1:STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN IF R='1' THEN SSS0:="00000000";SSS1:="00000000"; ELSIF CLK1'EVENT AND CLK1='1' THEN IF SSS1="00000101" AND SSS0="00001001" THEN CO1<='1';SSS0:="00000000"; SSS1:="00000000"; ELSIF SSS0="00001001" THEN SSS0:="00000000";SSS1:=SSS1+1; ELSE SSS0:=SSS0+1;CO1<='0'; END IF; END IF; S0<=SSS0; S1<=SSS1; END PROCESS; END ; 分 —底层 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; ENTITY MINUTE IS PORT (CLK2,R,S:IN STD_LOGIC; MM0,MM1:IN STD_LOGIC_VECTOR(3 DOWNTO 0); CO2:OUT STD_LOGIC; M0,M1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ); END ; ARCHITECTURE XIA OF MINUTE IS BEGIN PROCESS(CLK2,R,S,MM0,MM1) VARIABLE MMM0,MMM1:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN IF R='1' THEN MMM0:="0000";MMM1:="0000"; ELSIF S='1' THEN MMM0:=MM0;...