EDA实现多功能数字钟
用EDA技术设计多功能数字钟
用EDA技术设计多功能数字钟摘要近年来,随着电子技术和通信技术的飞速发展,要求设计研究方面运用电子设计自动化(Electronic Design Automation,简称EDA)工具进行开发。
在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。
EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。
EDA技术的出现,极大地提高了电路设计的效率和可靠性,减轻了设计者的劳动强度。
本设计为通过EDA仿真软件MAX+PLUSII设计一个多功能数字钟,并下载到硬件中实现。
本系统的设计电路由计时电路、动态显示电路、闹钟电路、控制电路、显示电路等部分组成。
本系统采用动态显示的原理在数码管上显示12小时计时的时刻,具有清零、保持、校时、报时的功能,并在此基础上增加了闹铃、秒表、12小时制计时、A/P显示等功能。
在设计过程中,将各部分均模块化,各模块间相互独立,又相互联系。
本实验吸收了硬件软件化的思想,大部分功能通过软件来实现,使电路简单明了,系统稳定性大大提高。
本系统不仅成功的实现了要求的基本功能,发挥部分也得到完全的实现,而且有一定的创新功能。
关键词数字钟、计数器、多功能、动态显示、原理图、仿真、模块化AbstractRecently, with the rapid development of electronic and communication technology, it is required to use Electronic Design Automation (EDA) as a tool in designing systems. EDA derives from the concepts of Computer Aided Design, Computer Aided Manufacture, Computer Aided Test and Computer Aided Engineering in the 1990s. Designers use Hardware Describe Language to accomplish designing files on the platform of software. Then, computer will finish the work of logical compiling, simplification, division, synthesis, optimizing, layout, tracking and simulating automatically, and it can also accomplish the work of proper compiling, logical projecting and downloading of the target chip. As a result, it evidently improves the efficiency and reliability of the circuit design, and it also lighten designer’s workload.This experiment has designed a multifunctional digital clock via using the MAX+PLUSII, and the basic and extended performances and functions are successfully realized in the hardware. This system includes time circuit, alarm circuit, dynamic display circuit, control circuit, display circuit. In the system, the segment display can display time in the 24-hour format, it includes such functions as clear, hold, check the time and so on. We can also add alarm, stopwatch, 12-hour format display and other functions on that basic. In the designing process, many parts are modularized, they are not only independent but also related. Many functions are finished by the software. So it simples the circuit and enhances the stability of the system. Not only all the basic and extended performances and functions are successfully realized, but also accomplish some innovation functions.KeywordsDigital clock, arithmometer, multifunctional, dynamic display,schematic diagram, simulate, modularization目录摘要 1ABSTRACT 11、前言62、EDA技术的介绍及发展 73、总体方案设计 93.1 设计内容 93.2 方案比较 (9)3.3 方案论证 (10)3.4 方案选择 104、多功能数字中的设计 124.1 课题要求 124.2 课题分析 12 4.3 功能实现 134.3.1 秒计时模块 144.3.2 分计时模块 164.3.3 小时计时模块 17 4.3.4 校时校分模块 194.3.5 整点报时模块 194.3.6 时段控制模块 204.3.7 连接各模块 214.4 下载过程 234.5 总结报告 265、设计总结 285.1 设计小结 28 5.2 设计收获 285.3 设计改进 286、致谢 287、参考文献 301、前言本课题研究的背景和目的:二十一世纪是信息化高速发展的世纪,产业的信息化离不开硬件芯片的支持。
EDA多功能数字钟设
实验报告实验四多功能数字钟设计一、实验目的1、学习复杂数字电路系统的设计。
2、设计一个多功能数字钟。
二、实验要求1.数字显示当前的小时、分钟;2.可以预置为12小时计时显示和24小时计时显示;3.一个调节键,用于调节目标数位的数字。
对调节的内容敏感,如调节分钟或秒时,保持按下时自动计数,否则以脉冲计数;4.一个功能键,用于切换不同状态:计时、调时、调分、调秒、调小时制式。
三、实验仪器PC机、Quartus II软件、EDA实验箱四、实验原理1.系统需要两个六十进制计数器用于分钟和秒的计时,为方便译码采用60进制计数器(1)秒计时实验程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;USE IEEE.STD_LOGIC_ARITH.ALL;entity second ISport(clk1,rst1:in std_logic;cout1:out std_logic;cq0:out std_logic_vector(3 downto 0);cq1:out std_logic_vector(3 downto 0));END second;ARCHITECTURE behave of second isSIGNAL d: std_logic_vector(3 downto 0);SIGNAL g: std_logic_vector(3 downto 0);BEGINprocess(clk1,rst1,d,g)BEGINif (rst1 ='1') thend <="0000";g <="0000";elsif(clk1'EVENT and clk1='1')thenif(d=9 and g=5)thencout1<='1';elsecout1<='0';end if;if(d=9)thend<="0000";if(g=5)theng<="0000";elseg<=g+1;end if;elsed<=d+1;end if;end if;end process;cq0<=d;cq1<=g;end behave;clk1是时钟信号,rst1是复位信号, cout1作为下一模块分钟设计的时钟信号,cq0,cq1输出信号最后接在动态译管码芯片上。
EDA课程设计——多功能数字钟的设计
E D A课程设计学院:电气信息学院专业年级:通信工程2013级姓名:学号课题:EDA课程设计指导老师:日期:2016年7月6日第一章多功能数字钟的设计1、设计任务了解数字钟的工作原理,进一步熟悉VHDL语言编写驱动七段数码管显示代码,并且掌握用多进程的方式实现一个综合性的程序。
最终实现硬件和软件多功能数字钟的设计。
(1)显示的格式为小时-分钟-秒钟,是24小时制,整点报时时间为5秒,级从整点前5秒钟开始进行报时提示,LED灯开始闪烁,过整点后,停止闪烁。
(2)系统时钟选择时钟模块的10KHz,要得到1Hz时钟信号,必须对系统时钟进行10000次分频。
(3)调整时间的按键用按键模块的S1和S2,S1调节小时,每按下一次,小时增加一个小时,S2调节分钟,每按下一次,分钟增加一分钟。
另外用S8按键作为系统时钟复位,复位后全部显示00-00-00。
2、方案设计2.1软件设计方案用VHDL语言编写程序实现设计内容中需要实现的功能。
将编写好的VHDL的程序加载到硬件电路中,从而驱动七段数码管时间,并用按键控制时间的变化,用软件仿真验证实验结果。
2.2硬件设计方案在软件方案实现的基础上,将已经运行成功的程序,将结果烧制到硬件电路中,最后生成顶层电路原理图。
3、设计的具体实现3.1设计步骤3.1.1打开QUARTUSII软件,新建一个工程3.1.2建完工程之后,再新建一个VHDL File,打开VHDL编辑器对话框;3.1.3按照自己设计方案,在VHDL编辑窗口编写VHDL程序;(程序见附录) 3.1.4编写完VHDL程序后,保存在自己新建的文件夹在D盘的目录下;3.1.5对自己编写的VHDL程序进行编译仿真,对程序的错误进行修改,直到完全通过编译和仿真;3.1.6仿真无误后,依照按键开关、数码管、LED灯与FPGA的管脚连接表进行管脚分配。
分配完成后,在进行编译一次,以使管脚分配生效;3.1.7用下载电缆通过JTAG口将对应的sof文件加载到FPGA中,观察设计结果是否和自己的编程思想一致。
eda多功能数字钟实验报告
eda多功能数字钟实验报告
《EDA多功能数字钟实验报告》
摘要:
本实验通过对EDA多功能数字钟的组装和测试,探索了数字钟的功能和性能。
实验结果表明,EDA多功能数字钟具有精准的时间显示、多种闹铃设置、温度
和湿度监测等功能,是一款实用且性能稳定的数字钟产品。
引言:
数字钟作为现代生活中不可或缺的家居用品,其功能和性能一直备受关注。
本
次实验选择了EDA多功能数字钟作为研究对象,旨在通过对其组装和测试,深
入了解数字钟的各项功能和性能指标。
实验方法:
1. 组装数字钟:按照产品说明书,将数字钟的各个部件进行组装,并确保连接
牢固。
2. 功能测试:测试数字钟的时间显示、闹铃设置、温度和湿度监测等功能。
3. 性能测试:对数字钟的时间精准度、闹铃响铃声音、温度和湿度监测准确度
等进行测试。
实验结果:
1. 时间显示:数字钟的时间显示精准,误差在1秒以内。
2. 闹铃设置:数字钟支持多组闹铃设置,响铃声音清晰、音量适中。
3. 温度和湿度监测:数字钟的温湿度监测准确度高,与实际环境温湿度相符合。
讨论:
通过本次实验,我们发现EDA多功能数字钟具有精准的时间显示、多种闹铃设
置、温度和湿度监测等功能,性能稳定,符合用户对数字钟的基本需求。
同时,数字钟的组装和操作也相对简单,适合家庭使用。
结论:
EDA多功能数字钟是一款实用且性能稳定的数字钟产品,能够满足用户对数字
钟的基本需求。
在未来的生活中,数字钟将继续扮演重要的角色,为人们的生
活提供便利。
致谢:
感谢实验中提供支持和帮助的老师和同学们。
2011级EDA实现多功能数字钟
实验报告实验名称 EDA实现多功能数字钟专业班级 11级计算机科学与技术1班姓名学号 1101040111指导老师刘怡EDA数字钟实验报告一、实验任务用FPGA器件和EDA技术实现数字钟的设计已知条件:1、Quartus Ⅱ软件;2、FPGA实验开发装置。
基本功能:1、以数字形式显示时、分、秒的时间;2、小时计数器为24进制;3、分、秒计数器为60进制。
扩展功能:1、校时、校分(由两个使能端构成,分别为校时、校分功能,同时按无效);2、仿电台报时(每个小时的59分51、53、55、57、59分别以四长声一短声进行报时);3、时段控制(让信号显示灯在晚上19点至早上6点亮);4、定点闹时(让闹钟每天早上7点闹时)。
二、数字钟电路系统的组成框图:三、实验内容(1)60进制计数器的设计a.60进制电路图,如下图所示:b.对该60进制电路图进行编译(Compiler)及波形仿真(Waveform Editor),其仿真的结果如下图所示:c.在图形输入界面上进行打包工作,将60进制图建立成模块,即在上方的工具栏中选File/Create Default Symbol,打包后生成60进制计数器的符号如下图所示:(2)24进制计数器的设计a.24进制电路图,如下图所示:b.对该24进制电路图进行编译(Compiler)及波形仿真(Waveform Editor),其仿真的结果如下图所示:c.在图形输入界面上进行打包工作,将24进制图建立成模块,即在上方的工具栏中选File/Create Default Symbol,打包后生成24进制计数器的符号如下图所示:(3)基本时钟级联的设计a.60进制和24进制级联电路图,如下图所示:Editor),其仿真的结果如下图所示:c.在图形输入界面上进行打包工作,将基本时钟级联图建立成模块,即在上方的工具栏中选File/Create Default Symbol,打包后生成基本时钟的符号如下图所示:四、扩展功能(略)。
EDA多功能数字钟设计
多功能数字钟的设计1设计功能(1)在6位数码管上按24小时进制显示时分秒;(2)当电路发生走时误差时具有对时和分校是功能(3)具有整点报时功能,报时声响为4低1高,每一下响声持续1s,结束报时是正好整点;(4)能按设定的时间启动闹钟,如早上7点,即用800Hz方波驱动喇叭,持续1分钟自动停止。
2设计思路划分出实现该数字钟的各逻辑功能模块,采用VHDL语言编写后分别例化,最后在顶层文件中将各功能模块连接起来。
(1)分和秒的计时是60进制,时的计时是24 进制,分高低位。
(2)数据选择器选择时分秒进行输出实现6位数码管动态扫描。
(3)校时电路根据输入的不同开关进行分和时的调整。
(4)报时电路主要完成整点报时和定时闹钟。
3 各模块采用VHDL代码设计(1)秒的代码(2)library ieee;(3)use ieee.std_logic_1164.all;(4)use ieee.std_logic_unsigned.all;(5)entity second is(6)port((7)setmin, clk, reset : in std_logic;(8)sec1, sec2 : out std_logic_vector(3 downto 0);(9)carry : out std_logic );(10)end second;(11)architecture rtl of second is(12)signal sec1_t, sec2_t:std_logic_vector(3 downto 0);(13)begin(14)process(clk, reset)(15)begin(16)if reset = '1' then(17)sec1_t <= "0000";(18)sec2_t <= "0000";(19)elsifsetmin= '1' then(20)carry <= '1';(21)elsifclk'event and clk='1' then(22)if sec1_t = "1001" then(23)sec1_t <= "0000";(24)if sec2_t = "0101" then(25)sec2_t <= "0000";(26)else(27)sec2_t<=sec2_t+1;(28)end if;(29)else(30)sec1_t<=sec1_t+1;(31)end if;(32)(33)if sec1_t="1001" and sec2_t="0101" then carry<= '1'; (34)else(35)carry <= '0';(36)end if;(37)end if;(38)end process;(39)sec1 <= sec1_t;(40)sec2 <= sec2_t;(41)end rtl;(2)分的代码libraryieee;use ieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entity minute isport(clk, reset, sethour : in std_logic;sec1, sec2 : out std_logic_vector(3 downto 0);carry : out std_logic );end minute;architecturertl of minute issignal sec1_t, sec2_t:std_logic_vector(3 downto 0);beginprocess(clk, reset)beginif reset = '1' thensec1_t <= "0000";sec2_t <= "0000";elsifsethour='1' then carry <= '1';elsifclk'event and clk='1' thenif sec1_t = "1001" thensec1_t <= "0000";if sec2_t = "0101" thensec2_t <= "0000";elsesec2_t<=sec2_t+1;end if;elsesec1_t<=sec1_t+1;end if;if sec1_t="1001" and sec2_t="0101" then carry <= '1';elsecarry<= '0';end if;end if;end process;sec1 <= sec1_t;sec2 <= sec2_t;endrtl;(3)时的代码libraryieee;use ieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entity hour isport(clk, reset : in std_logic;hour1,hour2: out std_logic_vector(3 downto 0));end hour;architecturertl of hour issignal hour1_t,hour2_t:std_logic_vector(3 downto 0);beginprocess(clk,reset)beginif reset='1' thenhour1_t<="0000";hour2_t<="0000";elsifclk'event and clk='1' thenif hour1_t="0011" and hour2_t="0010" thenhour1_t<="0000";hour2_t<="0000";elseif hour1_t="1001" thenhour1_t<="0000";if hour2_t="0010" thenhour2_t<="0000";elsehour2_t<=hour2_t+1; end if;elsehour1_t<=hour1_t+1;end if;end if;end if;--hour1<=hour1_t;--hour2<=hour2_t;end process;hour1<=hour1_t;hour2<=hour2_t;endrtl;(4)数码管译码代码libraryieee;use ieee.std_logic_1164.all;entity segment7 isport(data:instd_logic_vector(3 downto 0);dout:outstd_logic_vector(6 downto 0));end;architecturebehav of segment7 isbeginprocess(data)begincase data iswhen "0000"=>dout<="0111111";when "0001"=>dout<="0000110";when "0010"=>dout<="1011011";when "0011"=>dout<="1001111";when "0100"=>dout<="1100110";when "0101"=>dout<="1101101";when "0110"=>dout<="1111101";when "0111"=>dout<="0000111";when "1000"=>dout<="1111111";when "1001"=>dout<="1101111";when "1010"=>dout<="1000000";when others=>null;end case;end process;endbehav;(5)动态扫描代码libraryieee;use ieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entity mux6_1scan isport(clkscan,reset : in std_logic;in1,in2,in3,in4,in5,in6 : in std_logic_vector(3 downto 0);data : out std_logic_vector(3 downto 0);sel : out std_logic_vector(2 downto 0));end mux6_1scan;architecturertl of mux6_1scan issignalcount:std_logic_vector(2 downto 0);beginprocess(clkscan,reset)beginif reset='1' thencount<="000";elsifclkscan'event and clkscan='1' thenif count="111" thencount<="000";elsecount<=count+1;end if;end if;end process;process(count)begincase count iswhen "000"=>data<=in1;when "001"=>data<=in2;when "010"=>data<="1010";when "011"=>data<=in3;when "100"=>data<=in4;when "101"=>data<="1010";when "110"=>data<=in5;when "111"=>data<=in6;when others=>null;end case;end process;sel<=count;endrtl;(6)闹钟代码libraryieee;use ieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entity alert isport( clk500hz,clk1khz : in std_logic;int1,int2,int3,int4,int5,int6 : in std_logic_vector(3 downto 0);speak : out std_logic);end alert;architecturertl of alert isbeginspeak<=clk500hz when (int4="0101" and int3="1001")and ((int2="0101" and int1="0101")or(int2="0101" and int1="0111"))elseclk1khz when (int4="0101" and int3="1001")and (int2="0101" and int1="1001")elseclk1khz when int6="0101" and int5="1001" else'0';endrtl;4顶层文件设计将VHDL语言所写的各个模块分别例化为元器件,顶层文件采用原理图的方式输入。
《多功能数字钟》EDA实验报告
《EDA课程设计》实验报告多功能数字钟姓名:学号:联系方式:成绩:1.摘要在当代,随着人类社会进入到高度发达的信息化社会。
信息技术的发展起着越来越大的作用,它几乎涉及到我们日常生活的每个领域,可以说要衡量一个当今社会的发展文明程度信息化技术的发展程度是一个非常重要的指标.众所周知,信息化社会的发展离不开电子信息技术产品的开发、产品品质的提高和改善。
电子信息产品随着科学技术的进步,其电子器件和设计方法更新、换代的速度快的惊人,几乎是日新月异。
然而实现这种进步的主要原因就是电子设计技术和电子制造技术的发展,其核心就是电子设计自动化(EDA,Electronics Design Automation)技术,EDA技术的发展和推广应用又极大地推动了电子信息产业的发展。
为保证电子系统设计的速度和质量,适应“第一时间推出产品”的设计要求,EDA技术正逐渐成为不可缺少的一项先进技术和重要工具。
目前,在国内电子技术教学和产业界的技术推广中已形成“EDA热”,完全可以说,掌握EDA技术是电子信息类专业学生、工程技术人员所必备的基本能力和技能。
由于基于PLD的EDA技术的发展和应用领域的扩大和深入,EDA技术在电子信息、通信、自动控制及计算机应用领域的重要性日益提高。
EDA技术在电子系统设计领域越来越普及,本设计主要利用VHDL语言在EDA平台上设计一个电子数字钟,它的计时为24小时小时制,显示满刻度为23时59分59秒,另外还具有校时功能和闹钟功能。
总的程序由几个各具不同功能的单元模块程序拼接而成,其中包括分频程序模块,时、分、秒计数和校时程序模块、数据选择器程序模块、显示程序模块和例化程序模块.并且使用QUARTUS II软件进行电路波形仿真,下载到EDA实验箱进行验证。
作为现在的大学生应熟练掌握这门技术,为以后的发展打下良好的基础,本实验设计是应用QuartusII环境及VHDL语言设计一个时间可调的数字时钟。
EDA电子钟多功能数字时钟课程设计(含代码)[优秀]
多功能数字时钟设计说明:1.系统顶层框图:各模块电路功能如下:1.秒计数器、分计数器、时计数器组成最基本的数字钟,其计数输出送7段译码电路由数码管显示.2.基准频率分频器可分频出标准的1HZ频率信号,用于秒计数的时钟信号;分频出4HZ频率信号,用于校时、校分的快速递增信号;分频出64HZ频率信号,用于对按动“校时”,“校分”按键的消除抖动.2.多功能数字钟结构框图:一、系统功能概述已完成功能1.完成时/分/秒的依次显示并正确计数,利用六位数码管显示;2.时/分/秒各段个位满10正确进位,秒/分能做到满60向前进位,有系统时间清零功能;3.定时器:实现整点报时,通过扬声器发出高低报时声音;4.时间设置,也就是手动调时功能:当认为时钟不准确时,可以分别对分/时钟进行调整;5.闹钟:实现分/时闹钟设置,在时钟到达设定时间时通过扬声器响铃.有静音模式.待改进功能:1. 系统没有万年历功能,正在思考设计方法.2. 应添加秒表功能.二、系统组成以及系统各部分的设计1.时计数模块时计数模块就是一个2位10进制计数器,记数到23清零.VHDL的RTL描述如下:----cnt_h.vhdlibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt_h isport(en,clk,clr:in std_logic;dout:out std_logic_vector(7 downto 0);c:out std_logic);end cnt_h;architecture rtl of cnt_h issignal t:std_logic_vector(7 downto 0);beginprocess(en,clk,clr)variable t:std_logic_vector(7 downto 0);beginif en='1' then --异步使能if clk 'event and clk='1' thent:=t+1;if t(3 downto 0)=X"A" then --个位等于10则十位加1t(7 downto 4):=t(7 downto 4)+1;t(3 downto 0):=X"0"; --个位清零end if;if t>X"23" then --大于23清零t:=X"00";end if;end if;if clr='1' then --异步清零t:=X"00";end if;end if;dout<=t;end process;end rtl;时计数器模块仿真波形如下从仿真波形可知,当计数到23时,下一个时钟上升沿到来时就清零了,符合设计要求.时计数模块框图如下2.分及秒计数模块分及秒计数模块也是一个2位10进制计数器,记数到59清零.VHDL的RTL描述如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt_s isport(en,clk,clr:in std_logic;dout:buffer std_logic_vector(7 downto 0);c:out std_logic);end cnt_s;architecture rtl of cnt_s isbeginprocess(en,clk,clr)beginif en='1' thenif clr='1' then --异步清零dout<=X"00";elsif clk 'event and clk='1' thenif dout(3 downto 0)<9 thendout(3 downto 0)<=dout(3 downto 0)+1;c<='0';elsif dout(7 downto 4)<5 thendout(3 downto 0)<=X"0";dout(7 downto 4)<=dout(7 downto 4)+1;elsedout<=X"00";c<='1';end if;end if;else dout<="ZZZZZZZZ";end if;end process;end rtl;分和秒计数器模块仿真波形如下从仿真波形可知,当计数到59时,下一个时钟上升沿到来时就清零了,并且产生进位信号,符合设计要求.分和秒计数模块框图如下3.按键消抖动模块按键消抖动有很多方案,这里选择的是计数消抖,即只当有效电平到来后开始计数,当计数值大于一定值后再输出该有效电平,否则不输出,从而达到消抖目的. VHDL的RTL描述如下:library ieee;use ieee.std_logic_1164.all;entity haoin isport(din,clk:in std_logic;dout:out std_logic); end haoin;architecture rtl of haoin isbeginprocess(din)variable t: integer range 0 to 63:=0;beginif din='1' thenif clk 'event and clk='1'thent:=t+1;if t>10 thendout<='1';t:=t-1;else dout<='0';end if;end if;else dout<='0';t:=0;end if;end process;end rtl;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity ring isport(clk: in std_logic;clk500: in std_logic;clk1k:in std_logic;beep:out std_logic);end ring;architecture rtl of ring isbeginprocess(clk)variable t: std_logic;variable n: integer range 0 to 15:=0;beginif clk 'event and clk='1' thent:=not t;n:=n+1;end if;if t='1' and n<11 thenbeep<=clk500;elsif n=11 thenbeep<=clk1k;else beep<='Z';end if;end process;end rtl;library IEEE;use IEEE.std_logic_1164.all;use IEEE.std_logic_arith.all;use IEEE.std_logic_unsigned.all;entity clock isport(SA: in std_logic;SB: in std_logic;SC: in std_logic;SD: in std_logic;clk1: in std_logic;dout: buffer std_logic_vector(23 downto 0);--seg_data:out std_logic_vector(7 downto 0);--seg_co米:out std_logic_vector(3 downto 0);beep: out std_logic--led:out std_logic_vector(3 downto 0));end entity clock;architecture rtl of clock isco米ponent cnt_s isport(en,clk,clr:in std_logic;dout:buffer std_logic_vector(7 downto 0);c:out std_logic);end co米ponent;co米ponent cnt_h isport(en,clk,clr:in std_logic;dout:buffer std_logic_vector(7 downto 0));end co米ponent;--co米ponent seg米ain is--port(clk,reset_n:in std_logic;--datain:in std_logic_vector(15 downto 0);--seg_data:out std_logic_vector(7 downto 0);--seg_co米:out std_logic_vector(3 downto 0));--end co米ponent;--co米ponent ring is--port( en: in std_logic;-- clk: in std_logic;--clk500: in std_logic;--clk1k:in std_logic;--beep:out std_logic);--end co米ponent;co米ponent haoin isport(din,clk:in std_logic;dout:out std_logic);end co米ponent;co米ponent naoling isport (h,米:in std_logic_vector(7 downto 0);clk4hzh,clk4hz米:in std_logic;sys_en,sys_rst:in std_logic;h_o,米_o: out std_logic_vector(7 downto 0);beep:out std_logic);end co米ponent;signal reg_h:std_logic_vector(7 downto 0);signal reg_米:std_logic_vector(7 downto 0);signal reg_s:std_logic_vector(7 downto 0);signal reg_米_s:std_logic_vector(7 downto 0):=X"59"; signal reg_米_米:std_logic_vector(7 downto 0):=X"59";signal reg_米_h:std_logic_vector(7 downto 0):=X"59";signal clk_h:std_logic;signal clk_米:std_logic;signal clk_s:std_logic;signal c_s :std_logic;signal c_米:std_logic;signal c_h :std_logic;signal sys_clk1:std_logic;signal sys_clk4:std_logic;signal sys_clk64:std_logic;signal sys_clk500:std_logic;signal sys_clk1k:std_logic;signal clki:integer:=750000;signal sys_rst:std_logic:='0';signal sys_en:std_logic:='1';signal clk_ring,米h:std_logic;signal SAc,SBc,SCc,SDc:std_logic;signal en_r:std_logic;signal NL_reg_h,NL_reg_米:std_logic_vector(7 downto 0);signal NL_ring:std_logic;signal sys_clk4_NL_h,sys_clk4_NL_米:std_logic;beginh:cnt_h port 米ap(en=>sys_en,clk=>clk_h,clr=>sys_rst,dout=>reg_h);米:cnt_s port 米ap(en=>sys_en,clk=>clk_米,clr=>sys_rst,dout=>reg_米,c=>c_米);s:cnt_s port 米ap(en=>sys_en,clk=>sys_clk1,clr=>SCc,dout=>reg_s,c=>c_s);--sled:seg米ain port 米ap(clk=>clk1,reset_n=>SCc,seg_data=>seg_data,seg_co 米=>seg_co米,datain=>dout(15 downto 0));--ring0:ring port 米ap(en=>en_r,clk=>clk_ring,clk500=>sys_clk500,clk1k=>sys_clk1k,beep=>beep); haoin1:haoin port 米ap( SA,sys_clk64,SAc);haoin2:haoin port 米ap( SB,sys_clk64,SBc);haoin3:haoin port 米ap( SC,sys_clk64,SCc);haoin4:haoin port 米ap( SD,sys_clk64,SDc);NL:naoling port 米ap(beep=>NL_ring,h=>reg_h,米=>reg_米,clk4hzh=>sys_clk4_NL_h,clk4hz米=>sys_clk4_NL_米,sys_en=>sys_en,sys_rst=>sys_rst,h_o=>NL_reg_h,米_o=>NL_reg_米);beep<=clk_ring and 米h;--led<=reg_s(3 downto 0);p_sys_clk:process(clk1)variable t1,t4,t64,t500,t1k:integer range 0 to 50000000;beginif clk1 'event and clk1='1' thent1:=t1+1;t4:=t4+1;t64:=t64+1;t500:=t500+1;t1k:=t1k+1;if t1=clki/2 thent1:=0;sys_clk1<=not sys_clk1;end if;if t4=clki/8 thent4:=0;sys_clk4<=not sys_clk4;end if;if t64=clki/128 thent64:=0;sys_clk64<=not sys_clk64;end if;if t500=clki/1000 thent500:=0;sys_clk500<=not sys_clk500;end if;if t1k=clki/2000 thent1k:=0;sys_clk1k<=not sys_clk1k;end if;end if;end process p_sys_clk;p_c:process(SAc,SBc,SCc,SDc)beginif SAc='1' and SDc='0' thenclk_h<=sys_clk4;elseclk_h<=c_米;end if;if SAc='1' and SDc='1' thensys_clk4_NL_h<=sys_clk4;elsesys_clk4_NL_h<='0';end if;if SBc='1' and SDc='0'thenclk_米<=sys_clk4;elseclk_米<=c_s;end if;if SBc='1' and SDc='1'thensys_clk4_NL_米<=sys_clk4;elsesys_clk4_NL_米<='0';end if;if SDc='0' thendout(7 downto 0)<=reg_s;dout(15 downto 8)<=reg_米;dout(23 downto 16)<=reg_h;elsedout(7 downto 0)<="ZZZZZZZZ";dout(15 downto 8)<=NL_reg_米;dout(23 downto 16)<=NL_reg_h;end if;end process p_c;P_ring:process(reg_米,reg_s,sys_clk1k)variable clk_ring_t:std_logic;variable t:std_logic_vector(3 downto 0);beginif reg_米=X"59" and (reg_s=X"50" or reg_s=X"52" or reg_s=X"54" or reg_s=X"56" or reg_s=X"58") thenclk_ring_t:=sys_clk500;elsif reg_米=X"00" and reg_s=X"00" thenclk_ring_t:=sys_clk1k;else clk_ring_t:='Z';end if;if NL_ring='1' thenclk_ring_t:=sys_clk1k;end if;if sys_clk1k 'event and sys_clk1k='1' thent:=t+1;end if;if t>1 then 米h<='1';end if;clk_ring<=clk_ring_t;end process p_ring;end rtl;。
EDA设计-多功能数字钟
设计一个数字计时器,可以完成00:00:00到23:59:59的计时功能,并在控制电路的作用下具有保持、清零、快速校时、快速校分、整点报时等功能。
具体实现方法为:首先利用一个模48和两个模1000的计数器将原始的48MHZ转换成数字计时器所需的1HZ。
然后利用1HZ作为时钟,用两个模60和一个模24计数器形成基本数字钟。
快速校时和校分只需利用适当的与门和或门添加到相应计时模块的时钟即可。
至于整点报时,利用相应的判别条件,再连入相应的的频率,最后送到蜂鸣器端口即可完成功能。
对于附加功能闹钟和星期。
闹钟的具体功能为可设置时间,可先清零后再重新设置,到点后以1KHZ鸣叫10秒,期间可关掉闹钟。
具体实现方法为:将开关K5作为闹钟的小时设定,开关K6作为闹钟的分钟设定,均作为计数器的时钟。
当这两个开关上下一次,小时和分钟均增加1。
然后再将闹钟的时间与数字钟的时间相比较,当两者完全相同时,蜂鸣器响起。
对于星期的设置比较简单,只需在数字钟小时模块后添加一个模8计数器,并在显示模块添加星期的相应输出即可。
对于实验调试所需注意的是:要对开关进行消颤,利用D触发器,且添加的频率不能太大。
关键字:分频、计数器、D触发器AbstractDesign a digital timer, which has the timing function counting from 00:00:00 to23:59:59, and can also maintain time 、clear time、rapidly adjust the minutes 、rapidly adjust the hours and timekeeping. The realizing specific methods are as follows .First, use a mold 48 and two mode 1000 counters to turn the original 48 MHz into a digital timer required 1HZ. Second , take the 1HZ as the clock to the basic digital clock formation of two mold 60 and a modulo 24 counters . Use the appropriate AND and OR gates added to the appropriate timing module can realize rapidly adjusting the minutes . As for timekeeping , using the corresponding discriminant conditions, connecting them with the corresponding frequency, and sending to the buzzer port can complete the function.Additional features include alarm clock and counting days of the week. The alarm clock can set the time, can be first cleared and then reseted, can sound for 10 seconds, and in the period can turn off the alarm. The specific method is: take K5 as the switch setting hour and take K6 as the switch setting minute, both as counters’ clock. Once these two switches up and down, hour and minute are both increase 1. Then compare the alarm time with the time of the digital clock . When they are the same, the buzzer start sounding . Setting the week is relatively simple, just adding a modulo 8 counter behind digital clock hour module and adding the corresponding output to the display module.For the debug experiments , use the D flip-flop to eliminate chatter and the frequency added can not be too much.Keywords:frequency converteion、counter、D flip-flop一.设计要求 (3)二.方案论证 (4)三.各子模块设计原理 (6)3.1 脉冲发生电路 (6)3.2 计时电路 (8)3.3 译码显示电路 (11)3.4整点报时电路 (12)3.5保持电路 (13)3.6清零电路 (14)3.7校分、校时电路 (14)3.8闹钟电路 (15)3.9星期电路 (20)四.下载调试 (20)五.结论 (21)六.实验感想 (21)参考文献 (24)附录 (24)多功能数字钟一、设计要求设计一个数字计时器,可以完成00:00:00到23:59:59的计时功能,并在控制电路的作用下具有保持、清零、快速校时、快速校分、整点报时等功能。
eda多功能数字钟实验报告
eda多功能数字钟实验报告EDA多功能数字钟实验报告一、引言数字钟是现代生活中常见的一种时间显示工具,其准确性和便携性使其成为人们生活中不可或缺的一部分。
本实验旨在设计并制作一款多功能数字钟,通过EDA(电子设计自动化)软件进行模拟和仿真,验证其功能和性能。
二、设计原理1. 时钟电路:采用CMOS(互补金属氧化物半导体)技术设计时钟电路,包括时钟发生器、计数器和显示器。
时钟发生器产生稳定的方波信号,计数器根据方波信号进行计数,显示器将计数结果以数字形式显示出来。
2. 功能模块:多功能数字钟除了显示时间外,还应具备日期显示、闹钟设置、温度检测等功能。
为实现这些功能,需要添加相应的模块,如时钟芯片、温度传感器、闹钟电路等。
三、电路设计1. 时钟电路设计:根据设计原理,使用EDA软件进行电路设计,选择合适的元器件和连接方式。
通过仿真验证电路的工作稳定性和准确性。
2. 功能模块设计:根据需求,添加相应的功能模块。
时钟芯片用于精确计时和日期显示,温度传感器用于检测环境温度并显示,闹钟电路用于设置闹钟时间并触发报警。
四、电路实现1. 元器件选取:根据电路设计需求,选择合适的元器件。
时钟芯片应具备高精度和稳定性,温度传感器应具备高灵敏度和准确度,闹钟电路应具备可调节和触发功能。
2. 电路布局:将选取的元器件按照电路设计进行布局,注意元器件之间的连接和布线,避免干扰和短路。
3. 电路连接:根据电路设计进行元器件之间的连接,注意连接的正确性和稳定性。
五、仿真与测试1. 仿真验证:使用EDA软件进行电路仿真,检查电路的稳定性和准确性。
通过仿真结果对电路进行调整和优化,确保其正常工作。
2. 功能测试:对多功能数字钟进行功能测试,包括时间显示、日期显示、温度检测和闹钟设置等。
通过测试结果对电路进行调整和改进,确保其功能的完善和可靠性。
六、实验结果与分析经过仿真和测试,多功能数字钟实现了准确的时间显示、日期显示、温度检测和闹钟设置等功能。
基于eda的多功能数字钟设计
目录一.设计说明 (1)I.功能说明 (1)II.功能简介 (1)二.总体方案分析 (3)三.各子模块设计原理 (3)I.脉冲分频模块 (3)II.时钟计时模块(包含校定和清零功能) (4)III.显示控制电路 (7)IV.显示模块和计时模块结合 (11)V.整点报时模块 (11)VI.闹钟模块 (13)四.调试与仿真 (17)I.脉冲发生模块 (17)II.计时电路 (18)III.仿真 (18)五.收获与体会 (19)六.附录 (20)一.设计说明I.功能说明:设计一个能进行时、分、秒计时的十二小时制或二十四小时制的数字钟,并具有定时与闹钟功能,能在设定的时间发出闹铃音,能非常方便地对小时、分钟和秒进行手动调节以校时间,每逢整点,产生报时音报时。
系统框图如图1-1所示:图1-1 多功能数字钟系统框图II.功能简介此设计问题可分为主控电路、计数器模块和扫描显示三大部,主控电路中各种特殊功能的实现设计问题的关键。
用两个电平信号A、B进行模式选择,AB=00为模式0,系统为计时状态;AB=01为模式1,系统为手动校时状态;AB=10为模式2,系统为闹钟设置状态。
设置一个cd信号,当cd=00时,表示在手动校对时,选择调整时部分;当cd=01时,表示在手动校对时,选择调整分钟部分;。
当cd=10时,表示在手动校对时,选择调整秒部分设置一个change信号,在手动校时或闹钟设置模式下,每按一次,计数器加1。
设置一个reset信号,当reset=0时,整个系统复位;当reset=1时,系统进行计时或其他特殊功能操作。
设置一个闹钟设置信号reset1,当reset1=1时,对闹钟进行设置,当reset1=0时,关闭闹钟信号。
设置一个E信号,当E=0时,表示在手动校对时,选择调整时部分;当E=1时,表示在手动校对时,选择调整分钟部分设置状态显示信号(连发光二极管):LD_alert指示是否设置了闹铃功能;LD_h指示当前调整的是小时信号;LD_m指示当前调整的是分钟信号。
EDA多功能数字电子钟
EDA实验报告Clock设计姓名:专业:电子信息科学与技术班级:10级1 班学号:1001050903信息科学与工程学院电子信息系2012 年7 月3 日一、实验目的通过本次实验设计,提高学生Verilog语言编写能力,加深对Quartus ΙΙ、modelsim等仿真软件的了解并进一步熟悉和使用。
二、实验要求1.设计一个时钟,具有显示时、分的功能;2.时钟有暂停、复位等功能。
三、实验内容1.clock程序代码module clock(clk,seg,reset,cin,ocom,count);output[3:0] ocom;output[7:0] seg;output count;input cin,clk,reset;reg [7:0] out_s;reg[7:0] out_min;reg[7:0] seg;reg[3:0] ocom;reg[3:0] display;reg clk_m,clk_n;reg[1:0] select;reg count;integer count_clk,count_cp;always @(posedge clk)if (count_cp == 50000)begincount_cp = 0;clk_n = ~clk_n;endelsecount_cp = count_cp + 1;always @(posedge clk)if (count_clk == 25000000)begincount_clk = 0;clk_m = ~clk_m;endelsecount_clk = count_clk + 1;always @(posedge clk_n)select=select + 1;always @(select)begincase(select)2'b00 : begin ocom[3:0]=4'b1110;display = out_s[3:0]; end2'b01 : begin ocom[3:0]=4'b1101;display = out_s[7:4]; end2'b10 : begin ocom[3:0]=4'b1011;display = out_min[3:0]; end2'b11 : begin ocom[3:0]=4'b0111;display = out_min[7:4]; end endcaseendalways @(posedge clk_m)beginif(!reset)out_s <= 0;else if(cin)beginif(out_s[3:0]==9)beginout_s[3:0] <= 0;if(out_s[7:4]==5)out_s[7:4] <= 0;elseout_s[7:4] <= out_s[7:4]+1;endelseout_s[3:0] <= out_s[3:0]+1;endendalways @(out_s)if ((out_s == 8'h59) & cin)count = 1;else#1 count = 0;always @(posedge clk_m)beginif(!reset)out_min <= 0;else if(count)if(out_min[3:0]==9)beginout_min[3:0] <= 0;if(out_min[7:4]==5)out_min[7:4] <= 0;elseout_min[7:4] <= out_min[7:4]+1;endelseout_min[3:0] = out_min[3:0] + 1;endalways @(display)begincase(display)4'b0000 : seg[7:0]=8'b10010000;4'b0001 : seg[7:0]=8'b10011111;4'b0010 : seg[7:0]=8'b01011000;4'b0011 : seg[7:0]=8'b00011001;4'b0100 : seg[7:0]=8'b00010111;4'b0101 : seg[7:0]=8'b00110001;4'b0110 : seg[7:0]=8'b00110000;4'b0111 : seg[7:0]=8'b10011101;4'b1000 : seg[7:0]=8'b00010000;4'b1001 : seg[7:0]=8'b00010001;default : seg[7:0]=8'b11111111;endcaseendendmodule2.测试代码`timescale 1ns/1nsmodule clock_test;wire [3:0] ocom;wire [7:0] seg;wire count;reg cin,clk,reset;always #10 clk=~clk;initialbeginclk=0;cin=1;reset=0;#42reset=1;#100000 $stop;endclock m(.ocom(ocom),.seg(seg),.count(count),.cin(cin),.clk(clk),.reset(reset)); endmodule3.引脚绑定4.程序下载1.Quartus编译2.modelsim仿真五.实验总结这次课程设计让同学们懂得了Verilog语言的重要性,没有好的理论基础就不可能有实践的正确性。
EDA 多功能数字钟实验报告
EDAⅡ多功能数字钟目录内容摘要 (3)一.引言 (4)二、实验要求 (4)三、方案论证 (5)四、整体电路功能综述 (6)五、各模块设计1、分频器模块 (8)2、计时模块 (9)3、闹铃模块 (12)4、上下午切换模块 (13)5、显示模块 (14)6、整点报时模块 (15)7、秒表模块 (15)8、动态显示模块 (16)9、倒计时模块 (18)10、开关防抖动 (19)11、开关复用控制 (20)六、实验中的问题及解决方法 (21)中文摘要本实验利用QuartusII软件,结合所学的数字电路的知识设计一个24时多功能数字钟,具有正常时、分、秒计时,动态显示,清零、快速校分、整点报时、闹钟、秒表、倒计时功能。
论文分析了整个电路的工作原理,还分别说明了各子模块的设计原理和调试、仿真、编程下载的过程,并对最终结果进行总结,最后提出了在实验过程中出现的问题和解决的方案,以及后续设计思想。
通过实验掌握了一些逻辑组合器件的基本功能和用法,同时体会到了利用软件设计电路的方便快捷,避免了硬件布线的繁琐,提高了效率,在为以后设计更复杂的电路打下了良好基础。
关键词数字钟闹钟秒表倒计时外文摘要Title DIGITAL CLOCK DESIGN PROPOSAlAbstractUsing the QuartusII, we design a digital clock of 24 hours with learning electric circuit knowledge. The circuit can keep the time, reset, adjust the minute and hour, ring the time in the round number time , alarm clock , stopwatch and countdown. The paper has analyzed the principle of all work and explained the designing principle of different parts separately. By debugging, simulating, compiling, programming, I put forward a matter and give a settling plan.I know about the basic functions and using method of some electric pieces in this experiment. At the same time, I realized the convenience of making use of the software to carry on the electric circuit, which is fast and let us have a good foundation for design a more complex system, avoided the hardware cloth line tedious, and raised the efficiency.Keywords digital clock, alarm clock,stopwatch,count down一、引言传统硬件电路在设计存在连线麻烦,出错率高且不易修改,很难控制成本的缺点。
EDA多功能数字钟
个位计数器再输入一个秒脉冲时,数字钟应自动显 示为00时00分00秒。 12小时制:当数字钟运行到12时59分59秒时,秒的 个位计数器再输入一个秒脉冲时,数字钟应自动显 示为01时00分00秒。
数字钟主体计时模块框图举例
任 意 闹 钟 设 定 作 用 模 块
多功能数字钟总体框图举例
7 段 数 码 管 扫 描 显 示
层次化设计举例(续) -100进制计数器
由10进制计数器构成100进制计数器
//**************** counter10.v ( BCD: 0~9 ) ************** module counter10(Q, nCR, EN, CP); input CP, nCR, EN; output [3:0] Q; reg [3:0] Q; always @(posedge CP or negedge nCR) begin if(~nCR) Q <= 4'b0000; // nCR=0,计数器被异步清零 else if(~EN) Q <= Q; //EN=0,暂停计数 else if(Q == 4'b1001) Q <= 4'b0000; else Q <= Q + 1'b1; //计数器增1计数 end endmodule
7 段 数 码 管 扫 描 显 示
always @ (count[11:10]) begin case(count[11:10]) 2'b00: scan<=4'b0111; 2'b01: scan<=4'b1011; 2'b10: scan<=4'b1101; 2'b11: scan<=4'b1110; endcase end always @ (count[11:10]) begin case(count[11:10]) 2'b00: temp<=h1; 2'b01: temp<=h0; 2'b10: temp<=m1; 2'b11: temp<=m0; endcase end
本科毕业设计论文--eda课程设计报告多功能数字钟设计
湖北大学物电学院EDA课程设计报告(论文)题目:多功能数字钟设计专业班级: 14微电子科学与工程*名:**时间:2016年12月20日指导教师:万美琳卢仕完成日期:2015年12月20日多功能数字钟设计任务书1.设计目的与要求了解多功能数字钟的工作原理,加深利用EDA技术实现数字系统的理解2.设计内容1,能正常走时,时分秒各占2个数码管,时分秒之间用小时个位和分钟个位所在数码管的小数点隔开;2,能用按键调时调分;3,能整点报时,到达整点时,蜂鸣器响一秒;4,拓展功能:秒表,闹钟,闹钟可调3.编写设计报告写出设计的全过程,附上有关资料和图纸,有心得体会。
4.答辩在规定时间内,完成叙述并回答问题。
目录(四号仿宋_GB2312加粗居中)(空一行)1 引言 (1)2 总体设计方案 (1)2.1 设计思路 (1)2.2总体设计框图 (2)3设计原理分析 (3)3.1分频器 (4)3.2计时器和时间调节 (4)3.3秒表模块 (5)3.4状态机模块 (6)3.5数码管显示模块 (7)3.6顶层模块 (8)3.7管脚绑定和顶层原理图 (9)4 总结与体会 (11)多功能电子表摘要:本EDA课程主要利用QuartusII软件Verilog语言的基本运用设计一个多功能数字钟,进行试验设计和软件仿真调试,分别实现时分秒计时,闹钟闹铃,时分手动较时,时分秒清零,时间保持和整点报时等多种基本功能关键词:Verilog语言,多功能数字钟,数码管显示;1 引言QuartusII是Altera公司的综合性PLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL 以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程,解决了传统硬件电路连线麻烦,出错率高且不易修改,很难控制成本的缺点。
利用软件电路设计连线方便,修改容易;电路结构清楚,功能一目了然2 总体设计方案2.1 设计思路根据系统设计的要求,系统设计采用自顶层向下的设计方法,由时钟分频部分,计时部分,按键调时部分,数码管显示部分,蜂鸣器四部分组成。
多功能数字钟(EDA设计)实验报告
多功能数字钟一、实验原理分析通过晶振产生的50MHz的脉冲,用分频器进行分频产生1Hz的脉冲信号,即作为时钟的1s的信号进行计数。
秒钟每计数60秒后产生进位使分钟显示加1,分钟满60循环至0。
为实现手动校准时间功能,可以对分和秒计数器进行加减。
为实现校准时间时候的闪烁,对数码管使用消隐,把数码管的接地端口接一个脉冲信号。
在实验过程中,要注意很多细节,比如进行按键消抖,手动调整时间时不会进位。
二、逻辑分析三、功能模块分析功能模块包括分频模块,时间计数及校准模块,数码管译码显示模块、判决模块和消抖模块1.分频模块该电路由多个70LS90经过分频将由晶振产生的50MHz分频为1Hz方波,供后续时钟电路使用。
这一模块是整个电路的基础。
2.时间计数及校准模块该模块连接至分频模块的信号输出端,以分频模块产生的1Hz 方波作为基础。
1Hz方波与秒同步,以秒为基础,分别实现电子钟中,分与时的运转,即1分钟=60秒,1小时=60分钟的循环运转。
为了修正电子钟在运行过程中产生的一些误差或其他认为错误,另设置校准功能,可以对电子钟的计时进行调整。
其中,此模块的逻辑部分需Verilog语言实现并进行封装。
此模块用到3个十进制计数器、2个六进制计数器和1个三进制计数器。
3.数码管译码显示模块本电子钟采用数码管来显示,可以简单、直观地表现出确切的时间,实现其他配套功能。
且数码管易于操作。
此模块中有四个数码管,每两个数码管分别显示小时与分钟。
由上一模块,即时间计数及校准模块中的时间计数器产生的数值,将其对应的七段码直接传送至相应的数码管译码显示。
4.判决模块该电路判决信号连接至开关,当开关选中数码管某位后,经过判决器令改为停止计数,并开始1秒闪烁,按动按键可实现手动调整。
5.消抖模块通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。
EDA课程设计多功能数字时钟报告
III.开关功能介绍(两种方案)……………………………………………………………4
二.方案论证……………………………………………………5
I.总体方案分析…………………………………………………………………………5
II.电路的工作原理……………………………………………………………………6
二.方案论证:
I。总体方案分析:
利用QuartusII软件设计一个数字钟,对设计电路进行功能仿真,并下载到SmartSOPC实验系统中,可以完成00:00:00到23:59:59的计时功能,并在控制电路的作用下具有保持、清零、快速校时、快速校分、整点报时等功能.本电路在原有基础上进行了拓展,具备以下功能:
①.能进行正常的时、分、秒计时功能;
These electric circuits are all packed with mold piece okay, for the purpose of other electric circuits adjust to use.With count machine composing to account parts, pass a cent repeatedly the machine divides of when the 1 HZ pulse accounts adjust to show that the electric circuit suggests and passes a little bit whole buzzer that tell the time an electric circuit control with the dynamic state.BE counting the way that the machine class adopted synchronously external different step in the inner part while uniting, but came to a synchronous effect through a simple change and than synchronously returned credibility。While showing a control for economizing a resources adoption dynamic state principle,from wove VHDL language of 24 choose 4 data selectors.文档为个人收集整理,来源于网络文档为个人收集整理,来源于网络
EDA设计:多功能数字钟
EDA设计多功能数字钟作者:***摘要:本文采用自顶向下的分析方法。
首先分析了多功能数字钟的设计要求、所需实现的功能,然后分析了实现每个功能所需要的基础模块,最后进一步分析了各种基础模块。
在具体设计时,采用的是自底向上的设计方法。
首先设计各种基础模块,然后设计各种功能模块,最后进行综合设计。
本次设计除了实现基本的时钟电路外,还实现了整点报时、闹钟、日期、星期、倒计时、秒表、铃声等多种功能。
Abstract:This article adopts the top-down analysis method .Above all ,it analyses the design requirement and the required functionality of Multi function Digital Clock .And then it analyses the needed basic modules which can achieve each function .Lastly ,it analyses each basic module further .When it comes to the specific design ,it adopts the bottom-up design method .Firstly ,it designs each basic module .Then , it designs the function modules based on the basic modules .Finally ,it integrates all the designs .Besides the function of basic clock ,it also achieves functions of hourly chime ,alarm , date ,week ,countdown ,stopwatch and ring.关键词:计数封装同步Key words: Count Encapsulation Synchronization1EDA设计多功能数字钟作者:***目录1 实验说明 (3)1.1 实验内容 (3)1.2 题目简介 (3)1.3 设计要求 (3)1.4 功能简介 (3)1.5 原理框图 (3)2 设计分析 (4)2.1 功能模块分析 (4)2.2 基础模块分析 (4)3 基础模块的设计 (5)3.1 计数器 (5)3.2 比较器 (8)3.3 分频器 (9)3.4其它 (12)4 功能模块的设计 (15)4.1 基本时钟电路 (15)4.2 整点报时 (19)4.3 闹钟 (20)4.4 日期 (22)4.5 星期 (25)4.6 倒计时 (26)4.7 秒表 (27)4.8 铃声 (28)4.9 脉冲发生电路 (29)5 综合电路的设计 (30)5.1 输出控制电路 (30)5.2 去抖电路 (34)5.3 多功能数字钟 (35)6 实验总结 (36)6.1 实验心得 (36)6.2 实验体会 (37)7 参考文献 (39)2EDA设计多功能数字钟作者:***1 实验说明1.1 实验内容利用QuartusII软件设计一个数字钟,并下载到SmartSOPC实验系统中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
EDA实现多功能数字钟
一、实验任务:
用FPGA器件和EDA技术实现多功能数字钟的设计
已知条件:1、MAX+Plus软件
2、FPGA实验开发装置
基本功能:1、以数字形式显示时、分、秒的时间;
2、小时计数器为24进制;
3、分、秒计数器为60进制。
二、小时计数器为24进制
原理图如下:
对该图进行编译及波形仿真如下:
分析及结论:小时计数器是24进制用当下面的74161到9时等下个脉冲来是向上面一个74161进位使的上面的74161记数。
但是等到上面的计到2时下
面的将不能超过4所以等上面的计到2,下面的计到4时就将两个74161共同预置。
从而实现00—24分的记数功能。
仿真波形显示里23小时到00分的循环的过程仿真到位。
对上述仿真波形图进行打包工作,将24进制图建立成模块:
三、分计数器为60进制
原理图如下:
对该图进行编译及波形仿真如下:
分析及结论:分计数器是60进制的。
当下面的74161到9时等下个脉冲
置。
从而实现00—59秒的记数功能。
Cp60S为向分的进位信号上跳沿有效。
仿真波形显示里59秒到00秒的循环的过程,仿真到位。
对上述仿真波形图进行打包工作,将60进制图建立成模块:
四、秒计数器为60进制
原理图如下:
对该图进行编译及波形仿真如下
分析及结论:秒计数器是60进制的。
当下面的74161到9时等下个脉冲
置。
从而实现00—59秒的记数功能。
Cp60S为向分的进位信号上跳沿有效。
仿真波形显示里59秒到00秒的循环的过程,仿真到位。
对上述仿真波形图进行打包工作,将60进制图建立成模块:
五、多功能数字钟的主体部分
原理图如下:
仿真波形图如下:
六、下载
1、添加译码模块后的原理图
对上述图形进行编译及波形图如下
2、选用器件
3、分配引脚号
4、对器件进行下载
下载模块的原理图如下
七、心得体会:。