EDA实验数字钟

合集下载

LED数码显示时钟(EDA程序设计)

LED数码显示时钟(EDA程序设计)

LED 数码显示时钟一、实验目的 :1、地运用数字系统的设计方法进行数字系统设计。

2、能进行较复杂的数字系统设计。

3、数字钟的工作原理, 数字钟的工作流程图与原理方框图, 自顶向下的数字系统设计方法。

二、实验原理:1、数字钟的基本工作原理:数字钟以其显示时间的直观性、走时准确性而受到了人们的欢迎并很快走进了千 家万户。

作为一种计时工具,数字钟的基本组成部分离不开计数器,在控制逻辑电路的控制下完成预定的各项功能。

数字钟的基本原理方框图如下:(1)时基T 产生电路:由晶振产生的频率非常稳定的脉冲,经整形、稳定电路后,产生一个频率为 1Hz 的、非常稳定的计数时钟脉冲。

(2)控制逻辑电路:产生调时、调分信号及位选信号。

调时、调分信号的产生:由计数器的计数过程可知,正常计数时,当秒计数器( 60进制)计数到59 时,再来一个脉冲,则秒计数器清零,重新开始新一轮的计数,而进位则作为分计数器的计数脉冲,使分计数器计数加1。

现在我们把电路稍做变动:把秒计数器的进位脉冲和一个频率为2Hz 的脉冲信号同时接到一个2选1数据选择器的两个数据输入端,而位选信号则接一个脉冲按键开关,当按键开关不按下去时(即为0),则数据选择器将秒计数器的进位脉冲送到分计数器,此时,数字钟正常工作;当按键开关按下去时(即为1),则数据选择器将另外一个2Hz 的信号作为分计数器的计数脉冲,使其计数频率加快,当达到正确时间时,松开按键开关,从而达到调时的目的。

调节小时的时间也一样的实现。

(3)计数显示电路:由计数部分、数据选择器、译码器组成,是时钟的关键部分。

计数部分: 由两个 60进制计数器和一个24 进制计数器组成,其中60 进制计数器可用6 进制计数器和10 进制计数器构成;24 进制的小时计数同样可用6 进制计数器和10 进制计数器得到:当计数器计数到24 时,“2”和“4”同时进行清零,则可实现24 进制计数。

