EDA数字时钟实验报告
- 格式:doc
- 大小:880.50 KB
- 文档页数:25
巢湖学院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)。
(2023)EDA课程数字钟设计报告(一)EDA课程数字钟设计报告设计目的本次设计的目的是通过使用EDA software,设计一个能够正常运行的数字钟,使其能够满足一定的时间显示功能。
设计思路本设计主要使用Verilog HDL编程语言,利用EDA software提供的仿真功能,模拟数字钟的运行过程。
具体实现过程如下:1.首先,设置时钟频率,并利用counter计数器进行计数,产生时间基准信号。
2.利用BCD编码对时间进行编码,分别将时、分、秒的数据传至显示器。
3.设计逻辑电路计算秒钟、分针、时钟转动角度。
4.在EDA software上进行仿真,观察数字钟是否正常工作。
设计图样以下为数字钟方案的部分设计图样。
image textimage text实现结果通过复杂的编程训练和模拟,数字钟设计的功能已经被确认。
数字钟电路能够准确地显示当前时间。
同时,数字钟的设计也具有较高的可靠性、稳定性和精度。
并且,数字钟的主板设计紧凑、易于集成。
这些优点使得本次设计非常适合应用于智能仪器、家庭用品和其他数字显示电子设备中。
总结数字钟设计是一项有挑战性的工程,需要设计人员具有充分的编程功底和深入的EDA工具熟练度。
本设计的成功,体现了设计团队的技术实力和团队协作能力,为未来的科技产品发展提供了有力的技术支撑。
改进方案虽然本设计实现了数字钟正常工作的功能,但是我们仍然可以从以下几个方面进行改进:1.在原有电路基础上增加闹钟功能,方便用户定时提醒。
2.增加显示背光,使数字钟更方便在夜间环境下使用。
3.将数字钟设计进行微小的改动使其更小巧便携,方便携带和使用。
参考文献1.微机原理与接口技术(第四版) 教材2.EDA Software (Xilinx ISE) 许可证书致谢在本次数字钟的设计过程中,我们向来自各地的优秀工程师团队表示感谢,感谢他们在繁忙的工作中,准确地指导我们的设计工作。
同时也感谢电子设计自动化(EDA) company提供的软件支持,使得我们能够顺利完成该设计。
eda多功能数字钟实验报告
《EDA多功能数字钟实验报告》
摘要:
本实验通过对EDA多功能数字钟的组装和测试,探索了数字钟的功能和性能。
实验结果表明,EDA多功能数字钟具有精准的时间显示、多种闹铃设置、温度
和湿度监测等功能,是一款实用且性能稳定的数字钟产品。
引言:
数字钟作为现代生活中不可或缺的家居用品,其功能和性能一直备受关注。
本
次实验选择了EDA多功能数字钟作为研究对象,旨在通过对其组装和测试,深
入了解数字钟的各项功能和性能指标。
实验方法:
1. 组装数字钟:按照产品说明书,将数字钟的各个部件进行组装,并确保连接
牢固。
2. 功能测试:测试数字钟的时间显示、闹铃设置、温度和湿度监测等功能。
3. 性能测试:对数字钟的时间精准度、闹铃响铃声音、温度和湿度监测准确度
等进行测试。
实验结果:
1. 时间显示:数字钟的时间显示精准,误差在1秒以内。
2. 闹铃设置:数字钟支持多组闹铃设置,响铃声音清晰、音量适中。
3. 温度和湿度监测:数字钟的温湿度监测准确度高,与实际环境温湿度相符合。
讨论:
通过本次实验,我们发现EDA多功能数字钟具有精准的时间显示、多种闹铃设
置、温度和湿度监测等功能,性能稳定,符合用户对数字钟的基本需求。
同时,数字钟的组装和操作也相对简单,适合家庭使用。
结论:
EDA多功能数字钟是一款实用且性能稳定的数字钟产品,能够满足用户对数字
钟的基本需求。
在未来的生活中,数字钟将继续扮演重要的角色,为人们的生
活提供便利。
致谢:
感谢实验中提供支持和帮助的老师和同学们。
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)—数字时钟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实验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工具来设计数字电路,并通过实际的电路实现来验证我们的设计。
1. 实验背景数字钟是我们日常生活中常见的设备之一。
它不仅可以显示时间,还具有闹钟等功能。
在这个实验中,我们将使用EDA工具来设计一个数字钟电路,并通过FPGA实现这个电路。
2. 实验目标本次实验的目标是设计一个能够显示小时、分钟和秒的数字钟电路。
我们将使用七段数码管来显示这些信息,并通过按键来设置时间和闹钟。
3. 设计思路我们的设计思路如下:3.1 时钟模块我们首先需要设计一个时钟模块,用来产生一个固定的时钟信号。
我们可以使用FPGA的时钟模块来实现这个功能,或者使用外部的晶振电路。
3.2 数码管驱动模块接下来,我们需要设计一个数码管驱动模块,用来将数字转换为七段数码管的显示信号。
我们可以使用查找表或者逻辑门电路来实现这个功能。
3.3 时间设置模块为了能够设置时间,我们需要设计一个时间设置模块。
这个模块可以通过按键来设置小时、分钟和秒。
3.4 闹钟设置模块类似于时间设置模块,我们还需要设计一个闹钟设置模块。
这个模块可以通过按键来设置闹钟的小时和分钟。
3.5 主控制模块最后,我们需要设计一个主控制模块,用来控制时钟、数码管驱动、时间设置和闹钟设置模块之间的交互。
这个模块可以根据设置的时间和闹钟来控制数码管的显示。
4. 电路实现根据我们的设计思路,我们使用EDA工具来实现我们的数字钟电路。
我们使用VHDL语言来描述电路,并使用模块化的方式来组织我们的代码。
5. 实验结果经过实际的电路实现和测试,我们成功地实现了数字钟电路。
我们可以通过按键来设置时间和闹钟,并通过七段数码管来显示时间和闹钟。
6. 实验总结通过这个实验,我们学习了如何使用EDA工具来设计数字电路,并通过实际的电路实现来验证我们的设计。
我们深入了解了数字钟的工作原理,并学会了如何使用VHDL语言来描述电路。
南京理工大学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设计(II)实验报告-数字电子钟实验报告:数字电子钟一、实验目的本实验旨在通过使用EDA设计软件,设计并实现一个具有时、分、秒功能的数字电子钟。
通过学习使用EDA工具,掌握数字电路设计的基本步骤和技巧,培养实践能力和创新思维。
二、实验原理数字电子钟是一种以数字形式显示时间的装置,它利用了时、分、秒的计时原理。
核心部分包括一个时钟发生器,用于产生标准时间信号,以及一个计数器,用于对时间进行计数并显示。
此外,还需要一些控制逻辑来控制时、分、秒的进位和显示。
三、实验步骤1.设计准备:在开始设计之前,首先明确设计要求和功能。
考虑到实验的复杂性和可实现性,我们采用最简单的电路结构,即基于计数器和译码器的数字电子钟。
2.绘制电路图:使用EDA设计软件(如Quartus II)绘制电路图。
首先创建新项目,然后添加必要的元件(如74LS192计数器、74LS248译码器等),并根据设计要求连接元件。
3.编写程序:使用硬件描述语言(如VHDL或Verilog)编写计数器和译码器的程序。
确保程序能够实现所需的功能,并进行仿真测试。
4.编译和下载:将程序编译成可下载的配置文件,然后下载到FPGA开发板上。
5.硬件测试:连接开发板到PC,启动程序,观察数字电子钟的显示情况。
检查时间是否准确,各部分功能是否正常。
6.性能评估:对数字电子钟的性能进行评估,包括计时精度、稳定性等指标。
根据评估结果对设计进行优化。
四、实验结果与分析1.设计结果:经过上述步骤,我们成功地设计并实现了一个基于FPGA的数字电子钟。
通过EDA软件和硬件描述语言,我们实现了计数器和译码器的功能,并完成了程序的编写和下载。
2.性能分析:经过测试,我们的数字电子钟具有较高的计时精度和稳定性。
时间显示准确,各部分功能正常。
这表明我们的设计是成功的。
3.优化方向:虽然我们的数字电子钟已经具有较好的性能,但仍有一些方面可以优化。
例如,可以考虑添加更多的功能,如闹钟、温度显示等;也可以进一步优化电路结构,降低成本和提高性能。
eda多功能数字钟实验报告EDA多功能数字钟实验报告一、引言数字钟是现代生活中常见的一种时间显示工具,其准确性和便携性使其成为人们生活中不可或缺的一部分。
本实验旨在设计并制作一款多功能数字钟,通过EDA(电子设计自动化)软件进行模拟和仿真,验证其功能和性能。
二、设计原理1. 时钟电路:采用CMOS(互补金属氧化物半导体)技术设计时钟电路,包括时钟发生器、计数器和显示器。
时钟发生器产生稳定的方波信号,计数器根据方波信号进行计数,显示器将计数结果以数字形式显示出来。
2. 功能模块:多功能数字钟除了显示时间外,还应具备日期显示、闹钟设置、温度检测等功能。
为实现这些功能,需要添加相应的模块,如时钟芯片、温度传感器、闹钟电路等。
三、电路设计1. 时钟电路设计:根据设计原理,使用EDA软件进行电路设计,选择合适的元器件和连接方式。
通过仿真验证电路的工作稳定性和准确性。
2. 功能模块设计:根据需求,添加相应的功能模块。
时钟芯片用于精确计时和日期显示,温度传感器用于检测环境温度并显示,闹钟电路用于设置闹钟时间并触发报警。
四、电路实现1. 元器件选取:根据电路设计需求,选择合适的元器件。
时钟芯片应具备高精度和稳定性,温度传感器应具备高灵敏度和准确度,闹钟电路应具备可调节和触发功能。
2. 电路布局:将选取的元器件按照电路设计进行布局,注意元器件之间的连接和布线,避免干扰和短路。
3. 电路连接:根据电路设计进行元器件之间的连接,注意连接的正确性和稳定性。
五、仿真与测试1. 仿真验证:使用EDA软件进行电路仿真,检查电路的稳定性和准确性。
通过仿真结果对电路进行调整和优化,确保其正常工作。
2. 功能测试:对多功能数字钟进行功能测试,包括时间显示、日期显示、温度检测和闹钟设置等。
通过测试结果对电路进行调整和改进,确保其功能的完善和可靠性。
六、实验结果与分析经过仿真和测试,多功能数字钟实现了准确的时间显示、日期显示、温度检测和闹钟设置等功能。
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使用练习,完成一个简单门电路的图形设计输入、编译、仿真、管脚分配、下载。
内容:实验二题目:图形设计输入3-8译码器内容:3-8译码器。
题目:同步十进制加法计数器内容:用74161实现十进制加法计数器。
题目:同步六十进制计数器内容:用74160,74161等其他门电路完成。
数字时钟一.设计说明1.功能说明:利用MAX+Plus2软件设计一个数字钟,对设计电路进行功能仿真,并下载到EPF10K10LC84-4实验系统中,可以完成00:00:00到23:59:59的计时功能,并在控制电路的作用下具有保持、清零、快速校时、快速校分、整点报时等功能。
本电路在原有基础上进行了拓展,具备以下功能:①.能进行正常的时、分、秒计时功能;②.整点报时功能---当时钟计到59’59”时开始报时,报时时间1秒;③.置零功能,可以将时钟小时、分钟、秒都置为零;④. 快速校时,校分功能---校定时其他计时电路保持;⑤.闹表功能—-定时精确到分,闹钟设计响一分钟,可关闭;2.功能简介本电路具有三种不同的工作状态(同步工作),可通过模式键进行换。
a、正常计时状态(RESET、A都为1):此状态下数码管显示当前的时间,K1为校时开关,K2为校分开关,校分、校时都是以1HZ 的信号进行快速到位的。
b、闹表状态(RESET为1,A为0):此状态下数码管显示当前闹定的时间,K3为设定分时的开关,K4为设定分开关。
c、置零状态(RESET为0):此状态下数码管无论是时钟还是闹铃全都是0。
二.各模块设计原理1.扫描显示模块及原理扫描时钟CLK在某一周期内,3-8译码器输入扫描信号SEL2 SEL1 SEL0,译码器输出位控信号MS8-MS1,控制八位显示器开关管。
此时,只有一个显示器点亮。
四位八选一数据选择器根据数据选择信号SEL2 SEL1 SEL0的数值从八路输入数据中选择一路数据(一位BCD码)送给BCD七段显示译码器,通过BCD七段显示译码器译成七段显示码,驱动七段显示器,显示具体内容。
在连续8个时钟周期内,八个显示器轮流点亮一个时钟周期。
只要输入连续时钟CLK,就能实现吧个显示器扫描显示。
利用人眼的视觉惯性,扫描频率应该大于50HZ,根据计数器的分频关系,实际扫描频率CLK应该大于200HZ左右。
八选一数据选择器电路图及编码如下2. 时钟计时模块数字钟的计时电路包括秒位、分位、时位三部分。
其中秒位与分位均为60进制计时,时位为24进制计时。
这样我们只需设计模60和模24两种计数器即可。
秒向分进位,分向时进位,这样把两个模60和一个模24计数器级联就可以得到时钟的计时电路。
a.60进制计数器60进制采用十进制的74160和十六进制的74161组合,74160做低位,到10时给74161进位。
选择了4个输入的与非门来连接74 160的Q3、Q0输出端和74161的Q6、Q4输出端。
从而实现59跳0的60进制计数器组合电路。
RESET是置零,CLK是脉冲信号。
Co是给下一个60进制或24进制进位输出。
Q[3..0]和Q[7..0]是晶体管上的分、秒的十位和个位。
封装后如下b.24进制计数器24进制的组合电路和60 进制差不多,由于小时前面没有进位了,所以少了个进位输出。
并且选择了3个输入的与非门来连接74 160的Q1、Q0输出端和74161的Q5输出端。
从而实现23跳0的24进制计数器组合电路。
电路图和封装电路图如下3.整点报时模块整点报时原理是利用时钟的分钟和秒都为零时给蜂鸣器一个信号,使其发声。
时间持续1秒钟。
可以看到的是,上图中有个CL信号。
它是闹铃的信号,它与整点报时的信号共用一个蜂鸣器。
下面会有解释。
4.闹铃模块闹铃模块有四个部分: 定时和储存模块, 闹铃显示和时钟显示切换模块, 闹铃与时钟数值比较模块, 闹铃输出到蜂鸣器模块。
组成闹钟有一个存储电路(由两个计数器组成),计数器由两个开关控制,用来对闹钟的分钟和时钟设定,当开关都打到不送脉冲的状态,两个计数器都保持,从而达到存储的目的。
比较电路用来比较闹钟时间和时钟计时器时间,它们一致时,输出为1,这样可以驱动报时模块。
最后,利用显示电路将闹钟的时间设定输出。
要使闹钟起到提醒作用,还要有铃声,这里用1khz脉冲作为蜂鸣器的信号源。
a.定时和储存模块电路主要由24进制和60进制的计数器组成。
外围两个开关SETHOUR,SETMIN是用来给两个计数器脉冲。
每按一次开关,就给计数器一个脉冲,计数器计数,计到要设定的值。
停止按键,计数器保持。
b.闹铃显示和时钟显示切换模块封装后的电路图如上。
A1,A2,A3,A4是时钟的显示,B1,B2,B3,B4是闹铃的显示。
开关A的作用就是选择时钟显示还是闹铃显示。
其内部结构如下图。
它主要由8个与门,4个或门,一个非门组成。
SET输入0或1信号。
当SET为1时,上面4个与门接受a1,a2,a3,a4四个信号。
而下面四个b1,b2,b3,b4信号由于SET通过非门后,变为0,所以不接受。
然后a1,a2,a3,a4再经过四个或门输出。
当SET为0时,原理相似。
c.闹铃与时钟数值比较模块闹铃与时钟数值比较模块由四个7485比较器组成。
每个7485按要求把控制端口接1和0,然后利用他们分别比较小时与分钟的二进制数值。
都相等时,都由AEBO输出1。
然后将CL1,CL2,CL3,CL4四个信号汇总到CL。
电路图如下。
d.闹铃输出到蜂鸣器模块如上图,闹铃与整点报时共用一个蜂鸣器。
三.管脚分布四.讨论与心得本次实验课程共六天时间。
第一天上午是理论课程学习,随后就是上机实验。
刚开始时,我们每个人通过练习六个实验来熟悉掌握MAX+Plus2软件和ALTERA FLEX EPF10K10LC84-4实验平台。
实验的难度循序渐进。
为后来自己设计数字时钟打下基础。
在时钟设计电路时,遇到了不少困难,比如说时钟与闹铃的显示切换。
想了一天,没有结果,最后还是晚上在宿舍与室友讨论时,得到结果的。
通过这次实验,我了解了一般数字时钟的构成原理。
并且学会与同学共同发现问题,讨论问题,解决问题。
参考文献1.《EDA与数字系统设计》李国丽朱维勇栾铭主编2.《数字电子技术基础》阎石主编3.《电子技术基础实验》李国丽刘春朱维勇主编附件课程设计任务书(2012 ~2013 学年)设计题目:EDA与数字系统课程设计学院名称:电气与自动化工程学院专业(班级):自动化20011级姓名(学号):丁兴宇20111965起讫日期:2013年7月1日-2012年7月30日指导教师:刘春朱维勇胡存刚系(教研室)负责人;储昭碧下发任务书日期 2013年 7月 1日合肥工业大学课程设计任务书合肥工业大学课程设计审阅/答辩成绩评定书。