EDA实验报告(时钟)

loading 分享 2026-8-1 下载文档

USE IEEE.STD_LOGIC_ARITH.ALL; ENTITY SELTIME IS

PORT(CKDSP,RESET:IN STD_LOGIC;

SECOND:IN STD_LOGIC_VECTOR(7 DOWNTO 0); MINUTE:IN STD_LOGIC_VECTOR(7 DOWNTO 0); HOUR:IN STD_LOGIC_VECTOR(7 DOWNTO 0); DAOUT:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); SEL:OUT STD_LOGIC_VECTOR(2 DOWNTO 0)); END SELTIME;

ARCHITECTURE ART OF SELTIME IS

SIGNAL SEC:STD_LOGIC_VECTOR(2 DOWNTO 0); BEGIN

PROCESS(RESET,CKDSP) BEGIN

IF(RESET='0') THEN SEC<=\

ELSIF(CKDSP'EVENT AND CKDSP='1') THEN IF(SEC=\ SEC<=\ ELSE SEC<=SEC+1; END IF; END IF; END PROCESS;

PROCESS(SEC,SECOND,MINUTE,HOUR) BEGIN

CASE SEC IS

WHEN \ WHEN \ WHEN \ WHEN \ WHEN \ WHEN \ WHEN OTHERS=>DAOUT<=\ END CASE; END PROCESS; SEL<=SEC; END ART;

此模块中,设计了一个具有6组状态的3位计数器sec,以调时时钟信号CKDSP的上升沿为激励响应。如果一个时刻的电子钟要显示的数字是六个的话,则送出并接受这一组数字需要的时间是调时时钟信号CKDSP的周期×6.即

t=T(ckdsp) ×6 (式1-1)

由于在后面将每个模块进行整合的时候,就存在如何协调每个计数器的周期,以减少出错,并且节约时间与资源。通过这个公式可以轻松得出,并且助于理解各模块之间的关系。

5. 报时模块VHDL(alert.vhd)

喇叭在整点有时有报时驱动信号产生,以及LED灯根据设计的要求再整点时有花样显示信号产生(在整点时从51秒到59秒时从左到右九个LED登依次亮起)。Alert模块产生整点报时的驱动信号speak和LED灯花样显示信号lamp[8..0]。在分位计数到59分时,秒位为51、53、55、57、59秒时扬声器会发出一秒左右的警告音,并且51、53、55、57秒为低音,59秒为高音。

程序如下: LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY ALERT IS

PORT(CLKSP:IN STD_LOGIC;

SECOND,MINUTE:IN STD_LOGIC_VECTOR(7 DOWNTO 0); SPEAK:OUT STD_LOGIC;

LAMP:OUT STD_LOGIC_VECTOR(8 DOWNTO 0)); END ALERT;

ARCHITECTURE ART OF ALERT IS SIGNAL Q500,QLK:STD_LOGIC;

SIGNAL M1,M0,S1,S0:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN

M1<=MINUTE(7 DOWNTO 4); M0<=MINUTE(3 DOWNTO 0); S1<=SECOND(7 DOWNTO 4); S0<=SECOND(3 DOWNTO 0);

PROCESS(CLKSP) BEGIN

IF (CLKSP'EVENT AND CLKSP='1') THEN

IF(M1=\ CASE S0 IS

WHEN\ WHEN\ WHEN\ WHEN\ WHEN\ WHEN\ WHEN\

WHEN\ WHEN\ WHEN OTHERS=>LAMP<=\ END CASE;

IF(S0=\OR S0=\OR S0=\OR S0=\

THEN

Q500<='1'; ELSE Q500<='0'; END IF;

SPEAK<=q500;

else LAMP<=”000000000”; END IF;

IF(M1=\

THEN

QLK<='1'; ELSE QLK<='0'; END IF;

SPEAK<=QLK; SPEAK<=QLK OR Q500; END IF; END PROCESS; END ART;

下面我们对LED显示模块和喇叭模块进行简要介绍: 【LED显示模块】:

16个发光二极管(LED1-LED16),主要用于输出显示,输出高电平时发光二极管亮。另外I/O12-I/O27在模拟信号源模块的上方通过插孔引出,我们只用其中九个(I/O12-I/O20)。

【喇叭模块】:

提供了语音输出功能,同时插孔SPEAKER引出了I/O44。

6. 显示模块VHDL(deled.vhd)

译码输出与十进制对应关系, 0111111 0000110 1011011 1001111 译码输出 0 1 2 3 十进制 1101101 1111101 0000111 1111111 译码输出 5 6 7 8 十进制 程序如下: LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; ENTITY DELED IS

PORT( S:IN STD_LOGIC_VECTOR(3 DOWNTO 0); RES:IN STD_LOGIC_VECTOR(2 DOWNTO 0); A,B,C:OUT STD_LOGIC;

D0,D1,D2,D3,D4,D5,D6:OUT STD_LOGIC); END DELED;

ARCHITECTURE ART OF DELED IS

SIGNAL DATA_4:STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL OUT_7:STD_LOGIC_VECTOR(6 DOWNTO 0);

1100110 4 1101111 9


EDA实验报告(时钟).doc 将本文的Word文档下载到电脑
搜索更多关于: EDA实验报告(时钟) 的文档
相关推荐
相关阅读