数据选择器:84输入14输出的多路数据选择器,因为本实验用到了8个数码管(有两个用来产生隔离符号‘—')。

EDA实验报告(时钟)

EDA实验报告(时钟)

巢湖学院EDA实验报告数字时钟的设计报告学校:巢湖学院系别:物理与电子科学系专业:电子科学与技术班级:07电子科学与技术学号:07036037姓名:汪振新指导老师:常红霞2009-12-10摘要:根据系统设计的要求,系统设计采用自顶向下的设计方法,可以将该系统中的各功能模块细分为:秒计数模块、分计数模块、小时计数模块、报时模块、时间设置模块和译码显示模块六个部分。

具有清零、校时、校分等功能。

关键字:VHDL MAX+PLUS软件七段共阴数码管设计校时系统整体GDF图标文件截图目录一设计目的 (4)二设计要求 (4)三系统整体构架 (4)四各模块程序设计 (5)五系统模块的编译、仿真及调试 (14)六系统模块的整合 (18)七系统硬件介绍 (19)八系统实验过程 (20)九实验总结 (21)十参考文献 (21)一:设计目的1、数字时序逻辑电路综合应用。

2、学习喇叭的驱动方法。

3、学习CPLD/FPGA的层次化设计方法。

二:设计要求具有时、分、秒计数显示功能,以24小时循环计时。

整个计数器具有清零、调分、调时功能,而且在接近整点时间时能提供报时信号。

三:系统整体构架根据系统设计的要求,系统设计采用自顶向下的设计方法,可以将该系统中的各功能模块细分为:秒计数模块、分计数模块、小时计数模块、报时模块、时间设置模块和译码显示模块六个部分。

先使用VHDL语言设计编译将这每个模块制作成图元,然后再使用图形编辑器进行总体的整合,系统的整体组装设计的草图如下:四:各模块程序设计1.秒计数模块VHDL(second.vhd)秒计数模块中是以60进制进行循环的,故需要的秒数据输出应该是7位的,但是为了方便随后的调整时间模块设计,秒输出数据用8位二进制表示,其中低四位用于秒的低位,而高四位作为秒的高位。

另外在该模块下的程序由于考虑到系统功能中调整时钟和分钟的要求,故要在秒计数模块中另外加入复位信号(reset)以及分钟设置信号(setmin)。

eda多功能数字钟实验报告

eda多功能数字钟实验报告

eda多功能数字钟实验报告
《EDA多功能数字钟实验报告》
摘要:
本实验通过对EDA多功能数字钟的组装和测试,探索了数字钟的功能和性能。

实验结果表明,EDA多功能数字钟具有精准的时间显示、多种闹铃设置、温度
和湿度监测等功能,是一款实用且性能稳定的数字钟产品。

引言:
数字钟作为现代生活中不可或缺的家居用品,其功能和性能一直备受关注。


次实验选择了EDA多功能数字钟作为研究对象,旨在通过对其组装和测试,深
入了解数字钟的各项功能和性能指标。

实验方法:
1. 组装数字钟:按照产品说明书,将数字钟的各个部件进行组装,并确保连接
牢固。

2. 功能测试:测试数字钟的时间显示、闹铃设置、温度和湿度监测等功能。

3. 性能测试:对数字钟的时间精准度、闹铃响铃声音、温度和湿度监测准确度
等进行测试。

实验结果:
1. 时间显示:数字钟的时间显示精准,误差在1秒以内。

2. 闹铃设置:数字钟支持多组闹铃设置,响铃声音清晰、音量适中。

3. 温度和湿度监测:数字钟的温湿度监测准确度高,与实际环境温湿度相符合。

讨论:
通过本次实验,我们发现EDA多功能数字钟具有精准的时间显示、多种闹铃设
置、温度和湿度监测等功能,性能稳定,符合用户对数字钟的基本需求。

同时,数字钟的组装和操作也相对简单,适合家庭使用。

结论:
EDA多功能数字钟是一款实用且性能稳定的数字钟产品,能够满足用户对数字
钟的基本需求。

在未来的生活中,数字钟将继续扮演重要的角色,为人们的生
活提供便利。

致谢:
感谢实验中提供支持和帮助的老师和同学们。

EDA课程设计数字闹钟

EDA课程设计数字闹钟

EDA课程设计数字闹钟一、教学目标本课程旨在通过数字闹钟的设计与实现,让学生掌握EDA(电子设计自动化)的基本原理和方法,培养学生的实践能力和创新精神。

具体目标如下:知识目标:使学生了解数字闹钟的原理和结构,理解时钟芯片的工作原理,掌握EDA工具的使用方法。

技能目标:培养学生使用EDA工具进行数字电路设计的能力,提升学生的编程和调试技能,训练学生的团队协作和沟通能力。

情感态度价值观目标:培养学生对电子科技的兴趣和热情,增强学生解决实际问题的信心和勇气,培养学生负责任的工作态度和良好的团队合作精神。

二、教学内容本课程的教学内容主要包括数字闹钟的原理与设计、时钟芯片的工作原理、EDA工具的使用等。

1.数字闹钟的原理与设计:介绍数字闹钟的工作原理,包括时钟发生器、分频器、计数器等基本组成部分,以及如何实现闹钟功能。

2.时钟芯片的工作原理:讲解时钟芯片的内部结构和工作原理,使学生了解时钟芯片在数字电路中的应用。

3.EDA工具的使用:介绍常用的EDA工具,如Cadence、Altera等,讲解如何使用这些工具进行数字电路设计。

三、教学方法为了提高教学效果,本课程将采用多种教学方法,包括讲授法、案例分析法、实验法等。

1.讲授法:通过讲解数字闹钟的原理、时钟芯片的工作原理以及EDA工具的使用方法,使学生掌握相关知识。

2.案例分析法:分析实际案例,让学生了解数字闹钟设计的过程和注意事项。

3.实验法:让学生动手实践,使用EDA工具设计数字闹钟,提高学生的实践能力。

四、教学资源为了支持教学内容的实施,我们将准备以下教学资源:1.教材:选择合适的教材,如《数字电路与EDA技术》等,为学生提供理论支持。

2.多媒体资料:制作课件、视频等多媒体资料,丰富教学手段,提高学生的学习兴趣。

3.实验设备:准备实验设备,如计算机、EDA工具软件、开发板等,为学生提供实践平台。

4.网络资源:利用网络资源,为学生提供更多的学习资料和实践案例,拓宽学生的视野。

EDA课程数字钟设计报告-V1

EDA课程数字钟设计报告-V1

EDA课程数字钟设计报告-V1数字钟设计报告数字钟设计是EDA(Electronic Design Automation)课程的一项实验任务。

在本次实验中,我们学习了数字电路设计的基本原理和EDA工具的使用方法,并通过数字钟的设计和实现,进一步加深了对数字电路运作的理解和应用能力。

设计原理在数字钟的设计中,我们需要考虑以下几个方面的原理:1.时钟信号发生器时钟信号发生器是数字钟的核心部件,它需要产生一种能够精确计时的信号,来控制其他部件的运作。

我们使用的时钟信号发生器是基于分频电路的原理,通过将高频信号逐步分频,最终得到1Hz的低频信号作为时钟信号。

2.计数器计数器是用于记录时间的关键部件,它需要能够根据时钟信号的变化而自动计数。

我们使用的计数器是基于JK触发器的原理,通过配置不同的触发器状态和逻辑门电路,实现对秒、分、时位数的分别计数。

3.显示器显示器是将计数器的结果通过人们能够理解的形式进行输出的部件,它需要能够清晰、准确地显示时间信息。

我们使用的显示器是基于七段数码管的原理,通过将计数器的结果转换为七段数码管的相应显示状态,实现对时间的显示。

技术实现在技术实现方面,我们使用了EDA工具Xilinx ISE Design Suite来完成数字钟的设计和编程。

通过该工具,我们可以方便地进行原理图绘制、模拟仿真、逻辑设计和HDL编程等过程,最终得到可供FPGA实现的数字钟设计。

具体实现过程如下:1. 通过原理图绘制工具,建立时钟信号发生器、计数器和显示器等部件的原理图,并进行逻辑连接;2. 在模拟仿真工具中,针对不同的输入信号进行仿真测试,检查各个部件的正常运行情况;3. 在HDL编程工具中,编写相应的代码实现数字钟的各项功能,并进行综合和优化;4. 在下载工具中,将编译后的数字钟设计文件下载到FPGA芯片中,完成数字钟的实际实现。

实验结果经过以上的设计和实现,我们最终完成了一款具有完整计数与显示功能的数字钟,能够自动计时、定时报时、清零等各项操作。

eda课程设计数字钟设计

eda课程设计数字钟设计

eda课程设计数字钟设计一、课程目标知识目标:1. 学生能理解EDA(电子设计自动化)的基本概念,掌握数字钟的基本原理和设计流程。

2. 学生能描述数字钟的各个模块功能,如计时、显示、调整等,并理解它们之间的协同工作方式。

3. 学生掌握Verilog等硬件描述语言的基本语法,能够利用EDA工具进行基本的数字电路设计和仿真。

技能目标:1. 学生能够运用所学知识,使用EDA工具设计简单的数字时钟电路,并进行功能仿真。

2. 学生通过小组合作,培养团队协作能力和问题解决能力,提高工程实践和项目管理的初步技能。

3. 学生能够运用批判性思维分析设计过程中的问题,提出优化方案,并对设计方案进行改进。

情感态度价值观目标:1. 学生通过数字钟的设计实践,培养对电子工程领域的兴趣和探究精神,激发创新意识和创造潜能。

2. 学生在学习过程中,形成严谨的科学态度和良好的工程意识,认识到技术对日常生活的影响。

3. 学生在小组合作中,学会相互尊重和沟通,培养积极向上的团队精神,增强集体荣誉感。

课程性质分析:本课程为实践性较强的电子设计课程,要求学生将理论知识与实际操作相结合,通过动手实践,深化对电子设计自动化原理的理解。

学生特点分析:针对高中年级学生,已有一定的电子基础和逻辑思维能力,对新鲜事物充满好奇心,具备自主学习的能力。

教学要求:课程要求教师通过引导和启发,帮助学生将抽象的理论具体化,通过项目式的教学方法,使学生能够将所学知识应用于实际问题的解决中。

二、教学内容本课程教学内容围绕数字钟设计的全过程,分为以下三个部分:1. 理论知识学习:- 电子设计自动化(EDA)基本概念与原理;- 数字时钟的组成、工作原理及各模块功能;- Verilog硬件描述语言的基本语法及使用方法;- 相关电子元器件的特性和应用。

2. 实践操作部分:- 使用EDA工具(如ModelSim、Quartus等)进行基本操作;- 设计数字钟的各个模块,并进行功能仿真;- 对设计过程中出现的问题进行分析,提出优化方案;- 完成数字钟整体设计与调试。

电子设计自动化(EDA)_数字时钟程序模块(LED数码管显示)_实验报告

电子设计自动化(EDA)_数字时钟程序模块(LED数码管显示)_实验报告

电子设计自动化(EDA)—数字时钟LED数码管显示二、实验内容和实验目的1. 6个数码管动态扫描显示驱动2. 按键模式选择(时\分\秒)与闹钟(时\分)调整控制,3. 用硬件描述语言(或混合原理图)设计时、分、秒计数器模块、闹钟模块、按键控制状态机模块、动态扫描显示驱动模块、顶层模块。

要求使用实验箱左下角的6个动态数码管(DS6 A~DS1A)显示时、分、秒;要求模式按键和调整按键信号都取自经过防抖处理后的按键跳线插孔。

实验目的: 1)学会看硬件原理图, 2)掌握FPGA硬件开发的基本技能3)培养EDA综合分析、综合设计的能力三、实验步骤、实现方法(或设计思想)及实验结果主要设备: 1)PC机, 2)硬件实验箱, 3)Quartus II软件开发平台。

1.打开Quartus II , 连接实验箱上的相关硬件资源, 如下图1所示。

2.建立新文件, 选择文本类型或原理图类型。

3. 编写程序。

4.编译5. 仿真, 加载程序到芯片, 观察硬件输出结果(数码管显示)6.结果正确则完成。

若结果不正确, 则修改程序, 再编译, 直到正确。

