基于VHDL的自动打铃设计_毕业设计
基于vhdl的电子闹钟设计

基于VHDL的数字闹钟设计摘要:随着EDA技术的发展和应用领域的扩大与深入,EDA技术在电子信息、通信、自动控制及计算机应用领域的重要性日益突出。
EDA技术就是依赖功能强大的计算机,在EDA工具软件平台上,对以硬件描述语言VHDL为系统逻辑描述手段完成的设计文件,自动地完成逻辑优化和仿真测试,直至实现既定的电子线路系统功能。
本文介绍了基于VHDL硬件描述语言设计的多功能数字闹钟的思路和技巧。
在Quart us11开发环境中编译和仿真了所设计的程序,并逐一调试验证程序的运行状况。
仿真和验证的结果表明,该设计方法切实可行,该数字闹钟可以实现调时定时闹钟播放音乐功能具有一定的实际应用性。
关键字:闹钟FPGA VHDLQuartus II一、电子钟相关功能描述如下:(1) 计时功能:这是本计时器设计的基本功能,可进行时、分、秒计时,并显示。
(2)闹钟功能:如果当前时间与设置的闹钟时间相同,则扬声器发出一段音乐,并维持一分钟。
(3) 调时调分调闹钟功能:当需要校时或者要重新设置闹钟的时间时,可通过实验箱上的按键控制。
二、设计原理:数字闹钟电路的基本结构由两个60进制计数器和一个24进制计数器组成,分别对秒、分、小时进行计时,当计时到23时59分59秒时,再来一个计数脉冲,则计数器清零,重新开始计时。
秒计数器的计数时钟CLK为1Hz的标准信号。
当数字闹钟处于计时状态时,秒计数器的进位输出信号作为分钟计数器的计数信号,分钟计数器的进位输出信号又作为小时计数器的计数信号时、分、秒的计时结果通过6个数码管来动态显示。
数字闹钟除了能够正常计时外,还应能够对时间进行调整。
因此,通过模式选择信号KEY1、KEY2控制数字钟的工作状态,即控制数字钟,使其分别工作于正常计时,调整分、时和设定闹钟分、时5个状态。
当数字闹钟处于计时状态时,3个计数器允许计数,且秒、分、时计数器的计数时钟信号分别为CLK,秒的进位,分的进位;当数字闹钟处于调整时间状态时,被调的分或时会一秒一秒地增加;当数字钟处于闹钟定时状态时,可以设定小时和分;当计时到所设定的时刻时,spea k将会被赋予梁祝音乐信号用于驱动扬声器,持续1分钟。
VHDL 数字电子钟报告

实验报告实验项目名称:数字电子钟的设计一、实验目的掌握VHDL程序设计方法二、实验内容和要求能够实现小时(24进制)、分钟和秒钟(60进制)的计数功能具有复位功能,功能扩展:具有复位、整点报时提示、定时闹钟等功能在软件工具平台上,进行VHDL语言的各模块编程输入、编译实现和仿真验证。
三、设计思想本实验所设计的闹钟可分为四部分,并主要由三个子程序组成,这里所说的四部分主要是ADD60的计数、ADD2的计数、comp模块的比较,以及顶层文件的映射作用。
ADD60计数器,主要用于对分钟和秒钟进行计数,如果达到60的时候马上进1。
ADD24计数器,主要用于对时钟进行计数,如果达到24,则进1,即1day。
COMP模块主要用于对输入的时间和系统时间进行比较,如果相等的时候则有输出co=1,闹钟相应。
顶层文件则是通过ADD60,ADD24,COMP连接而形成端口相对应的映射从而达到闹钟所需的要求。
然后通过进行各个模块的设计输入,编译和仿真分块单独调试仿真,以使得设计符合要求。
程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CLOCK ISPORT(CLK,RESET:IN STD_LOGIC;hi,mi,si:IN STD_LOGIC_VECTOR(5 DOWNTO 0);inc,ring,day:OUT STD_LOGIC;hour,minute,second:OUT STD_LOGIC_VECTOR(5 DOWNTO 0));END ENTITY CLOCK;ARCHITECTURE behav OF CLOCK ISCOMPONENT ADD60PORT(CLK,RST:IN STD_LOGIC;Y:OUT STD_LOGIC_VECTOR(5 DOWNTO 0);CO:OUT STD_LOGIC );END COMPONENT;COMPONENT ADD24PORT(CLK,RST:IN STD_LOGIC;Y:OUT STD_LOGIC_VECTOR(5 DOWNTO 0);CO:OUT STD_LOGIC );END COMPONENT;SIGNAL d,e,f:STD_LOGIC;SIGNAL Y1,Y2,Y3:STD_LOGIC_VECTOR(5 DOWNTO 0);COMPONENT COMPPORT(RST,CLK:IN STD_LOGIC;h,m,s,h1,m1,s1:IN STD_LOGIC_VECTOR(5 DOWNTO 0);ho,mo,so:OUT STD_LOGIC_VECTOR(5 DOWNTO 0);inc,co:OUT STD_LOGIC);END COMPONENT;BEGINP1:ADD60 PORT MAP(RST=>RESET,CLK=>CLK,Y=>Y1,CO=>d);P2:ADD60 PORT MAP(RST=>RESET,CLK=>d,Y=>Y2,CO=>e);P3:ADD24 PORT MAP(RST=>RESET,CLK=>e,Y=>Y3,CO=>day);P4:COMP PORT MAP(RST=>RESET,CLK=>CLK,s=>Y1,m=>Y2,h=>Y3,s1=>si,m1=>mi,h1=>hi,co=>ring,so=> second,mo=>minute,ho=>hour,inc=>INC);END ARCHITECTURE behav;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ADD60 ISPORT(CLK,RST:IN STD_LOGIC;Y:OUT STD_LOGIC_VECTOR(5 DOWNTO 0);CO:OUT STD_LOGIC );END ADD60;ARCHITECTURE behav OF ADD60 ISBEGINPROCESS(CLK,RST)V ARIABLE t:STD_LOGIC_VECTOR(5 DOWNTO 0);BEGINIF RST='1' THEN t:="000000";ELSIF CLK'EVENT AND CLK='1' THENIF t<59 THEN t:=t+1;ELSE t:="000000";END IF;IF t=59 THEN CO<='1';ELSE CO<='0';END IF;END IF;Y<=t;END PROCESS;END behav;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ADD24 ISPORT(CLK,RST:IN STD_LOGIC;Y:OUT STD_LOGIC_VECTOR(5 DOWNTO 0);CO:OUT STD_LOGIC );END ADD24;ARCHITECTURE behav OF ADD24 ISBEGINPROCESS(CLK,RST)V ARIABLE t:STD_LOGIC_VECTOR(5 DOWNTO 0); BEGINIF RST='1' THEN t:=(OTHERS =>'0');ELSIF CLK'EVENT AND CLK='1' THENIF t<23 THEN t:=t+1;ELSE t:=(OTHERS =>'0');END IF;IF t=23 THEN CO<='1';ELSE CO<='0';END IF;END IF;Y<=t;END PROCESS;END behav;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY COMP ISPORT(RST,CLK:IN STD_LOGIC;h,m,s,h1,m1,s1:IN STD_LOGIC_VECTOR(5 DOWNTO 0);ho,mo,so:OUT STD_LOGIC_VECTOR(5 DOWNTO 0);inc,co:OUT STD_LOGIC);END ENTITY COMP;ARCHITECTURE behav OF COMP ISSIGNAL t:STD_LOGIC;BEGINPROCESS(RST,CLK,h,m,s)BEGINIF RST='1' THEN co<='0';ELSIF CLK'EVENT AND CLK='1' THENIF (h=h1 and m=m1 and s=s1)THEN CO<='1';ELSE co<='0';END IF;IF (s=59 and m=59) THEN t<='1';ELSE t<='0';END IF;END IF;ho<=h;mo<=m;so<=s;inc<=t;END PROCESS;END behav;RTL效果图如下:ADD60仿真波形:ADD24仿真波形:Comp仿真波形:闹钟仿真波形:该设计包含实现小时(24进制)、分钟和秒钟(60进制)的计数功能,具有复位功能,整点报时提示,定时闹钟功能,其中hi,mi,si是设置闹钟的输入,ring是闹钟输出,inc是整点输出,day是日期,hour,minute,second是显示当前时间,reset是清零复位端。
vhdl语言实例练习 闹钟系统控制电路

