文档详情

实验五数字时钟的设计.doc

发布:2018-02-01约8.97千字共13页下载文档
文本预览下载声明
实验五 数字时钟的设计 实验性质:综合性 实验级别: 开课单位:信息与通信工程学院通信工程系 学时:4学时 一、实验目的: 1、学习用VHDL语言实现比较大型的电路的方法。 2、继续巩固cpld技术层次化设计方法。 二、实验器材: 计算机、Quartus II软件 三、实验内容: 设计一数字时钟,要求具有时、分、秒、计数显示功能,以24小时循环计时;具有清零,调节小时,分钟功能;具有整点报时功能。 四、实验步骤: 1、根据电路特点,用层次设计的概念,将此任务分成若干模块,规定每一模块的功能和各模块之间的接口。让几个学生分作和调试其中之一,然后再将各模块合起来联试。以培养学生之间的合作精神,同时加深层次化设计概念。 2、了解软件的元件管理深层含义,以及模块元件之间的连接概念,对于不同目录下的同一设计,如何融合。 3、模块说明: 各种进制的计数及时钟控制模块(10进制、6进制、24进制) 扫描分时显示,译码模块 各模块都用VHDL语言编写 五、实验模块: 秒模块 LIBRARY ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; ENTITY second IS PORT( clk, reset,setmin : IN STD_LOGIC; enmin : OUT STD_LOGIC; da0out: out std_logic_vector (6 downto 0)); END entity second; ARCHITECTURE fun OF second IS SIGNAL count: STD_LOGIC_VECTOR( 6 downto 0); BEGIN da0out = count; process ( clk , reset , setmin) begin -- enmin=k; if (reset=0) then count = 0000000; elsif (setmin=0) then enmin = clk; 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; count=0000000; ELSE count=count+7; end if; else count=0000000; end if; elsif (count 16#60#) then count = count+1; enmin=0 after 100 ns; else count=0000000; end if; end if; end process; END fun; 分析: 脉冲从0计数至59,向前进1,enmin由低电平变至高电平。 分模块 LIBRARY ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; ENTITY minute IS PORT( clk, reset,sethour : IN STD_LOGIC; enhour : OUT STD_LOGIC; da1out: out std_logic_vector (6 downto 0)); END entity minute; ARCHITECTURE fun OF minute IS SIGNAL count: STD_LOGIC_VECTOR( 6 down
显示全部
相似文档