模24计数器模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY count24 ISPORT(clk,en:IN STD_LOGIC;cout:OUT STD_LOGIC;hh,hl:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END count24;ARCHITECTURE arc OF count24 ISSIGNAL a,b:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(clk,en)BEGINhh<=a;hl<=b;IF(clk'EVENT AND clk='1') THENIF(en='1') THENIF(a="0010" AND b="0011") THENa<="0000";b<="0000";ELSE IF(b="1001") THENa<=a+'1';b<="0000";ELSE b<=b+'1';END IF;END IF;IF(a="0010" AND b="0010") THENcout<='1';ELSE cout<='0';END IF;END IF;END IF;END PROCESS;END arc;模60计数器模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY count60 ISPORT(clk,en:IN STD_LOGIC;cout:OUT STD_LOGIC;hh,hl:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END count60;ARCHITECTURE arc OF count60 ISSIGNAL a,b:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL sout:STD_LOGIC;BEGINPROCESS(clk)BEGINhh<=a; hl<=b;IF(clk'EVENT AND clk='1') THENIF(en='1') THENIF(a="0101" AND b="1001") THENa<="0000";b<="0000";ELSE IF(b="1001") THENa<=a+'1';b<="0000";ELSE b<=b+'1';END IF;END IF;END IF;END IF;END PROCESS;sout<='1' WHEN a="0101" AND b="1001" ELSE '0';cout<=sout AND en;END arc;4-7显示译码模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY segment4to7 ISPORT(s:IN STD_LOGIC_VECTOR(3 DOWNTO 0);a,b,c,d,e,f,g:OUT STD_LOGIC);END segment4to7;ARCHITECTURE arc OF segment4to7 IS SIGNAL y:STD_LOGIC_VECTOR(6 DOWNTO 0); BEGINa<= y(6);b<= y(5);c<= y(4);d<= y(3);e<= y(2); f<= y(1);g<= y(0);PROCESS(s)BEGINCASE s ISWHEN "0000"=>y<="1111110"; WHEN "0001"=>y<="0110000"; WHEN "0010"=>y<="1101101"; WHEN "0011"=>y<="1111001"; WHEN "0100"=>y<="0110011"; WHEN "0101"=>y<="1011011"; WHEN "0110"=>y<="1011111"; WHEN "0111"=>y<="1110000"; WHEN "1000"=>y<="1111111"; WHEN "1001"=>y<="1111011"; WHEN OTHERS=>y<="0000000"; END CASE;END PROCESS;END arc;带闹钟控制模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mode_adjust_with_alarm ISPORT (adjust,mode,clk1hz: IN STD_LOGIC;clkh,enh,clkm,enm,clks,enha: OUT STD_LOGIC;clkh_a,clkm_a:OUT STD_LOGIC;mode_ss: OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END mode_adjust_with_alarm;ARCHITECTURE arc OF mode_adjust_with_alarm ISTYPE mystate IS (s0,s1,s2,s3,s4,s5);SIGNAL c_state,next_state: mystate;BEGINPROCESS (c_state)BEGINCASE c_state ISWHEN s0=> next_state <= s1; clkh<=clk1hz; clkm<=clk1hz; clks<=clk1hz;enh<='0'; enm<='0'; enha<='0'; clkh_a<= '0'; clkm_a<= '0'; mode_ss <="000";WHEN s1=> next_state <= s2; clkh<=adjust; clkm<= '0'; clks<='0';enh<='1'; enm<='0';enha<='0'; clkh_a<= '0';clkm_a<= '0'; mode_ss <="001";WHEN s2=> next_state <= s3; clkh<= '0'; clkm<=adjust; clks <= '0';enh<='0';enm<='1';enha<='0'; clkh_a<= '0'; clkm_a<= '0'; mode_ss <="010";WHEN s3=> next_state <= s4; clkh<= '0'; clkm<= '0'; clks<=adjust;enh<='0'; enm<='0';enha<='0'; clkh_a<= '0'; clkm_a<= '0'; mode_ss <="011";WHEN s4=> next_state <= s5; clkh<= clk1hz; clkm<= clk1hz; clks<=clk1hz;enh<='0';enm<='0';enha<='1'; clkh_a<=adjust; clkm_a<= '0'; mode_ss <="100";WHEN s5=> next_state <= s0; clkh<= clk1hz; clkm<= clk1hz; clks<=clk1hz;enh<='0'; enm<='0'; enha<='0'; clkh_a<= '0'; clkm_a<=adjust; mode_ss <="101";END CASE;END PROCESS;PROCESS (mode)BEGINIF (mode'EVENT AND mode='1') THENc_state<=next_state ;END IF;END PROCESS;END arc;扫描模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY scan ISPORT(clk256hz:IN STD_LOGIC;ss:OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END scan;ARCHITECTURE arc OF scan ISTYPE mystate IS (s0, s1,s2,s3,s4,s5);SIGNAL c_state,next_state: mystate;BEGINPROCESS ( c_state )BEGINCASE c_state ISWHEN s0=> next_state <=s1; ss<="010";WHEN s1=> next_state <=s2; ss<="011";WHEN s2=> next_state <=s3; ss<="100";WHEN s3=> next_state <=s4; ss<="101";WHEN s4=> next_state <=s5; ss<="110";WHEN s5=> next_state <=s0; ss<="111";END CASE;END PROCESS;PROCESS (clk256hz)BEGINIF (clk256hz'EVENT AND clk256hz='1') THENc_state<=next_state ;END IF;END PROCESS;END arc;复用模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux ISPORT(hh,hl,mh,ml,sh,sl,hha,hla,mha,mla:IN STD_LOGIC_VECTOR(3 DOWNTO 0);ss,mode_ss:IN STD_LOGIC_VECTOR(2 DOWNTO 0);y:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);alarm:OUT STD_LOGIC);END mux;ARCHITECTURE arc OF mux ISSIGNAL a,hhtmp,hltmp,mhtmp,mltmp,shtmp,sltmp:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(mode_ss)BEGINCASE mode_ss ISWHEN "000"=>hhtmp<=hh; hltmp<=hl; mhtmp<=mh; mltmp<=ml; shtmp<=sh; sltmp<=sl;WHEN "001"=>hhtmp<=hh; hltmp<=hl; mhtmp<=mh; mltmp<=ml; shtmp<=sh; sltmp<=sl;WHEN "010"=>hhtmp<=hh; hltmp<=hl; mhtmp<=mh; mltmp<=ml; shtmp<=sh; sltmp<=sl;WHEN "011"=>hhtmp<=hh; hltmp<=hl; mhtmp<=mh; mltmp<=ml; shtmp<=sh; sltmp<=sl;WHEN "100"=> hhtmp<=hha; hltmp<=hla; mhtmp<=mha; mltmp<=mla; shtmp<=sh; sltmp<=sl;WHEN "101"=> hhtmp<=hha; hltmp<=hla; mhtmp<=mha; mltmp<=mla; shtmp<=sh; sltmp<=sl;WHEN OTHERS=>hhtmp<="0000";hltmp<="0000";mhtmp<="0000";mltmp<="0000";shtmp<="0000";sltmp<="0000"; END CASE;END PROCESS;PROCESS(ss)BEGINCASE ss ISWHEN "010"=> a <=hhtmp;WHEN "011"=> a <=hltmp;WHEN "100"=> a <=mhtmp;WHEN "101"=> a <=mltmp;WHEN "110"=> a <=shtmp;WHEN "111"=> a <=sltmp;WHEN OTHERS => a <="0000";END CASE;y<=a;END PROCESS;alarm<='1' WHEN ((hh=hha)AND(hl=hla)AND(mh=mha)AND(ml=mla)) ELSE '0';END arc;闪烁模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY blink_control ISPORT(ss,mode_ss:IN STD_LOGIC_VECTOR(2 DOWNTO 0);blink_en:OUT STD_LOGIC);END blink_control;ARCHITECTURE arc OF blink_control ISBEGINPROCESS (ss,mode_ss)BEGINIF(ss="010" AND mode_ss="001") THEN blink_en<='1';ELSIF(ss="011" AND mode_ss="001") THEN blink_en<='1';ELSIF(ss="100" AND mode_ss="010") THEN blink_en<='1';ELSIF(ss="101" AND mode_ss="010") THEN blink_en<='1';ELSIF(ss="110" AND mode_ss="011") THEN blink_en<='1';ELSIF(ss="111" AND mode_ss="011") THEN blink_en<='1';ELSIF(ss="010" AND mode_ss="100") THEN blink_en<='1';ELSIF(ss="011" AND mode_ss="100") THEN blink_en<='1';ELSIF(ss="100" AND mode_ss="101") THEN blink_en<='1';ELSIF(ss="101" AND mode_ss="101") THEN blink_en<='1';ELSE blink_en<='0';END IF;END PROCESS;END arc;Top文件LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY design3 ISPORT (mode,adjust,clk1hz,clk2hz,clk256hz,clk1khz:IN STD_LOGIC;alarm,a,b,c,d,e,f,g:OUT STD_LOGIC;ss:OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END design3;ARCHITECTURE arc OF design3 ISCOMPONENT mode_adjust_with_alarm PORT (adjust,mode,clk1hz: IN STD_LOGIC;clkh,enh,clkm,enm,clks,enha: OUT STD_LOGIC;clkh_a,clkm_a:OUT STD_LOGIC;mode_ss: OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END COMPONENT;COMPONENT scan PORT (clk256hz:IN STD_LOGIC;ss:OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END COMPONENT;COMPONENT segment4to7 PORT (s: IN STD_LOGIC_VECTOR(3 DOWNTO 0);a,b,c,d,e,f,g: OUT STD_LOGIC);END COMPONENT;COMPONENT mux PORT(hh,hl,mh,ml,sh,sl,hha,hla,mha,mla:IN STD_LOGIC_VECTOR(3 DOWNTO 0);ss,mode_ss:IN STD_LOGIC_VECTOR(2 DOWNTO 0);y:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);alarm:OUT STD_LOGIC);END COMPONENT;COMPONENT blink_control PORT(ss,mode_ss:IN STD_LOGIC_VECTOR(2 DOWNTO 0);blink_en:OUT STD_LOGIC);END COMPONENT;COMPONENT count24 PORT (clk,en:IN STD_LOGIC;cout:OUT STD_LOGIC;hh,hl:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END COMPONENT;COMPONENT count60 PORT (clk ,en:IN STD_LOGIC;cout:OUT STD_LOGIC;hh,hl:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END COMPONENT;SIGNALclkh,enh,clkm,enm,clks,clkh_a,clkm_a,coutm,couts,coutm_en,couts_en,cout,vcc,coutma_en,coutma,alarm1,bli nk_en,blink_tmp,enha: STD_LOGIC;SIGNAL mode_ss,ss1:STD_LOGIC_VECTOR(2 DOWNTO 0);SIGNAL hh,hl,mh,ml,sh,sl,hha,hla,mha,mla,y,i:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINvcc<='1';coutm_en <= enh OR coutm;couts_en <= enm OR couts;coutma_en<= enha OR coutma;blink_tmp<=blink_en and clk2hz;i(3)<=y(3) OR blink_tmp;i(2)<=y(2) OR blink_tmp;i(1)<=y(1) OR blink_tmp;i(0)<=y(0) OR blink_tmp;ss<=ss1;alarm<=alarm1 AND clk1khz;u1:mode_adjust_with_alarmPORT MAP( adjust,mode,clk1hz,clkh,enh,clkm,enm,clks,enha,clkh_a,clkm_a,mode_ss);u2:count24 PORT MAP(clkh,coutm_en,cout,hh,hl);u3:count60 PORT MAP(clkm,couts_en,coutm,mh,ml);u4:count60 PORT MAP(clks,vcc,couts,sh,sl);u5:count24 PORT MAP(clkh_a,coutma_en,cout,hha,hla);u6:count60 PORT MAP(clkm_a,vcc,coutma,mha,mla);u7:mux PORT MAP(hh,hl,mh,ml,sh,sl,hha,hla,mha,mla,ss1,mode_ss,y,alarm1);u8:scan PORT MAP(clk256hz,ss1);u9:blink_control PORT MAP(ss1,mode_ss,blink_en);u10:segment4to7 PORT MAP(i,a,b,c,d,e,f,g);END arc;实验结果:数字钟包括正常的时分秒计时, 实验箱左下角的6个动态数码管(DS6 A~DS1A)显示时、分、秒。

EDA数字钟实验报告

EDA数字钟实验报告
4.输入完成后检查并保存,编译。
5.改错并重新编译;
6.建立仿真波形文件并进行仿真。单击File菜单下的New,选择Vector Waveform File单击OK,创建一个后缀名为*.vwf的仿真波形文件,按照课件上的方法编辑输入波形,保存,进行仿真,验证仿真结果是否正确;
7.选择器件及分配引脚,重新编译;
四.心得体会
对于我们刚熟悉QuartusⅡ的新手来说,这是一个比较大的实现程序了。通过多VHDL语句的掌握以及真值表的理解来控制LED的七段显示译码。先设计一个4位计数器,使其可以从1计数到15.分别用1~F表示,然后通过译码器显示。通过这次实验进一步增进了我们对VHDL语言的了解,提高了发现错误及纠错的能力。
控制模块:数字钟要满足题目要求,必须有5种状态:正常计时、校小时、校分钟、闹铃设置小时、闹铃设置分钟,所以至少用三个二进制数字表示这5种状态,“000”、“001”、“010”、“011”、“100”,当setup为低电平时,状态在这五种状态之间转换,当setup为高电平时,就停在该状态,等待其他操作。主控组合进程程序:
8.根据引脚分配在试验箱上进行连线,使用LED进行显示;
9.程序下载,观察实验结果并记录;
三.仿真波形:
四.心得体会
通过此次课堂的亲自操作,大致了解了quartus的工作流程和操作步骤,对数字电路中的38译码器和半加器的原理有了新的认识,其中,全加器可以通过之前半加器的原理图生成文件以及与门和或门结合来实现。同时对VHDL语言的语法结构和设计方法也有了初步认识,虽然还不能独立编写程序但是却可以看懂程序了,对这门编程语言有浓厚的兴趣!
二.实验步骤
学习QuartusⅡ软件的使用方法:
1.进入QuartusⅡ环境;

EDA数字钟实验报告

EDA数字钟实验报告

EDA数字钟实验报告EDA实验EDA实验数字钟一.实验任务用FPGA器件和EDA技术的设计已知条件:XXX软件XXX实验开发装臵基本功能:1.以数字形式显示时,分,秒的时间;2.小时计数器为24进制;3.分,秒计数器为60进制;多功能数字电子钟设计:输入变量:时钟CPS,直接清零RD;输出变量:小时H[7..4]、H[3..0]为8421BCD码输出,其时钟为CLK;分计时M[7..4]、M[3..0]为8421BCD 码输出,其时钟为CPM;秒计时S[7..4]、S[3..0]为8421BCD码输出,其时钟为CLK;RD为清零信号等。

二.仿真与波形1.60进制原理图如下;其仿真波形如下:2.24进制原理图如下:其仿真波形如下:3.数字钟的整个电路图如下:逻辑电路说明:由电路分析得知,多功能数字电子钟最基本的计时电路在CLK(秒)时钟作用下,电路输出变量为H[7..0],M[7..0]及S[7..0],按8421BCD码正常走时,电路为异步时序逻辑电路4.数字电子钟的仿真波形如下:仿真波形分析及结论:由仿真波形分析得知在CLK(秒)时钟作用下,电路正常走时。

分析过程完全符合多功能数字电子钟最基本的计时功能,逻辑电路设计正确。

三.感想:这次的课程设计的内容是《EDA多功能数字钟》,这次课程设计验我花了两个上午的时间。

虽然我是顺利的完成了任务,但是在实验中我还是发现了自己存在的一些问题。

在课程设计中我经常做完上一步就忘记了下一步该怎么做,总是一边看老师的课件一边做,这样一来浪费了不少时间,这是由于我对软件的操作不熟练的缘故,因此我觉得我应该在今后的日子里多练习一下这个MA_+PLUS软件,做到在以后的学习及工作中能利用这个软件快速的正确的完成任务。

在实验中我还经常出现掉步骤的现象,比如经常忘记“指向当前文件”,从而导致得到的结果是错误的甚至根本就得不到结果,这全都是因为粗心大意造成的。

在今后的日子里我会努力的去改掉这个毛病,从而高质量的完成老师交给我的各项任务!。

eda数字钟实验报告

eda数字钟实验报告

eda数字钟实验报告EDA数字钟实验报告本次实验旨在设计并实现一个EDA数字钟。

通过这个实验,我们将学习如何使用EDA工具来设计数字电路,并通过实际的电路实现来验证我们的设计。

1. 实验背景数字钟是我们日常生活中常见的设备之一。

它不仅可以显示时间,还具有闹钟等功能。

在这个实验中,我们将使用EDA工具来设计一个数字钟电路,并通过FPGA实现这个电路。

2. 实验目标本次实验的目标是设计一个能够显示小时、分钟和秒的数字钟电路。

我们将使用七段数码管来显示这些信息,并通过按键来设置时间和闹钟。

3. 设计思路我们的设计思路如下:3.1 时钟模块我们首先需要设计一个时钟模块,用来产生一个固定的时钟信号。

我们可以使用FPGA的时钟模块来实现这个功能,或者使用外部的晶振电路。

3.2 数码管驱动模块接下来,我们需要设计一个数码管驱动模块,用来将数字转换为七段数码管的显示信号。

我们可以使用查找表或者逻辑门电路来实现这个功能。

3.3 时间设置模块为了能够设置时间,我们需要设计一个时间设置模块。

这个模块可以通过按键来设置小时、分钟和秒。

3.4 闹钟设置模块类似于时间设置模块,我们还需要设计一个闹钟设置模块。

这个模块可以通过按键来设置闹钟的小时和分钟。

3.5 主控制模块最后,我们需要设计一个主控制模块,用来控制时钟、数码管驱动、时间设置和闹钟设置模块之间的交互。

这个模块可以根据设置的时间和闹钟来控制数码管的显示。

4. 电路实现根据我们的设计思路,我们使用EDA工具来实现我们的数字钟电路。

我们使用VHDL语言来描述电路,并使用模块化的方式来组织我们的代码。

5. 实验结果经过实际的电路实现和测试,我们成功地实现了数字钟电路。

我们可以通过按键来设置时间和闹钟,并通过七段数码管来显示时间和闹钟。

6. 实验总结通过这个实验,我们学习了如何使用EDA工具来设计数字电路,并通过实际的电路实现来验证我们的设计。

我们深入了解了数字钟的工作原理,并学会了如何使用VHDL语言来描述电路。

EDA设计数字钟实验报告

EDA设计数字钟实验报告

南京理工大学EDA(Ⅱ)实验报告——多功能数字钟姓名:学号:学院:指导教师:时间:2014/11/3~2014/11/7摘要日益复杂的电子线路使得基于原理图的设计越来越复杂,甚至不切实际。

硬件描述语言的诞生,对设计自动化起到了极大的促进和推动作用。

Verilog HDL就是在用途最广泛的C语言的基础上发展起来的一种硬件描述语言,实现了从算法级、门级到开关级的多种抽象设计层次的数字系统建模,具有仿真,验证,故障模拟与时序分析等功能。

本文利用Verilog HDL语言,采用自顶向下的设计方法设计多功能数字钟,并通过QuartusⅡ分块进行了仿真。

此程序通过下载到FPGA芯片后,可实现实际的数字钟显示,具有基本的计时显示和设置,时间校正,整点报时,12h/24h转换,闹钟设置和闹铃控制的功能。

关键词: FPGA, Verilog HDL, QuartusⅡ, EP3C25F324C8,数字钟AbstractThe development of electronic circuit has grown to be too complicated to be designed base on schematic diagram. The birth of HDL accelerated the development of electronic design automation drastically. Verilog HDL is one of the HDL with multiple and strong functions.In this thesis, a complex digital system is designed in the bottom-up way with Verilog HDL and is simulated by QuartusⅡ. The function of a digital clock can be realized by downloading the program to FPGA, which includes timing, time-setting, hourly chiming, 12/24transforming, bell-setting and bell-controlling.Keywords: FPGA, Verilog HDL, QuartusⅡ, EP3C25F324C8,Digital clock目录摘要Abstract第一章数字钟设计要求说明第二章数字钟的设计思路和工作原理第三章模块的Verilog HDL设计与仿真3.1 计数器模块3.2 基本计时顶层模块3.3 分频模块3.4 整点报时模块3.5闹钟模块3.6 LED数码管显示模块3.7 数字钟顶层模块第四章FPGA实现第五章总结5.1 遇到的问题与解决方案5.2 尚存在的不足之处5.3 收获与感悟参考文献第一章数字钟设计要求说明(一)数字钟可以正常进行基本的时,分,秒计时功能。

EDA数字时钟实验报告

EDA数字时钟实验报告

EDA与数字系统课程设计报告书专业(班级):自动化2011级姓名(学号):丁兴宇20111965指导教师:刘春朱维勇胡存刚指导单位:电气与自动化工程学院目录中文摘要英文摘要实验一 (6)实验二 (7)实验三 (8)实验四 (9)数字时钟实验一.设计说明1.功能说明 (10)2.功能简介 (10)二.各模块设计原理1.扫描显示模块及原理 (11)2.时钟计时模块电路图及原理 (13)3.整点报时模块 (15)4.闹铃模块 (16)三.管脚分布 (19)四.讨论与心得 (20)参考文献 (21)附件 (22)中文摘要本文是基于Altera公司出品MAX+Plus2软件以及相应的ALTERA FLEX EPF10K10LC84-4实验平台完成的数字时钟实验,使我们清楚地了解到我们身边的数字时钟的功能是怎样实现的。

数字时钟实验主要包含两个主体时钟基本功能电路、闹钟电路。

主体一:主要涉及模60与模24计数器、动态显示控制电路、分频器主要整点报时电路,这些电路都是以模块封装好的,以便其他电路调用。

以计数器构成计时部件,通过分频器分出的1HZ脉冲计时,调用动态显示电路显示,通过整点报时电路控制蜂鸣器。

主体二:主要涉及模60与模24计数器、显示控制电路、4个数据比较器。

以模60与模24计数器构成定时与存储电路,调用动态显示控制电路显示,通过4个数据比较器比较时钟与闹铃的小时、分钟,和后续与门控制蜂鸣器。

英文摘要(Abstract)This article is based on Altera MAX + Plus2 software company produced and the corresponding ALTERA FLEXEPF10K10LC84-4 experimental platform to complete the digital clock experiments, so that we clearly understand our side of the digital clock function is how to achieve.Digital clock experiment consists mainly of two basic functions of the body clock circuits, alarm circuits.The main one: mainly related to mold 60 and the mold 24 counters, dynamic display control circuit, the whole point timekeeping main divider circuits, which are packaged in modules, so that other circuits calls. To constitute a timing counter parts, through the separation of the 1HZ divider pulse timing, called dynamic display circuit display, through the whole point timekeeping circuit control buzzer.Subject II: mainly related counter mold 60 and the mold 24, a display control circuit, four data comparator. Mold 60 and the mold 24 to form counter timing and memory circuit,called dynamic display control circuit shows that by four data comparator compares the clock and the alarm hour, minute, and follow-up with the door control buzzer.关键词:MAX+Plus2软件 EPF10K10LC84-4 数字时钟基本功能电路闹钟电路实验一题目:Max+Plus2使用练习,完成一个简单门电路的图形设计输入、编译、仿真、管脚分配、下载。

EDA设计报告-数字钟

EDA设计报告-数字钟

一、设计要求1、设计一个能显示1/10秒、秒、分、时的12小时数字钟。

2、熟练掌握各种计数器的使用。

能用计数器构成十进制、六十进制、十二进制等所需进制的计数器。

能用低位的进位输出构成高位的计数脉冲。

3、“时显示”部分应注意12点后显示1点。

4、注意各部分的关系,由低位到高位逐级设计、调试。

5、时钟显示使用数码管显示。

二、系统方案论证与模块划分1、计数器模块计数器模块中,1/10秒采用带进位的10进制功能模块,秒和分采用带进位的60进制功能模块,小时采用不带进位的12进制功能模块。

计数器模块均用Verilog HDL语言编写,实现计数逻辑功能。

(1)十进制计数器设计程序如下:module ssecond(q,rco,clk,reset);input clk,reset;output [3:0] q;output rco;reg rco;reg [3:0] q;always @(posedge clk or negedge reset)beginif(~reset)q<=4'b0000;else if (q==4'b1001) begin q<=4'b0000; rco=1;endelse begin q<=q+1'b1; rco=0;endendendmodule经编译、仿真、下载,满足要求。

然后通过Create Default Symbol,生成符号体如下:(2)六十进制计数器设计程序如下:module second(qh,ql,rco,clk,reset);output[3:0]qh;output[3:0]ql;output rco;reg [3:0]qh;reg [3:0]ql;reg rco;input clk,reset;always @(posedge clk or negedge reset)beginif(~reset){qh,ql}<=0;elsebeginif({qh,ql}==8'h59)begin {qh,ql}<=0;rco<=1;endelsebeginif(ql==9)begin ql<=0; qh<=qh+1;endelsebegin ql<=ql+1;rco<=0;endendendendendmodule经编译、仿真、下载,满足要求。

eda课程设计数字时钟

eda课程设计数字时钟

eda课程设计 数字时钟一、课程目标知识目标:1. 学生能理解数字时钟的基本概念和原理,掌握数字时钟的组成、功能及使用方法。

2. 学生能够运用所学知识,分析并设计简单的数字时钟电路。

3. 学生了解EDA(电子设计自动化)软件在数字时钟设计中的应用。

技能目标:1. 学生能够运用EDA软件完成数字时钟电路的绘制、仿真和调试。

2. 学生能够运用逻辑电路知识,设计并实现数字时钟的基本功能,如时、分、秒显示。

3. 学生能够通过团队合作,解决数字时钟设计过程中遇到的问题。

情感态度价值观目标:1. 学生培养对电子设计技术的兴趣,提高创新意识和动手能力。

2. 学生在学习过程中,养成积极思考、主动探究的良好习惯。

3. 学生通过团队合作,培养沟通协作能力和集体荣誉感。

课程性质:本课程为实践性课程,以学生动手实践为主,注重培养学生的实际操作能力和创新能力。

学生特点:本课程面向初中生,学生对电子技术有一定了解,具备基本的逻辑思维能力,但实际操作能力有待提高。

教学要求:教师应结合学生特点,采用任务驱动法、分组合作法等教学方法,引导学生主动参与,确保课程目标的实现。

同时,注重过程评价和成果评价,全面评估学生的学习成果。

二、教学内容本章节教学内容依据课程目标,紧密结合教材,确保科学性和系统性。

具体内容包括:1. 数字时钟基础知识:介绍数字时钟的原理、组成及功能,对应教材第3章“数字电路基础”。

- 时钟信号产生- 计数器原理- 显示技术2. EDA软件应用:学习EDA软件的使用方法,绘制数字时钟电路图,对应教材第5章“EDA技术及其应用”。

- EDA软件操作- 电路图绘制- 电路仿真与调试3. 数字时钟电路设计:运用逻辑电路知识,设计数字时钟电路,对应教材第4章“组合逻辑电路”。

- 逻辑门电路- 时钟分频器设计- 计数器设计- 显示控制电路4. 数字时钟制作与调试:分组合作,动手实践,完成数字时钟的制作与调试,对应教材第6章“数字电路实践”。

eda课程设计数字时钟设计

eda课程设计数字时钟设计

eda课程设计数字时钟设计一、教学目标本课程旨在通过数字时钟设计项目,让学生掌握EDA(电子设计自动化)工具的基本使用,理解数字电路的设计原理,培养学生的动手实践能力和创新能力。

具体目标如下:1.知识目标:•掌握数字电路的基本概念和设计方法。

•学习常用的EDA工具,如Multisim、Proteus等,并能够运用它们进行数字电路的设计和仿真。

•了解时钟信号的产生和应用,理解RTC(实时时钟)的工作原理。

2.技能目标:•能够运用EDA工具设计简单的数字时钟电路。

•能够进行电路仿真,调试并优化设计。

•学会阅读和理解电子电路图,培养良好的电子工程实践能力。

3.情感态度价值观目标:•培养学生对电子科技的兴趣,增强其科技意识。

•培养学生团队协作精神和自主学习能力。

•培养学生解决问题的能力,增强其面对挑战的信心。

二、教学内容本课程的教学内容主要包括数字电路基础、EDA工具的使用、数字时钟设计原理和RTC的应用。

具体安排如下:1.数字电路基础:•数字逻辑门电路•组合逻辑电路•时序逻辑电路2.EDA工具的使用:•Multisim和Proteus的基本操作•数字电路图的绘制和仿真3.数字时钟设计原理:•常见的时钟信号生成电路•数字时钟电路的设计方法4.RTC的应用:•RTC的工作原理•RTC在数字时钟中的应用三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式,包括:1.讲授法:用于讲解数字电路基础和EDA工具的使用方法。

2.案例分析法:通过分析具体的数字时钟设计案例,让学生理解数字时钟的设计过程。

3.实验法:让学生动手实践,使用EDA工具进行数字时钟的设计和仿真。

四、教学资源为了支持教学,我们将准备以下教学资源:1.教材:选用《数字电路与EDA技术》作为主要教材。

2.参考书:提供《EDA技术教程》等参考书籍,供学生课后自主学习。

3.多媒体资料:制作课件和教学视频,用于课堂讲解和课后复习。

4.实验设备:提供计算机、EDA工具软件、电路仿真实验板等,供学生进行实验和实践。

eda课程设计数字时钟调试

eda课程设计数字时钟调试

eda课程设计数字时钟调试一、课程目标知识目标:1. 学生能够理解数字时钟的基本原理,掌握EDA工具进行数字电路设计的基本流程。

2. 学生能够运用数字逻辑设计原理,完成对数字时钟的调试和优化。

3. 学生能够描述数字时钟各个模块的功能和相互关系,如秒脉冲发生器、计数器、译码器等。

技能目标:1. 学生能够运用所学知识,独立完成数字时钟的设计和调试。

2. 学生能够通过EDA工具进行电路仿真,验证设计的正确性和可行性。

3. 学生能够解决在数字时钟调试过程中遇到的问题,提高实际操作能力和问题解决能力。

情感态度价值观目标:1. 培养学生勇于探索、善于合作的精神,增强对电子设计的兴趣和热情。

2. 培养学生严谨的科学态度,注重细节,提高审美观念和产品质量意识。

3. 引导学生关注数字时钟在实际生活中的应用,认识到科技对生活的影响,培养社会责任感和创新意识。

课程性质:本课程为实践性较强的课程,结合理论知识和实际操作,培养学生的动手能力和创新能力。

学生特点:本课程面向高年级学生,学生已具备一定的数字电路基础知识,具有较强的学习能力和独立思考能力。

教学要求:教师需引导学生运用所学知识解决实际问题,注重培养学生的实际操作能力和团队协作能力。

在教学过程中,关注学生的个体差异,提供有针对性的指导,确保课程目标的实现。

通过课程学习,使学生能够将理论知识与实际应用相结合,为未来的电子设计打下坚实基础。

二、教学内容本课程教学内容以数字时钟的设计与调试为核心,结合以下章节内容进行:1. 数字时钟原理及设计流程:讲解数字时钟的基本原理,包括秒脉冲发生器、计数器、译码器等模块的工作原理及相互关系。

分析EDA工具在数字电路设计中的应用,明确设计流程。

2. 数字时钟电路设计:引导学生运用所学知识,使用EDA工具进行数字时钟电路设计,包括各个模块的搭建、连接及参数设置。

3. 数字时钟电路仿真与调试:介绍电路仿真方法,指导学生进行数字时钟电路的仿真验证,找出并解决设计中存在的问题。

eda实验-数字钟

eda实验-数字钟

[键入公司名称]电工电子综合实验报告数字计时器设计姓名:学号:学院:自动化学院指导老师:李元浩[在此处键入文档的摘要。

摘要通常是对文档内容的简短总结。

在此处键入文档的摘要。

摘要通常是对文档内容的简短总结。

]一、实验内容本实验设计一个多功能数字计时器,可以完成0分00秒至9分59秒的计时功能,并在控制电路的作用下具有开机清零、不掉电清零、快速校分、整点报时功能。

本设计采用中小集成电路来实现,通过芯片各种不同数字逻辑功能的组合完成上述多功能数字计时器的设计。

二、实验要求1.设计一个脉冲发生电路,为计时器提供秒脉冲、为报时电路提供蜂鸣器的脉冲信号;2.设计计时电路,完成0分00秒至9分59秒的计时功能;设计报时电路,使数字计时器从9分53秒开始报时,每隔两秒发一声,共发三生低音,一声高音。

即9分53秒、9分55秒、9分57秒发低音(频率1KHz),9分59秒发高音(频率2KHz);3.设计校分电路,在任何时候拨动校分开关,可进行快速校分,即快速调整分位的显示数字;4.设计清零电路,具有开机自动清零功能,并且在任何时候,按动清零开关,可以进行计时器清零;5.系统级联调试,将上述系统进行级联,完成计时器的所有功能。

三、实验原理数字计时器是由计时电路、译码显示电路、脉冲发生电路、报时电路、校分电路和清零电路六部分组成的,电路的总体原理框图如图所示:图1数字计时电路原理图下面分别来对数字计时器的六大功能模块设计原理进行介绍:1、计时电路计时电路是由一片CD4518 BCD码计数器和一片74LS161计数器来实现的。

CD4518与74LS161的引脚图和功能表分别如图所示:CD4518 74LS161具体实现方法:CD4518为双 BCD同步十进制计数器,可完成两为十进制计数功能,分别给秒个位和分位计数。

74LS161为四位二进制同步计数器,将其转换为六进制计数器对秒十位进行计数。

秒脉冲信号传递给CD4518 BCD的1CP端,秒个位正常计数。

eda数字钟实验报告

eda数字钟实验报告

eda数字钟实验报告一、实验目的与背景数字钟是一种在现代社会中广泛应用的时间显示器,其具有精度高、易于观察、维修方便等特点。

本次实验旨在通过使用EDA 软件,实现数字钟的制作,以便更好地了解数字时钟的原理及其设计过程。

二、实验器材与软件器材:电脑、EDA软件、闹钟模块、LCD液晶显示器、电源线、按键开关、电阻等。

软件:Protues、Keil、Proteus VSM等。

三、设计过程1. 硬件设计(1)指示器:使用了LCD液晶显示屏来显示时间。

其可显示当前的小时、分钟、秒等信息。

(2)核心控制器:使用了AT89S52单片机作为核心,用来控制整个数字时钟的运行。

(3)时钟电路:使用DS1302时钟芯片来实现时钟计时功能。

该芯片具有高精准度、低功耗等特点,能够提供准确的时间信号。

(4)外设控制:使用了按键开关、蜂鸣器等外设来实现数字时钟的启停、闹钟设置等功能。

2. 软件设计(1)包含了时间可视化方案的设计。

(2)编写了大量的实时驱动程序,使计时、位置更新、操作循环等功能得到实现。

(3)事件触发机制设计,使得按键响应、报时提示等功能得到实现。

(4)根据时钟电路信号进行时钟校准等相关处理。

四、实验结果通过实验,我们成功地制作出了一个高精度、功能齐全、操作简便的数字时钟。

该时钟可以准确地显示当前时间,同时根据设置还可以产生报时提示,启动或关闭闹钟等功能。

五、实验总结通过本次实验,我们对数字时钟的原理和设计过程有了更加深入的理解,增加了对数字电路的整体认识。

同时,我们还掌握了EDA软件的使用方法和调试技术。

希望今后能够在数字电路设计和嵌入式系统开发中能够有更好的发挥。

实验10、EDA-数字钟

实验10、EDA-数字钟

(1)创建一个新文件
在此步骤中将创建一个名为 count10.gdf 的文件。 步骤如下:
a. 进入 Altera 软件包, 如图所示
b. 选择 FileNew 菜单,或单击 ,弹出 New 对话框。
c. 选中 Graphic Editor file (图形设计文件)单 选按钮。 •d.图在形下编拉辑表输框入中选择 .gdf •作符为号文编件辑的输扩入展名。单击 •ok文按本钮编。辑弹输出入Graphic •E波dit形or编窗辑口输。入
要保存文件,选择 FileSave As 选项,弹出 Save As 对话框。如图所示。
在 文本框中输入 count10.gdf ,并在 Directories 列表框中选择文 件的保存目录。
注意 在 MAX+PLUSⅡ 的有些版本中,保存文件目
录的路径字符串中不能包含中文字符。
(4)检查错误
为了确保输入的逻辑正确,可以保存文件并检查 错误。步骤如下:
Q3 Q2 Q1 Q0 LD
ETP
7
CC40161 ETT 10
CR 1
D3 D2 D1 D0 CP
654 3 2
优点:简单
1 00 1
& 11 12 13 14
+VDD
9
Q3 Q2 Q1 Q0 LD
ETP
7
CC40161 ETT 10
CR 1
D3 D2 D1 D0 CP
654 3 2
CP
缺点:速度较慢 出现竞争冒险的可能性较大!
清零 数据输入 置数
使能
1 1 1 ET=ETT&ETP
计数
CO=Q3Q2Q1Q0
1. 40161的时序波形图

EDA数字钟试验

EDA数字钟试验

课程考查试题纸课程名称:EDA技术_____________________________考查内容:综合设计报告(随堂作业、论文、报告或其他)学院:计算机与信息工程学院任课教师:******综合设计题目:结合实验室EDA实验箱,完成一个可以计时的数字时钟,其显示时间范围是00:00 :00〜23:59:59,且该时钟具有暂停计时和清零功能。

要求设计报告中有原理分析,实验步骤,程序代码,遇到的问题及解决方法,课程总结。

多功能数字钟一.实验目的:1.回顾Quartus II的使用步骤,强化对软件的熟练使用度。

2.学习综合实验的设计思路及步骤。

3.学习顶层模块的设计以及底层模块调用原理(即编程例化语句的使用)。

4.进一步学习Verilog HDL语言的基本语法。

5.熟练掌握时钟显示的原理及对应代码的编写。

6.设计有特色的多功能可调的数字时钟。

7.学会查阅相关资料,解决实验调试过程中遇到的问题。

二 .实验环境:硬件环境:ALTERA 公司开发板 Cyclone EP1C12Q240C8 软件环境:Quartus II 开发软件三 .实验原理:该时钟项目共分为六大模块,大顶层模块(LAB_TOP)、分频模块 (ClkDivider)、分秒计数模块(Cnt_74161_fm)、时位计数模块(Cnt_74161_ss)、 显示模块(scan_led)、消抖模块(debounce)。

其中,分秒计数模块通过调整 74161计数模块实现,从而达到分秒的六十进制;分频模块由系统时钟clock 调整得到多种频率的信号输入;时位计数模块也通过调整74161计数模块实 现;显示模块与动态显示数码管实验类似,段选和片选以及时钟的输入由顶层 模块调用和产生以实现每位时钟数字的显示;消抖模块与按键实验类似,通过 对信号的三次取或运算判断按键是否是正常输入信号以实现外加按键的正常 控制,从而防止抖动产生的非正常信号输入;大顶层模块用来调用和整合各个 模块以实现对每个模块的复用、调整和连接从而完成时钟的所有功能。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验十多功能数字钟一、实验目的1.学习系统设计方法;2. 设计并实现一个数字钟。

二、设计要求1.正常模式时,采用24小时制。

不但显示时、分、秒,而且有上、下午显示。

用A 表示上午,P表示下午。

2.手动校准电路。

按动时校准键HOUR,将电路置于校时状态,则计时电路可用手动方式校准,每接一下校时键,时钟计数器加1;按动分方式键MINT,将电路置于校分状态,以同样方式手动校分。

3.整点报时。

仿中央人民广播电台整点报时信号,从59分50秒起每隔2秒钟发出一次低音(512Hz)“嘟”信号(信号鸣叫持续时间1秒,间隙1秒,连续5次,到达整点(00分00秒时),发一次高音(1024 HZ)“哒”信号(信号持续时间l秒。

4.闹时功能。

接下置闹方式键CKSET,使电路工作于预置状态,此时显示器与时钟脱开,而与预置计数器相连,利用前面手动校时、校分方式进行预置,预置后回到正常模式。

当计时计至预置的时间时,蜂鸣器发出闹钟信号,时间为一分钟,闹铃信号可以用开关键CLOSE“止闹”。

正常情况下此开关键释放。

三、设计提示1.数字钟的功能实际上是对秒信号计数。

实验板上可提供不同的时钟信号,分频后可产生秒时钟。

数字钟在结构上可分为两个部分:计数器和显示器。

计数器又可分为秒计数器、分计数器和小时计数器。

秒计数器和分钟计数器由6进制和10进制计数器构成,小时计数器较复杂,需要设计一个24(或12)个状态的状态机实现。

显示电路用6位扫描数码显示器,它的扫描时钟可以使用1KHz或10kHz时钟。

分钟和小时的调整用两个按键开关实现。

秒输入信号用底板上时钟信号分频后得到。

2.闹铃信号与准点报时信号可取自实验板上的振荡信号1024Hz和2048 Hz。

3.校时、校分信号可用实验板上的振荡信号128Hz分频到8Hz后做为快速调整时钟输入。

校时时每按一次键可以伴以短促的音响。

4.时、分、秒显示之间,可利用数码管中的小数点区分,在正常计时情况下,分、秒之间的小数点也可闪动。

5.设计方框图如下图所示:四、实验步骤1、启动ISE集成开发环境,创建工程并输入设计源文件。

2、对设计进行时序仿真,分析设计的正确性。

3、锁定引脚,完成设计实现过程。

并在实验箱上连线,利用iMPACT进行程序下载。

4、在实验箱上验证数字钟的功能,观察并记录实验结果。

五、实验报告预习要求:1、写出数字钟TIMER的VHDL源程序。

LIBRARY ieee;USE ieee.std_logic_1164.all;USE ieee.std_logic_unsigned.all;entity TIMER isPORT(scanclk,reset_in,adj_h_in,adj_m_in,set,close: in std_logic;led_out: out std_logic_vector(6 downto 0);scan_out: out std_logic_vector(5 downto 0);sound_out: out std_logic;point_out: out std_logic );end entity;architecture rtl of TIMER ISsignal scan: integer range 0 to 5;signal clk1s: std_logic;signal sound,sound1,sound2,sound3: std_logic;signal reset,adj_h,adj_m: std_logic;signal c_h_en, c_mh_en, c_ml_en, c_sh_en : std_logic;signal c_h_en1, c_ml_en1 : std_logic;signal c_mh_en1 : std_logic;signal s_h_en, s_mh_en, s_ml_en : std_logic;signal enable,disable: std_logic;signal s_mh,c_mh,mh,sh: integer range 0 to 5;signal cnt: std_logic_vector( 10 downto 0);signal scani: std_logic_vector( 5 downto 0);signal dy : std_logic;signal hh,hl,ml,sl: integer range 0 to 9;signal s_ml,c_ml: integer range 0 to 9;signal c_h,s_h,h: integer range 0 to 11;signal hex: integer range 0 to 10;signal led: STD_LOGIC_VECTOR (6 downto 0);component counter ISGENERIC( count_value: INTEGER);PORT( clk,clr,en : IN STD_LOGIC;co : OUT STD_LOGIC;count : OUT INTEGER RANGE 0 TO count_value);END component;BEGIN----------------- counter part -------------------generat_1s_clock: PROCESS (scanclk)BEGINIF (scanclk'EVENT AND scanclk = '1') THENcnt <= cnt + 1;END IF;clk1s <= cnt(10);END PROCESS;PROCESS (clk1s,reset)BEGINIF reset = '1' THENdy<='0';ELSIF (clk1s'EVENT AND clk1s = '1') THENdy <= not dy;END IF;END PROCESS;enable<='1';disable<='0';reset<=not reset_in;adj_m<=not adj_m_in;adj_h<=not adj_h_in;CNT1S: countergeneric map( count_value => 9)port map(clk=>CLK1s,clr=>reset,en=>enable,co=>c_sh_en,count=>sl);CNT10S: countergeneric map( count_value => 5)port map(clk=>clk1s,clr=>reset,en=>c_sh_en,co=>c_ml_en1,count=>sh);CNT1M: countergeneric map( count_value => 9)port map(clk=>clk1s,clr=>disable,en=>c_ml_en,co=>c_mh_en1,count=>c_ml);CNT10M: countergeneric map( count_value => 5)port map(clk=>clk1s,clr=>disable,en=>c_mh_en,co=>c_h_en1,count=>c_mh);CNT_H: countergeneric map( count_value => 11)port map(clk=>clk1s,clr=>disable,en=>c_h_en,count=>c_h);SET1M: countergeneric map( count_value => 9)port map(clk=>clk1s,clr=>disable,en=>s_ml_en,co=>s_mh_en,count=>s_ml);SET10M: countergeneric map( count_value => 5)port map(clk=>clk1s,clr=>disable,en=>s_mh_en,count=>s_mh);SET_H: countergeneric map( count_value => 11)port map(clk=>clk1s,clr=>disable,en=>s_h_en,count=>s_h);s_ml_en <= set and adj_m;s_h_en <= set and adj_h;c_ml_en <= (not set and adj_m) or (c_ml_en1 and c_sh_en);c_mh_en <= (c_mh_en1 and c_ml_en);c_h_en <= (not set and adj_h) or (c_h_en1 and (c_ml_en1 and c_sh_en));----------------- compare part -------------------sound1 <= cnt(0) when s_ml=c_ml and s_mh=c_mh and s_h=c_h else '0';sound2 <= scanclk when c_ml=0 and c_mh=0 and sh=0 and sl=0 and clk1s='1' else '0'; sound3 <= cnt(0) when c_ml=9 and c_mh=5 and sh=5 and dy='0' and clk1s='1' else '0'; sound<=sound1 or sound2 or sound3;sound_out <= sound when close = '0' else '0';----------------- select part -------------------hh<=1 when h>=10 else 0;hl<=(h-0) when h<10 else (h-10);h<=c_h when set = '0' else s_h;mh<=c_mh when set = '0' else s_mh;ml<=c_ml when set = '0' else s_ml;----------------- display part -------------------process (scanclk)beginif scanclk'event and scanclk='1' thenif scan = 5 thenscan<=0;elsescan <= scan + 1;end if;end if;end process;with scan selecthex<=hh when 5,hl when 4,mh when 3,ml when 2,sh when 1,sl when others;with scan selectpoint_out <='0' when 5,clk1s when 4,'0' when 3,clk1s when 2,'0' when 1,'0' when others;led_out<= NOT led;with scan selectscani <="000001" when 5,"000010" when 4,"000100" when 3,"001000" when 2,"010000" when 1,"100000" when 0,"000000" when others;scan_out<=not scani;with hex selectled<= "1111001" when 1, --1"0100100" when 2, --2"0110000" when 3, --3"0011001" when 4, --4"0010010" when 5, --5"0000010" when 6, --6"1111000" when 7, --7"0000000" when 8, --8"0010000" when 9, --9"1000000" when 0, --0"0000000" when others;end rtl;2、写出数字钟COUNTER的VHDL源程序。

相关文档
最新文档