一、课程设计的目的与要求1.设计目的●熟悉MAXPLUS2/Quartus II软件,掌握软件的VHDL程序输入、程序编译和程序仿真操作;●学习利用VHDL语言设计闹钟系统控制电路程序。
2.设计要求●根据设计正文提出的闹钟控制电路功能设计相应VHDL程序。
●有能力的同学,可以在设计正文提出的闹钟功能基础上,再提出新的功能并完成设计。
二、设计正文设计一个闹钟系统控制电路,其功能如下:计时功能:是钟表的基本功能,这里要求设计的时钟能够显示小时、分钟、秒钟(用户可以选择时钟工作方式是24小时显示方式或12小时显示方式)。
闹钟功能:用户设置闹钟时间,当时钟时间与闹钟时间相同时,闹钟发出警报。
VHDL源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL; ——包含库和程序包entity naozhong isport( clk,reset:in std_logic;resettime: in std_logic_vector(16 downto 0);——端口表定义clk,reset,clocktime等输入变量;elert,hour,minute,secind输出变量clocktime:in std_logic_vector(16 downto 0);elert:out std_logic;hour: out std_logic_vector(4 downto 0);minute: out std_logic_vector(5 downto 0);second: out std_logic_vector(5 downto 0));end naozhong;ARCHITECTURE clock of naozhong isSIGNAL count1 : STD_LOGIC_VECTOR (5 DOWNTO 0);SIGNAL count2 : STD_LOGIC_VECTOR (5 DOWNTO 0);SIGNAL count3 : STD_LOGIC_VECTOR (4 DOWNTO 0); ——设置信号count1count2 count3 BEGINsecond<=count1;minute<=count2;hour<=count3;PROCESS(clk,reset)BEGINif (clocktime=count3&count2&count1) then ——闹钟报警功能:当现在时间与设定报警时间相同时,发出警报elert<='1';elseelert<='0';end if;IF (reset='1')THENcount1<=resettime(5 downto 0);count2<=resettime(11 downto 6); ——计时功能:以24小时的时钟计时count3<= resettime(16 downto 12);elsif (clk'event AND clk='1') thencount1<=count1+'1';if (count1="111011") thencount2<=count2+'1';count1<="000000";if(count2="111011")thencount3<=count3+'1';count2<="000000";if (count3="10111")thencount3<="00000";end if;end if;end if;end if; ——程序结束END PROCESS;END clock;三、实验结果与分析图表1闹钟系统控制—秒钟由图表1看出在时钟信号clk作用下,秒钟由000000,000001,000010,000100,依次递增计时,并且从闹钟定时clocktime=00000000000000000,报时输出elert=1,完成报时功能。
vhdl课程设计(电子钟+闹铃)

数字钟的设计一.体系功效概述(一).体系实现的功效:1.具有“时”.“分”.“秒”的十进制数字显示(小时从00~ 23).2.具有手动校时.校分.校秒的功效.3.有准时和闹钟功效,可以或许在设定的时光发出闹铃声.4.能进行整点报时.从59分50秒起,每隔2秒发一次低音“嘟”的旌旗灯号,持续5次,最后一次为高音“嘀”的旌旗灯号.(二).各项设计指标:1.显示部分采取的6个LED显示器,从高位至低位分离显示时.分.秒.2.有一个设置调闹钟准不时光.正常时光的按钮,选择调的对象.3.有三个按钮分离调时.分.秒的时光.4.有一个按钮用作开启/封闭闹铃.5.别的须要两个时钟旌旗灯号来给体系供给脉冲旌旗灯号,使时钟和闹钟正常工作,分离为1Hz.1kHz的脉冲.二.体系构成以及体系各部分的设计1.体系构造描写//请求:体系(或顶层文件)构造描写,各个模块(或子程序)的功效描写;(一)体系的顶层文件:1、顶层文件图:(见下页)2、各模块的解释:(1).7个输入量clk_1khz.clk_1hz.key_slt.key_alarm.sec_set.min_set.hou r_set:个中clk_1khz为闹铃模块供给时钟,处理后能产生“嘟”.“嘀”和变更的闹铃声音;clk_1hz为计时模块供给时钟旌旗灯号,每秒计数一次;key_slt选择设置对象:准时或正常时光;key_alarm可以或许开启和封闭闹铃;sec_set.min_set.hour_set用于设置时光或准时,与key_slt相联系关系.各按键输出为脉冲旌旗灯号.(2).CNT60_A_SEC模块:这个模块式将clk_1hz这个时钟旌旗灯号进行60进制计数,并产生一个分钟的触发旌旗灯号.该模块能将当前计数值及时按BCD码的格局输出.将该输出接到两位LED数码后能不时显示秒的状况.经由过程alarm_clk可以选择设置对象为时光照样准时价.在设置时光模式上,key上的一个输入脉冲可以将clk的输入旌旗灯号加一.在设置准时模式上,key上的脉冲只修正准时价,不影响时光脉冲clk的状况.同时该模块具有两个输出口out_do.out_di来触发整点报时的“嘟”.“嘀”声音.(3).CNT60_A_MIN模块:这个模块式将CNT60_A_SEC的输出旌旗灯号进行60进制计数,并产生一个时位的触发旌旗灯号.该模块能将当前计数值及时按BCD码的格局输出.将该输出接到两位LED数码后能不时显示分的状况.经由过程alarm_clk可以选择设置对象为时光照样准时价.在设置时光模式上,key上的一个输入脉冲可以将clk的输入旌旗灯号加一.在设置准时模式上,key上的脉冲只修正准时价,不影响时光脉冲clk的状况.同时该模块具有三个输出口out_do.out_di.out_alarm来触发整点报时的“嘟”.“嘀”.闹铃声音.(4).CNT24_A_HOUR模块:这个模块式将CNT60_A_MIN的输出旌旗灯号做24进制计数.该模块能将当前计数值及时按BCD码的格局输出.将该输出接到两位LED数码后能不时显示时的状况.经由过程alarm_clk 可以选择设置对象为时光照样准时价.在设置时光模式上,key 上的一个输入脉冲可以将clk的输入旌旗灯号加一.在设置准时模式上,key上的脉冲只修正准时价,不影响时光脉冲clk的状况.同时该模块具有一个输出口out_alarm来触发整点报时的闹铃声音.(5).PWM_OUT模块:该模块为PWM产生模块,经由过程EN可开启和封闭PWM输出.模块依据CLK旌旗灯号二分频产生的高下音,并组合,能输出三种声音状况——“嘟”.“嘀”.闹铃.而该三种声音要被秒.分.时的输出触发才干输出PWM.(二)体系各个模块的VHDL程序:(1).CNT60_A_SEC模块:程序源代码如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt60_a_sec isport(clk,clr,enb: in std_logic;--clk:时钟输入旌旗灯号,clr:清零端,enb:使能端key: in std_logic;--输入按键脉冲,调剂闹铃准时或时光alarm_clk: in std_logic;--1:alarm 0:clk--设置模式选择:闹铃调节模式.时光调节模式qout_sl: out std_logic_vector(3 downto 0); --显示输出秒的低位qout_sh: out std_logic_vector(3 downto 0);--显示输出秒的高位co: out std_logic; --进位输出,触发分计数模块out_do: out std_logic;--在整点报时中输出“嘟”触发旌旗灯号out_di: out std_logic --在整点报时中输出“嘀”触发旌旗灯号);end;architecture a of cnt60_a_sec issignal qout2_l:std_logic_vector(3 downto 0);signal qout2_h:std_logic_vector(3 downto 0);signal alarm_l:std_logic_vector(3 downto 0);signal alarm_h:std_logic_vector(3 downto 0);signal clk1,clk2,tclk,aclk,ac_slt: std_logic;beginprocess(alarm_clk) --当该端口输入一个脉冲时,修正设置模式:时光调剂或闹铃模式切换beginif alarm_clk'event and alarm_clk='1' thenif ac_slt='0' then--假如为准时模式,将改为闹铃模式ac_slt<='1';elseac_slt<='0';end if;end if;end process;process(key,clk,ac_slt)--依据设置模式,处理key上的脉冲旌旗灯号beginif ac_slt='0' then --时光调剂模式aclk<='0';if clk='1' and key='1' then --clk=1则tclk<=0,经由过程挖洞方法添加一个脉冲tclk<='0';elsif clk='0' and key='1' then --clk=0,则tclk<=1,产生一个高电平,添加一脉冲tclk<='1';elsetclk<=clk;end if;elsif ac_slt='1' then --闹铃调剂模式tclk<=clk;aclk<=key; --key上的脉冲直接修正闹铃准时价end if;end process;process(tclk,clr,enb) --60进制计数,个位.十位放在两个暂时变量中,暗示秒的状况beginif clr='1' then--clearing works at the state of high voltageqout2_l<="0000";qout2_h<="0000";elsif tclk'event and tclk='1' thenif enb='1' then--enable works at high voltageif qout2_l="1001" and qout2_h="0101" thenqout2_l<="0000";--a full mode is completed and a carryout is generatedqout2_h<="0000";elsif qout2_l="1001" thenqout2_l<="0000";qout2_h<=qout2_h+1;elseqout2_l<=qout2_l+1;-- in process of countingend if;end if;end if;end process;process(aclk,clr,enb)--修正闹铃的准时价if clr='1' then--clearing works at the state of high voltagealarm_l<="0000";alarm_h<="0000";elsif aclk'event and aclk='1' thenif enb='1' then--enable works at high voltageif alarm_l="1001" and alarm_h="0101" thenalarm_l<="0000";--a full mode is completed and a carryout is generatedalarm_h<="0000";elsif alarm_l="0101" thenalarm_l<="0000";alarm_h<=alarm_h+1;elsealarm_l<=alarm_l+1;-- in process of countingend if;end if;end if;end process;process(qout2_l,qout2_h,alarm_l,alarm_h,alarm_clk)-- 产生进位,显示时光或闹铃准时价if qout2_l="0000" and qout2_h="0000" thenco<='1';elseco<='0';end if;if ac_slt='0' then -- 显示时光qout_sl<=qout2_l;qout_sh<=qout2_h;else -- 显示准时价qout_sh<=alarm_h;qout_sl<=alarm_l;end if;end process;process(qout2_l,qout2_h) -- 依据秒的状况输出“嘟”.“嘀”触发旌旗灯号beginif qout2_h="0101" thenif qout2_l="0000" thenout_do<='1';elsif qout2_l="0010" thenout_do<='1';elsif qout2_l="0100" then out_do<='1';elsif qout2_l="0110" then out_do<='1';elsif qout2_l="1000" then out_do<='1';elseout_do<='0';end if;elsif qout2_h="0000" then if qout2_l="0000" then out_di<='1';out_do<='0';elseout_di<='0';end if;elseout_do<='0';out_di<='0';end if;end process;end;(2).CNT60_A_MIN模块:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt60_a_min isport(clk,clr,enb: in std_logic;--clk:时钟输入旌旗灯号,clr:清零端,enb:使能端key: in std_logic;--输入按键脉冲,调剂闹铃准时或时光alarm_clk: in std_logic;--1:alarm 0:clk--设置模式选择:闹铃调节模式.时光调节模式qout_ml: out std_logic_vector(3 downto 0);--显示输出分的低位qout_mh: out std_logic_vector(3 downto 0);--显示输出分的高位co: out std_logic; --进位输出,触发时计数模块out_alarm:out std_logic;--闹铃触发旌旗灯号,时光到后输出高电平触发闹铃out_do,out_di: out std_logic--在整点报时中输出“嘟”“嘀”触发旌旗灯号);end;architecture a of cnt60_a_min issignal qout2_l:std_logic_vector(3 downto 0);signal qout2_h:std_logic_vector(3 downto 0);signal alarm_l:std_logic_vector(3 downto 0);signal alarm_h:std_logic_vector(3 downto 0);signal clk1,clk2,tclk,aclk,ac_slt: std_logic;beginprocess(alarm_clk)--当该端口输入一个脉冲时,修正设置模式:时光调剂或闹铃模式切换beginif alarm_clk'event and alarm_clk='1' thenif ac_slt='0' then--假如为准时模式,将改为闹铃模式ac_slt<='1';elseac_slt<='0';end if;end if;end process;process(key,clk,ac_slt)--依据设置模式,处理key上的脉冲旌旗灯号beginif ac_slt='0' then --时光调剂模式aclk<='0';if clk='1' and key='1' then--clk=1则tclk<=0,经由过程挖洞方法添加一个脉冲tclk<='0';elsif clk='0' and key='1' then--clk=0,则tclk<=1,产生一个高电平,添加一脉冲tclk<='1';elsetclk<=clk;end if;elsif ac_slt='1' then --闹铃调剂模式tclk<=clk;aclk<=key;--key上的脉冲直接修正闹铃准时价end if;end process;process(tclk,clr,enb) --60进制计数,个位.十位放在两个暂时变量中,暗示分的状况beginif clr='1' then--clearing works at the state of high voltageqout2_l<="0000";qout2_h<="0000";elsif tclk'event and tclk='1' thenif enb='1' then--enable works at high voltageif qout2_l="1001" and qout2_h="0101" thenqout2_l<="0000";--a full mode is completed and a carryout is generatedqout2_h<="0000";elsif qout2_l="1001" thenqout2_l<="0000";qout2_h<=qout2_h+1;elseqout2_l<=qout2_l+1;-- in process of countingend if;end if;end if;end process;process(aclk,clr,enb)--修正闹铃的准时价beginif clr='1' then--clearing works at the state of high voltagealarm_l<="0000";alarm_h<="0000";elsif aclk'event and aclk='1' thenif enb='1' then--enable works at high voltageif alarm_l="1001" and alarm_h="0101" thenalarm_l<="0000";--a full mode is completed and a carryout is generatedalarm_h<="0000";elsif alarm_l="0101" thenalarm_l<="0000";alarm_h<=alarm_h+1;elsealarm_l<=alarm_l+1;-- in process of countingend if;end if;end if;end process;process(qout2_l,qout2_h,alarm_l,alarm_h,alarm_clk)-- 产生进位,显示时光或闹铃准时价of high voltagebeginif qout2_l="0000" and qout2_h="0000" thenco<='1';elseco<='0';end if;if ac_slt='0' thenqout_ml<=qout2_l;qout_mh<=qout2_h;elseqout_mh<=alarm_h;qout_ml<=alarm_l;end if;end process;process(qout2_l,qout2_h,alarm_l,alarm_h)–断定准时价与时光值相等,输出闹铃触发旌旗灯号beginif qout2_l=alarm_l and qout2_h=alarm_h thenout_alarm<='1';elseout_alarm<='0';end if;end process;process(qout2_l,qout2_h)-- 依据分的状况输出“嘟”.“嘀”触发旌旗灯号beginif qout2_l="1001" and qout2_h="0101" thenout_do<='1';elseout_do<='0';end if;if qout2_l="0000" and qout2_h="0000" thenout_di<='1';elseout_di<='0';end if;end process;end;(3).CNT24_A_HOUR模块:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt24_a_hour isport(clk,clr,enb: in std_logic;--clk:时钟输入旌旗灯号,clr:清零端,enb:使能端key: in std_logic;--输入按键脉冲,调剂闹铃准时或时光alarm_clk: in std_logic;--1:alarm 0:clk--设置模式选择:闹铃调节模式.时光调节模式qout_hl: out std_logic_vector(3 downto 0);--显示输出时的低位qout_hh: out std_logic_vector(3 downto 0);--显示输出时的高位co: out std_logic;--进位输出out_alarm:out std_logi--闹铃触发旌旗灯号输出);end;architecture a of cnt24_a_hour issignal qout2_l:std_logic_vector(3 downto 0);signal qout2_h:std_logic_vector(3 downto 0);signal alarm_l:std_logic_vector(3 downto 0);signal alarm_h:std_logic_vector(3 downto 0);signal clk1,clk2,tclk,aclk,ac_slt: std_logic;beginprocess(alarm_clk)--当该端口输入一个脉冲时,修正设置模式:时光调剂或闹铃模式切换beginif alarm_clk'event and alarm_clk='1' thenif ac_slt='0' then--假如为准时模式,将改为闹铃模式ac_slt<='1';elseac_slt<='0';end if;end if;end process;process(key,clk,ac_slt)--依据设置模式,处理key上的脉冲旌旗灯号beginif ac_slt='0' then --时光调剂模式aclk<='0';if clk='1' and key='1' then--clk=1则tclk<=0,经由过程挖洞方法添加一个脉冲tclk<='0';elsif clk='0' and key='1' then--clk=0,则tclk<=1,产生一个高电平,添加一脉冲tclk<='1';elsetclk<=clk;end if;elsif ac_slt='1' then --闹铃调剂模式tclk<=clk;aclk<=key; --key上的脉冲直接修正闹铃准时价end if;end process;process(tclk,clr,enb)--24进制计数,个位.十位放在两个暂时变量中,暗示时的状况beginif clr='1' then--clearing works at the state of high voltageqout2_l<="0000";qout2_h<="0000";elsif tclk'event and tclk='1' thenif enb='1' then--enable works at high voltageif qout2_l="1001" thenqout2_l<="0000";--a full mode is completed and a carryout is generatedqout2_h<=qout2_h+1;elsif qout2_l="0011" and qout2_h="0010" thenqout2_l<="0000";qout2_h<="0000";elseqout2_l<=qout2_l+1;-- in process of countingend if;end if;end if;end process;process(aclk,clr,enb)--修正闹铃的准时价beginif clr='1' then--clearing works at the state of high voltagealarm_l<="0000";alarm_h<="0000";elsif aclk'event and aclk='1' thenif enb='1' then--enable works at high voltageif alarm_l="1001" thenalarm_l<="0000";--a full mode is completed and a carryout is generatedalarm_h<=qout2_h+1;elsif alarm_l="0011" and alarm_h="0010" thenalarm_l<="0000";alarm_h<="0000";elsealarm_l<=alarm_l+1;-- in process of countingend if;end if;end if;end process;process(qout2_l,qout2_h,alarm_l,alarm_h,alarm_clk)-- 产生进位,显示时光或闹铃准时价of high voltagebeginif qout2_l="0000" and qout2_h="0000" thenco<='1';elseco<='0';end if;if ac_slt='0' thenqout_hl<=qout2_l;qout_hh<=qout2_h;elseqout_hh<=alarm_h;qout_hl<=alarm_l;end if;end process;process(qout2_l,qout2_h,alarm_l,alarm_h)--准时价与时光值相等,则输出闹钟触发旌旗灯号beginif qout2_l=alarm_l and qout2_h=alarm_h thenout_alarm<='1';elseout_alarm<='0';end if;end process;end;2.体系以及各个模块的仿真波形(1).体系仿真波形:注:因为下面的模块仿真消失毛刺,导致体系的仿真图有必定的问题.(2).CNT60_A_SEC模块:注:在50.52.54.56.58处有嘟触发输出,00处有嘀触发输出等.(3).CNT60_A_MIN模块:注:本图展现了按键调节时光值和准时价的仿真波形(部分仿真图).注:该模块的仿真波形图,具有嘟.嘀声音触发输出,准时与时光相等时有闹铃触发输出等.(4).CNT24_A_HOUR模块注:该模块的仿真图,包含按键调剂时光.准时价,闹钟触发输出等.(5).PWM_OUT模块(分三段剪切下来的,展现了三种声音的后果)(1).“嘟”.“嘀”输出波形(只有在en有脉冲,打开PWMO后,才有用)注:在打开输出后,当两路嘟.嘀触发输入同时有用时分离输出嘟.嘀声音.当两路闹铃触发同时有用时开端闹铃声音的输出.注:闹铃输出的变更情形(“嘀”.“嘟”瓜代发声).注:闹铃输出的变更情形.3.下载时选择的开辟体系模式以及管脚界说表1 GW48-CK开辟体系工作模式:3三.课程设计过程中碰到的问题以及解决办法主如果在“调剂时光”和“调剂准时”的上面碰到异常大的艰苦.与开端想象的不一样,一个过程中不克不及参加时钟旌旗灯号,没可以或许将按键脉冲直接与时钟脉冲进行累加.同时,在对VHDL的语法的熟习上也消费了大量的时光.最后的解决办法是,经由过程另一个过程,先将这两个旌旗灯号进行处理后,分离产生aclk和tclk分离为准时调剂部分.和时光调剂部分供给时钟旌旗灯号.调剂按键的脉冲旌旗灯号和正常的时钟旌旗灯号不是按照简略的或运算来处理的.1).假如要调剂时光:1、当时钟旌旗灯号是高电平,按键旌旗灯号也是高电日常平凡,则给tclk赋值0.2、当时钟旌旗灯号是高电平,按键旌旗灯号是低电日常平凡,则给tclk赋值1.3、当时钟旌旗灯号是低电平,按键旌旗灯号是高电日常平凡,则给tclk赋值1.4、当时钟旌旗灯号是低电平,按键旌旗灯号是低电平是,则给tclk赋值0.如许无论按键脉冲是在高电平照样低电平,或者是在高下电平两种状况下消失,其最终成果都是会多产生一个脉冲旌旗灯号,导致计数值变更,达到修正时光的目标.时代,aclk始终不变.2).假如要调剂准时:1.时钟输入旌旗灯号赋值给tclk2.按键输入旌旗灯号赋值给aclk如许,当按键脉冲停止时,准时调剂旌旗灯号会消失一个脉冲.而时钟旌旗灯号不受影响.别的,在闹铃产生上也碰到了一些小问题,最后,经由过程在产生周期较长的旌旗灯号,切换输出值的内容“嘟”还有“嘀”,最后的后果就是“嘟”.“嘀”声音瓜代发出.在仿真时,大多半模块会消失毛刺,会导致最后的总仿真成果不是很乐不雅,会评脉冲的几个干扰加上去.这方面,我试图调了良久也没解决.不过因为在现实下载后照样相比较较正常的,仿真中的毛刺最后没有清除失落.。
毕业设计——基于PLC的自动打铃系统的设计

毕业设计——基于PLC的自动打铃系统的设计(0南刑11稿紫瑟寿字院毕业论文题目:基于PLC的自动打铃系统的设计作者:学号:系:____________________ 自动控制系______________________ 专业:________________ 电气自动化技术 ____________________ 班级:___________________________________________________ 2013年5月目录第一章绪论 (1)1.11.2 课题的目的和意义 (1)第二章方案论证 (2)2.1 继电器控制 (2)2.2 单片机控制 (2)2.3 plc 控制 (2)第三章可编程控制器介绍 (4)3.1 Plc 基本构成为: (4)3.2 工作原理 (5)3.3 功能特点 (5)3.4 发展历史 (6)3.5 系统集成 (7)3.6 选型规贝U (8)3.7 选择型号 (12)第四章系统整体设计 (14)4.1 系统组成 (14)4.2 显示接口电路 (14)4.3 7448芯片介绍 (16)4.4 电铃电路 (18)4.5 硬件设计 (18)第五章软件设计与调试 (21)5.1 系统流程图 (21)5.2 计时及时间调节程序 (22)5.3 显小程序 (23)5.4 作息时间表程序 (25)5.5 控制程序 (27)总程序 (29)34结论致谢 (35)参考文献 (36)第一章绪论1.1 背景学校,办公室,工厂,车站,码头,医院,电信,和其他企业和机构通常以信号铃作为时间信号,铃声已经成为人们生活的一部分。
铃声作为信号,最原始的方式是手动控制。
后来出现了电铃但没有实现自动控制。
随着计算机技术,自动控制技术和通信技术的发展,出现了新兴的技术-电气控制与可编程控制技术。
由于这些新兴的技术的发展,人们用不同的方法来实现了自动化打铃。
自动打铃,包括使用单芯片控制,PLC控制,计算机控制,继电器控制几种控制方式。
电子秒表设计VHDL

一、设计题目:基于VHDL语言的电子秒表设计(可调时,有闹钟、定时功能)二、设计目的:⑴掌握较复杂的逻辑设计和调试⑵学习用原理图+VHDL语言设计逻辑电路⑶学习数字电路模块层次设计⑷掌握QuartusII软件及Modelsim软件的使用方法三、设计内容:(一)设计要求1、具有以二十四小时计时、显示、整点报时、时间设置和闹钟的功能。
2、设计精度要求为1S。
(二).系统功能描述1 . 系统输入:系统状态及校时、定时转换的控制信号为k、set、ds;时钟信号clk,采用实验箱的50MHz;系统复位信号为reset。
输入信号均由按键产生。
系统输出:8位LED七段数码管显示输出,蜂鸣器声音信号输出。
多功能数字钟系统功能的具体描述如下:2. 计时:set=1,ds=1工作状态下,每日按24h计时制计时并显示,蜂鸣器无声,逢整点报时。
3. 校时:在set=0,ds=0状态下,按下“k键”,进入“小时”校准状态,之后按下“k键”则进入“分”校准状态,继续按下“k键”则进入“秒校准”状态,之后如此循环。
1)“小时”校准状态:在“小时”校准状态下,显示“小时”数码管以1Hz的频率递增计数。
2)“分”校准状态:在“分”校准状态下,显示“分”的数码管以1Hz的频率递增计数。
3)“秒”复零状态:在“秒复零”状态下,显示“分”的数码管以1Hz的频率递增计数。
4. 整点报时:蜂鸣器在“59”分钟的第50—59,以1秒为间隔分别发出1000Hz,500Hz的声音。
5. 显示:采用扫描显示方式驱动8个LED数码管显示小时、分、秒。
闹钟:闹钟定时时间到,蜂鸣器发出交替周期为1s的1000Hz、500Hz的声音,持续时间为一分钟;6. 闹钟定时设置:在set=0,ds=1状态下,按下“k”,进入闹钟的“时”设置状态,之后按下“k键”进入闹钟的“分”设置状态,继续按下“k 键”则进入“秒”设置状态, 之后如此循环。
1)闹钟“小时”设置状态:在闹钟“小时”设置状态下,显示“小时”的数码管以1Hz 的频率递增计数。
自动打铃系统的设计毕业设计(论文)
广东省私立华联学院毕业设计(论文)题目自动打铃系统的设计系名机电系专业电子信息工程技术班级12电子1班姓名梁日成学号**********指导老师杨英杰系主任朱燊权年月日摘要自动打铃系统,是以一片8位单片机为核心的实时时钟及控制系统。
我们知道单片机的外接石英晶体振荡器能提供稳定、准确的基准频率,并经12分频后向内部定时器提供实时基准频率信号,设定定时器工作在中断方式下,连续对此频率信号进行分频计数,便可得秒信号,再对秒信号进行计数便可得到分、时等实时时钟信息。
如果石英晶体振荡器的频率信号为6MHZ,设定定时器定时工作方式1下,定时器为3CBOH,则定时器每100ms产生1次中断,在定时器的中断定时处理程序中,每10次中断,则向秒计数器加1,秒计数器计数到60则向分计数器进位(并建立分进位标志),分计数器计数到60,则向时计数器进位,如此周而复始的连续计数,便可获得时、分、秒的信号,建立一个实时时钟。
接下来便可以进行定时处理和打铃输出,当主程序检测到有分进位标志时,便开始比较当前时间(小时与分、存放在RAM中)与信息时间表上的作息时间(小时与分,存放在ROM)是否相同,如有相同者,则进行报时处理并控制打铃,如有不相同则返回主程序,如此便实现了报时控制的要求。
关键词:单片机;时间设置电路;计时电路;显示电路;定时打铃控制电路目录第一章设计方案............................................................................................................ - 3 - 1.1 研究意义及设计要求 ............................................................................................. - 3 - 1.2 基本方案........................................................................................................................ - 4 - 1.3 总体设计框图 ............................................................................................................. - 5 - 第二章电路设计............................................................................................................ - 6 - 2.1基本原理概述 .............................................................................................................. - 6 - 2.2单元电路的设计 ......................................................................................................... - 6 -2.2.1显示电路设计 ................................................................................................... - 6 -2.2.2 键盘接口电路设计 ....................................................................................... - 7 -2.2.3 响铃电路设计.................................................................................................. - 7 - 2.3 总体运行进程 ............................................................................................................. - 8 - 第三章系统程序设计...................................................................... 错误!未定义书签。
基于VHDL的自动打铃设计_毕业设计 精品
基于VHDL的自动打铃设计目录摘要 (1)Abstract (2)绪论 (3)第1章基本概念简介 (4)1.1 VHDL简介 (4)1.2 FPGA/CPLD简介 (4)1.3 Quartus II的简介 (5)第2章设计整体概述 (6)2.1 设计方案 (6)2.2 设计原理图 (6)2.3 设计流程图 (7)第3章各模块设计分析 (8)3.1 计数器模块 (8)3.1.1 秒和分计数器模块 (8)3.1.2 时计数器模块 (10)3.2 计时校时模块 (12)3.3 打铃功能模块 (13)3.4 顶层设计及原理图 (16)第4章引脚设定与下载验证 (19)4.1 引脚设定 (19)4.2 下载验证 (21)总结 (22)参考文献 (23)致谢............................................ (错误!未定义书签。
) 附录芯片引脚对照表.. (25)摘要随着EDA 技术的发展和应用领域的扩大与深入,EDA 技术在电子信息、通信、自动控制及计算机应用领域的重要性日益突出。
EDA 技术就是以计算机为工具,设计者在EDA软件平台上,对以硬件描述语言HDL(Hardware Description language)为系统逻辑描述手段完成的设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。
本设计是基于VHDL语言的自动打铃系统。
在论文中,介绍了基于VHDL语言自动打铃系统的思路,整个系统需包含秒计时模块、分计时模块、时计时模块、校时模块、打铃模块。
在Quartus II 开发环境中编译和仿真所设计的程序,并逐一调试验证程序的运行状况。
仿真和验证的结果表明,该设计方法切实可行,该打铃系统可以实现调时定时打铃功能,具有一定的实际应用性。
关键字:EDA、VHDL、打铃、Quartus IIAbstractWith the development of EDA technology and the expansion of application, the function of EDA technology in the field of electronic information communication, automatic control and computer application, is becoming more and more important. EDA technology use computer as a tool. However, designers only need to use the hardware description language HDL to describe the system on the EDA software platform. Then computer automatically finishes partition, synthesis, optimization, simulation and other function until the electronic circuit system achieves the stated performance.This design is based on the VHDL hardware description language to project a system. I introduce ideas of the bell system in this design. All of the design includes second timer module, minute timer module, hour timer module, module to adjust time and module to ring the bell according to the require of design. I complete the description of different modules with VHDL language in the Quartus II development environment, and debug one by one to check the operational status of the verification process. Simulation results show that the design method is feasible, and the bell system can be put into practical applications.Keywords: EDA, VHDL, rang the bell, the Quartus II绪论随着EDA 技术的发展和应用领域的扩大与深入,EDA 技术在电子信息、通信、自动控制及计算机应用领域的重要性日益突出。
自动打铃系统的EDA设计和仿真_毕业设计
普通本科毕业设计题目:自动打铃系统的EDA设计和仿真学院软件与通信工程学生姓名学号专业电子信息工程届别09级指导教师职称二〇一三年五月普通本科生毕业论文(设计)诚信承诺书摘要自动打铃系统可以为学校上下课时间的准确控制提供方便,并且也可以在办公室、工厂等一些场合起到提醒人们时间的作用,因此打铃器的设计有一定的实际意义。
本次设计模拟学校的打铃系统,是在Quartus II软件平台上使用硬件描述语言(HDL)语言进行设计和仿真,系统包括了24小时的计时功能、时分秒数字显示功能、时间设置功能和基本打铃等功能。
系统由时钟模块、定时模块、选择模块、闹铃模块、打铃模块、显示模块组成,由按键进行时钟的校准、复位、启用等。
本文在介绍电子设计自动化(EDA)技术的基础上,着重阐述了如何使用EDA技术进行系统的开发,以及如何实现学校打铃系统。
通过仿真验证,打铃器具有正常计时、定时报警、报警时长设定等功能,可为日常作息提供准确、便捷的提醒。
系统运行稳定,设计方法可行。
【关键词】打铃系统硬件描述语言电子自动化AbstractThe system of automatically bell provides great convenience for student to control the accurate bell-time in school, and also plays an important role in the work and life in offices, factories,and many other occasions. So it is of great practical significance for us.This design is based on the Software platforms of Quartus using hardware description language (HDL) to carry on the design and simulation. The system includes calculating displaying and setting the right time in hour, minute and second and so on. This system is made of five modules,including the clock module, time decoding module, alarm clock, control module, ringing the bell module,display module, etc. You can press the keys to start or stop the clock and correct or clean the time. Based on describing devices of EDA,this article focuses on the development method and the way to implement a school bell system.Through simulation and practical test, this system has the function of normal timing, alarming, alarming-time setting, which can provide convenient and accurate remind of daily routine.It is proved that the operation of this system is stable, and the design method is possible.【Key words】Alarm Clock System;Hardware Description Language;Electronic Design Automation目录1 绪论 (1)1.1 研究背景与意义 (1)1.2 本文的主要研究内容和任务 (2)1.2.1 EDA的发展历程 (2)1.2.1 EDA技术的优点 (2)1.3 器件及工具介绍 (3)1.3.1 QuartusⅡ设计步骤 (3)1.3.2 VHDL语言特点 (3)2.1 时钟模块 (6)2.1.1 六十进制计数器模块 (7)2.1.2 二十四进制计数器模块 (8)2.2 定时模块 (8)2.3 选择模块 (9)2.4 闹钟模块 (11)2.5 打铃模块 (12)2.5.1 打铃时间设置 (12)2.5.2 打铃时长设置 (14)2.7 电源模块 (14)2.8 本章小结 (15)3 设计结果与仿真分析 (16)3.1 时钟模块仿真分析 (16)3.1.1 六十进制计数器仿真分析 (16)3.1.2 二十四进制计数器仿真分析 (16)3.1.3 时钟计时器器仿真分析 (17)3.2 定时模块的仿真分析 (17)3.3 选择模块仿真分析 (18)3.4 闹钟模块仿真分析 (18)3.5 打铃模块仿真分析 (19)3.5.1 打铃时间仿真分析 (19)3.5.2 打铃时长仿真分析 (19)3.6 本章小结 (20)致谢 (22)参考文献 (23)附录 (24)1 绪论1.1 研究背景与意义二十一世纪的今天,电子技术的发展已经到非常成熟的阶段,并且我们也体会到了电子技术是一个永不衰败的行业,因为电子技术的广泛应用和不断的发展,现在已经遍及到了各个行业及不同领域。
基于VHDL的多功能数字闹钟设计
2 S h o o lc c l n ie r g S uh e t i tn ies y C e g u6 3 , hn ) . c o l f et a E gn e n , o tw s Ja o gUnv ri , h n d 0 C ia E r i i o t 1 1 0
得采用 了“ 自顶向下” 设计思想的 E A 解决方案得到了广泛的应用, D 从而极大地提高 了设计效率, 缩短了
产 品 的研制周 期 .再加 上其 采用 硬件 描述语 言 作为输 入 、库 的引入 、设计 文档 管理 、强 大的 电路仿 真功 能 和知识 产权 的保 护等优 点 【, 其 在现 在大 规模 电子设 计 中得 到 了广 泛 的应用 . J使 J
Ab t a t T r e f a i l r p s l a e g v n a mi g a h e i n o l f n t n l i i lco k a d t e sr n n a s r c : h e e sb e p o o as r i e i n tt e d sg fmu t u ci a g t l c n h to g a d we k i o d a
p o r mma l e i e F GA n a d r e c i t n l n u g r ga bed vc P a d h r wa e d s r i a g a e VHDL i c o d n e wi h t o ft p d wn d sg ,a d p o n a c r a c t t e me h d o — o e i n n h o e c d l r i l td wi o t r . a hmo u e a esmu ae t s fwa e h
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于VHDL的自动打铃设计目录摘要 (1)Abstract (2)绪论 (3)第1章基本概念简介 (4)1.1 VHDL简介 (4)1.2 FPGA/CPLD简介 (4)1.3 Quartus II的简介 (5)第2章设计整体概述 (6)2.1 设计方案 (6)2.2 设计原理图 (6)2.3 设计流程图 (7)第3章各模块设计分析 (8)3.1 计数器模块 (8)3.1.1 秒和分计数器模块 (8)3.1.2 时计数器模块 (10)3.2 计时校时模块 (12)3.3 打铃功能模块 (13)3.4 顶层设计及原理图 (16)第4章引脚设定与下载验证 (19)4.1 引脚设定 (19)4.2 下载验证 (21)总结 (22)参考文献 (1)致谢............................................ (错误!未定义书签。
) 附录芯片引脚对照表 (3)摘要随着EDA 技术的发展和应用领域的扩大与深入,EDA 技术在电子信息、通信、自动控制及计算机应用领域的重要性日益突出。
EDA 技术就是以计算机为工具,设计者在EDA软件平台上,对以硬件描述语言HDL(Hardware Description language)为系统逻辑描述手段完成的设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。
本设计是基于VHDL语言的自动打铃系统。
在论文中,介绍了基于VHDL语言自动打铃系统的思路,整个系统需包含秒计时模块、分计时模块、时计时模块、校时模块、打铃模块。
在Quartus II 开发环境中编译和仿真所设计的程序,并逐一调试验证程序的运行状况。
仿真和验证的结果表明,该设计方法切实可行,该打铃系统可以实现调时定时打铃功能,具有一定的实际应用性。
关键字:EDA、VHDL、打铃、Quartus IIAbstractWith the development of EDA technology and the expansion of application, the function of EDA technology in the field of electronic information communication, automatic control and computer application, is becoming more and more important. EDA technology use computer as a tool. However, designers only need to use the hardware description language HDL to describe the system on the EDA software platform. Then computer automatically finishes partition, synthesis, optimization, simulation and other function until the electronic circuit system achieves the stated performance.This design is based on the VHDL hardware description language to project a system. I introduce ideas of the bell system in this design. All of the design includes second timer module, minute timer module, hour timer module, module to adjust time and module to ring the bell according to the require of design. I complete the description of different modules with VHDL language in the Quartus II development environment, and debug one by one to check the operational status of the verification process. Simulation results show that the design method is feasible, and the bell system can be put into practical applications.Keywords: EDA, VHDL, rang the bell, the Quartus II绪论随着EDA 技术的发展和应用领域的扩大与深入,EDA 技术在电子信息、通信、自动控制及计算机应用领域的重要性日益突出。
本次毕业设计是基于VHDL的自动打铃系统,而自动打铃就是像现在的学校一样在规定的时间段铃声响起,用以作为每节课的作休时间。
而自动打铃系统可以像现在的闹钟功能类似,起到提醒的作用,从早上8点开始计时,每隔一个小时铃声响一次,每次铃声持续响30秒,一直到下午5点都是每隔一个小时响一次铃声,下午5点以后铃声即使一个小时计时到了铃声也不再响了。
为了高效率的验证设计的结果另外还需要增加一个校时模块,可以用两个指示灯的亮、灭的状态来区分两个按键的工作状态。
增加的两个按键,一个是调分按键,一个是调时按键。
开始时按下按键K1时,此时指示灯LED1变亮,指示灯LED提示系统正处于调分的状态,想调至几分时直接按K2按键下N就是想要的N分。
再次按K1键一下后,指示灯LED2处于常亮状态,即系统处于调时状态,想要7点即按K2键7下即可。
调完时和分的状态后再按K1键一下系统才会处于正常的计时状态,系统处于正常计时时LED1、LED2全都不亮。
在整个设计中,首先先做一个顶层模块,以top命名,然后再将各个模块在顶层模块中做好后再生成各模块的元器件,最后在top模块中将各个元器件按功能要求连接好后连进行编译看,是能否通过。
通过编译后再按照附录表查询对各个引脚进行设定,引脚设定完后再对顶层文件进行编译,通过编译后再进行波形仿真,如果时序仿真与功能仿真的波形都正确后再到试验箱上下载验证,验证铃声是否在规定时间内响起。
第1章基本概念简介1.1 VHDL简介VHDL是Very High Speed Integrated Circuit Hardware Description Language的缩写,意思是超高速集成电路硬件描述语言。
对于复杂的数字系统的设计,它有独特的作用。
它的硬件描述能力强,能轻易的描述出硬件的结构和功能。
这种语言的应用至少意味着两种重大的改变:电路的设计竟然可以通过文字描述的方式完成;电子电路可以当作文件一样来存储。
随着现代技术的发展,这种语言的效益与作用日益明显,每年均能够以超过30%的速度快速成长。
VHDL是美国电气和电子工程师协会制定的标准硬件描述语言(IEEE标准1076),它可用于数字电路与系统的描述、仿真和自动设计。
另外VHDL作为IEEE标准的硬件描述语言,经过十几年的发展、应用和完善,以其强大的系统描述能力,规范的程序设计结构,灵活的语言表达风格和多层次的仿真测试手段,受到业界的普遍认同和推广,成为现代EDA领域的首选硬件设计语言,而且各大EDA公司推出的EDA工具软件全部支持VHDL。
并且随着EDA技术和VHDL的广泛应用,各高等院校也纷纷开设了VHDL电路设计课程,且要求某些专业的本科生、研究生必须掌握用VHDL进行电路系统设计的方法。
VHDL已经成为高等教育中电类专业知识结构的重要组成部分。
学习者可以用EDA工具软件编辑VHDL文件,使用仿真工具仿真所设计的电路系统,并学会使用综合语句以及下载工具,最终达到能够独立设计硬件电路系统的目的。
1.2 FPGA/CPLD简介FPGA是英文Field Programmable Gate Array的缩写,即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。
它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个新概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。
FPGA的基本特点包括:首先它采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。
其次,FPGA可做其它全定制或半定制ASIC电路的中试样片,FPGA内部有丰富的触发器和I/O引脚,而且FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。
最重要的是FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。
可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。
随着电子设计自动化(EDA)技术的发展,利用计算机辅助设计和用高密度可编程逻辑器件实现数字系统已经成为发展趋势。
本次毕业设计就利用VHDL 语言的强大的电路描述和建模能力设计基于FPGA的电子时钟,可以提高利用计算机辅助设计和用高密度可编程逻辑器件实现数字系统的能力。
1.3 Quartus II的简介Quartus II 是Altera公司继Max+plus II之后开发的一种针对其公司生产的系列CPLD/PGFA器件的综合性开发软件,它的版本不断升级,从4.0版到10.0版, Quartus II 的优软件界面友好,使用便捷,功能强大,是一个完全集成化的可编程逻辑设计环境,是先进的EDA工具软件。
该软件具有开放性、与结构无关、多平台、完全集成化、丰富的设计库、模块化工具等特点,支持原理图、VHDL、VerilogHDL以及AHDL( Altera Hardware Description Language)等多种设计输入形式。
内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。
Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,还提供了完善的用户图形界面设计方式,具有运行速度快,界面统一,功能集中,易学易用等特点。