文档详情

基于xilinx仿真 数字电子时钟的VHDL设计.doc

发布:2017-01-29约字共8页下载文档
文本预览下载声明
VHDL语言设计数字时钟 实验性质:综合性 实验级别: 开课单位:信息与通信工程学院通信工程系 学时:4学时 一、实验目的: 1、学习用VHDL语言实现比较大型的电路的方法。 2、继续巩固cpld技术层次化设计方法。 二、实验器材: 计算机、Quartus II软件或xilinx ISE 三、实验内容: 设计一数字时钟,要求具有时、分、秒、计数显示功能,以24小时循环计时;具有清零,调节小时,分钟功能;具有整点报时功能。 四、实验步骤: 1、根据电路特点,用层次设计的概念,将此任务分成若干模块,规定每一模块的功能和各模块之间的接口。让几个学生分作和调试其中之一,然后再将各模块合起来联试。以培养学生之间的合作精神,同时加深层次化设计概念。 2、了解软件的元件管理深层含义,以及模块元件之间的连接概念,对于不同目录下的同一设计,如何融合。 3、模块说明: 各种进制的计数及时钟控制模块(10进制、6进制、24进制) 扫描分时显示,译码模块 各模块都用VHDL语言编写 实现电子钟原理图 各模块程序 秒模块: library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; ---- Uncomment the following library declaration if instantiating ---- any Xilinx primitives in this code. --library UNISIM; --use UNISIM.VComponents.all; entity second is Port ( clk : in STD_LOGIC; reset : in STD_LOGIC; semin : in STD_LOGIC; enmin : out STD_LOGIC; daout : out STD_LOGIC_VECTOR (6 downto 0)); end second; architecture Behavioral of second is signal count:std_logic_vector(6 downto 0); signal enmin_1,enmin_2:std_logic; begin daout=count; enmin_2=(semin and clk); enmin=(enmin_1 or enmin_2); process(clk,reset,semin) begin if(reset=0)then count=0000000; enmin_1=0; elsif(clkevent and clk=1)then if(count(3 downto 0))=1001then if(count16#60#)then if(count=1011001)then enmin_1=1;count=0000000; else count=count+7; end if; else count=0000000; end if; elsif(count16#60#)then count=count+1; enmin_1=0; else count=0000000;enmin_1=0; end if; end if; end process; end Behavioral; 分模块: library IEEE; use IEEE.STD_LOGIC_1164
显示全部
相似文档