EDA课程设计-多功能数字钟

合集下载

eda数字时钟课程设计论文

eda数字时钟课程设计论文

eda数字时钟课程设计论文一、课程目标知识目标:1. 理解数字时钟的基本原理,掌握EDA工具的使用方法。

2. 学习数字时钟设计的基本流程,包括时钟信号生成、分频、计数等模块的设计与实现。

3. 了解数字时钟的显示原理,掌握七段显示译码器的应用。

技能目标:1. 培养学生运用所学知识进行数字电路设计的能力。

2. 培养学生运用EDA工具进行电路仿真、调试的能力。

3. 培养学生团队协作、沟通表达的能力。

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

2. 培养学生严谨的科学态度,注重实验数据的真实性。

3. 增强学生的自信心,勇于面对和解决问题。

本课程针对高年级学生,结合学科特点和教学要求,将目标分解为具体的学习成果。

课程性质为实践性较强的设计课,注重培养学生的实际操作能力和团队合作精神。

通过本课程的学习,学生能够掌握数字时钟设计的基本方法,提高电子设计能力,培养良好的情感态度价值观。

二、教学内容本课程教学内容主要包括以下三个方面:1. 数字时钟原理及设计流程- 了解数字时钟的基本原理,包括时钟信号、分频器、计数器等组成部分。

- 学习数字时钟设计的基本流程,结合教材相关章节,进行实例分析。

2. EDA工具的使用- 介绍EDA工具的基本功能,如原理图绘制、仿真、PCB设计等。

- 结合教材,学习使用EDA工具进行数字时钟电路的设计与仿真。

3. 数字时钟电路设计与实现- 分析并设计数字时钟的各个功能模块,如时钟信号生成、分频、计数、显示等。

- 结合教材章节,进行具体电路设计,列举所需元器件及参数。

教学进度安排如下:1. 第一周:数字时钟原理及设计流程学习。

2. 第二周:EDA工具的使用方法及操作练习。

3. 第三周:数字时钟电路设计与实现,包括各功能模块设计和整体调试。

教学内容注重科学性和系统性,结合教材章节,使学生能够循序渐进地掌握数字时钟的设计方法。

同时,通过实践操作,提高学生的动手能力和实际应用能力。

EDA多功能数字钟设

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课程设计数字闹钟

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课程设计——多功能数字钟的设计

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

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

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

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

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

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

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

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

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

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

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

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

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

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

eda数字电子钟课程设计

eda数字电子钟课程设计

eda数字电子钟课程设计一、课程目标知识目标:1. 让学生理解数字电子时钟的基本原理,掌握EDA技术及其在数字电子时钟中的应用。

2. 使学生掌握数字电子时钟的设计流程,包括硬件设计、软件编程及系统调试。

3. 让学生掌握时钟信号的产生、计数、显示等模块的工作原理和电路设计。

技能目标:1. 培养学生运用EDA工具(如Protel、Multisim等)进行电路设计与仿真测试的能力。

2. 培养学生具备编程和调试数字电子时钟程序的基本技能,提高实际动手操作能力。

3. 培养学生团队协作、沟通表达、问题分析和解决的能力。

情感态度价值观目标:1. 培养学生对电子工程学科的兴趣,激发学生学习热情,形成积极的学习态度。

2. 培养学生具有创新意识和实践精神,鼓励学生勇于尝试,不断优化设计方案。

3. 培养学生关注社会发展,了解电子产品在生活中的应用,提高社会责任感和使命感。

分析课程性质、学生特点和教学要求,本课程目标将分解为以下具体学习成果:1. 学生能够独立完成数字电子时钟的电路设计和程序编写。

2. 学生能够运用EDA工具进行电路仿真测试,分析并解决设计中出现的问题。

3. 学生能够以团队形式进行项目汇报,展示设计成果,接受提问并给予解答。

4. 学生通过课程学习,提升对电子工程的兴趣,树立正确的价值观和人生观。

二、教学内容根据课程目标,本章节教学内容主要包括以下三个方面:1. 数字电子时钟原理及EDA技术概述- 时钟信号的产生与计数原理- 数字电子时钟的组成与工作原理- EDA技术简介及其在数字电子时钟设计中的应用2. 数字电子时钟设计与实现- 硬件设计:时钟信号电路、计数器电路、显示电路等- 软件编程:基于单片机的程序编写,实现时钟功能- 系统调试:电路测试、程序调试及优化3. 教学实践与项目汇报- 实践操作:运用EDA工具进行电路设计与仿真测试- 项目实施:分组进行数字电子时钟设计,培养学生的团队协作能力- 项目汇报:展示设计成果,锻炼学生的沟通表达和问题分析解决能力教学内容安排和进度如下:1. 第一周:数字电子时钟原理及EDA技术概述2. 第二周:硬件设计与软件编程基础3. 第三周:系统调试与优化4. 第四周:实践操作与项目实施5. 第五周:项目汇报与评价教学内容与教材章节关联如下:1. 《电子技术基础》第三章:数字电路基础2. 《单片机原理与应用》第四章:单片机程序设计3. 《EDA技术及应用》第二章:EDA工具使用与电路设计实例三、教学方法针对本章节内容,采用以下多样化的教学方法,以激发学生的学习兴趣和主动性:1. 讲授法:用于对基本原理和概念进行系统讲解,如数字电子时钟的工作原理、EDA技术概述等。

电子设计自动化(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课程设计数字钟

eda课程设计 数字钟。

一、课程目标知识目标:1. 让学生理解数字时钟的基本原理,掌握数字时钟电路的设计方法。

2. 使学生掌握EDA工具的使用,学会利用工具进行电路设计、仿真和调试。

3. 帮助学生了解数字时钟中各个模块的功能和相互关系。

技能目标:1. 培养学生运用EDA工具进行数字电路设计的能力。

2. 培养学生分析问题、解决问题的能力,能够根据实际需求设计简单的数字时钟电路。

3. 提高学生的动手实践能力,学会使用相关仪器设备进行电路调试。

情感态度价值观目标:1. 激发学生对电子设计的兴趣,培养创新意识和探索精神。

2. 培养学生良好的团队协作精神,学会与他人共同解决问题。

3. 培养学生严谨的科学态度和勤奋刻苦的学习精神。

课程性质:本课程为实践性课程,旨在通过数字时钟电路设计,提高学生的电子设计能力。

学生特点:学生具备一定的电子基础知识,对EDA工具感兴趣,但动手实践能力有待提高。

教学要求:注重理论与实践相结合,充分调动学生的积极性,引导学生主动参与教学活动,提高学生的实践能力。

教学过程中,注重培养学生的团队合作精神和创新能力,为学生的未来发展奠定基础。

通过本课程的学习,使学生能够具备独立设计、制作和调试数字时钟电路的能力。

二、教学内容根据课程目标,本章节教学内容主要包括以下几部分:1. 数字时钟原理:讲解数字时钟的基本原理,分析数字时钟的各个模块功能,如秒脉冲发生器、计数器、显示驱动等。

2. EDA工具使用:介绍EDA工具的基本操作,如原理图绘制、电路仿真、PCB设计等,使学生掌握使用EDA工具进行数字电路设计的方法。

3. 数字时钟电路设计:根据实际需求,制定数字时钟设计方案,包括选择合适的元器件、绘制原理图、编写程序等。

4. 电路仿真与调试:指导学生利用EDA工具进行电路仿真,分析电路性能,优化设计方案;并进行实际电路搭建与调试,培养学生的动手实践能力。

教学大纲安排如下:1. 第一周:数字时钟原理学习,熟悉各个模块功能。

EDA课程设计 数字时钟

EDA课程设计 数字时钟

EDA课程设计报告一·设计任务使用硬件描述语言,在CPLD/FPGA上实现一个多功能数字钟。

二·设计要求除按键、LED、扬声器、时钟信号外,整个数字钟的功能要求在一块芯片上实现。

a)具有时,分,秒,计数显示功能,以24小时循环计时;b)具有时间清零功能;c)具有小时、分钟和秒钟调整功能(个位和十位分开调或合起来调)。

d)具有闹钟功能,能预设闹钟时间,精确到秒。

整个数字钟只设一个时钟输入端口,所需不同频率信号在内部分频实现。

(LED扫描频率设为50Hz以上)。

三·设计方案设计采用模块方式,分别为分频模块:产生1Hz的脉冲作为秒的输入,和产生1kHz的脉冲作为数码管显示的动态扫描。

计时模块:秒模块,分模块,时模块。

闹钟模块,显示模块,控制模块。

四·模块端口设置1. 分频模块输入:clkin : 本实验输入为50MHz晶振输出:clk : 为显示模块及始终调节提供1KHz脉冲clkt: 为计数器模块提供1Hz脉冲2. 计时模块m 是模式按键,当m=0 时,进入计时模式,在计时模式下可以进行时间调整。

num3,num4 产生加速调整时间,当其值为1 时,可以快速调整时间,该调整时间的频率由clk 提供。

counta,count1 是手动调节时间。

Turn 接按键,可以改变当前调节的是小时还是分钟,长按turn 键还可以使秒钟信号清零。

sec1,min1,hour1 输出的是计时的秒,分,时。

3.闹钟模块原理:num1,num2 产生加速调整时间,当其值为1 时,可以快速调整时间,该调整时间的频率由clk 提供。

countb,count2 是手动调节闹钟时间。

amin,ahour 是输出的闹钟的分钟和小时4. 控制模块m 是模式按键,当m=0 时,指当前输出的是计时功能;当m=1 时,指当前调整的是闹钟时间;当m=2 时,指当前调整的是计时时间;当m=3 时,此时turn 按键可用于跑表的暂停与开始。

多功能数字钟的设计.EDA课程设计

多功能数字钟的设计.EDA课程设计

多功能数字钟的设计.E D A课程设计(总13页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--EDA 课程设计报告书课题名称 多功能数字钟的设计 姓 名王兴俊学 号 0 院 系 物理与电信工程系 专 业 电子信息工程 指导教师周来秀讲师2011年 6月13日※※※※※※※※※※※※※ ※※※※※※※※※※※2008级学生EDA 课程设计多功能数字钟的设计王兴俊(湖南城市学院物理与电信工程系电子信息工程专业,湖南益阳,41300)1设计目的EDA是电子设计自动化的缩写,在20世纪如年代初从计算机辅助设计、计算机辅助制造、计算机辅助测试和计算机辅助工程的概念发展而来的。

传统意义上或者狭义上的EDA技术是指可编程技术,是以计算机为工具,融合了应用电子技术、计算机技术、智能化技术的最新成果而开发出的电子EDA通用软件包,设计者在EDA软件平台上,用硬件描述语言VHDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。

利用EDA技术进行电子系统的设计,具有以下几个特征:①用软件的方式设计硬件;②用软件方式设计的系统到硬件系统的转换是由有关的开发软件自动完成的;③设计过程中可用有关软件进行各种仿真;④系统可现场编程,在线升级;⑤整个系统可集成在一个芯片上,体积小、功耗低、可靠性高。

因此,EDA技术是现代电子设计的发展趋。

利用EDA设计电子产品已经是势在必得了。

2设计的主要内容和要求a.数字钟能够显示年、月、天、小时、分钟、秒。

在数字钟正常工作时可以对数字钟进行快速校正,即拨动开关可对其进行校正,在数字钟正常工作情况下,可以对其进行不断电复位,以使时、分、秒显示回零。

b.对数字钟采用层次化的方法进行设计,要求设计层次清晰、合理,构成整个设计的功能模块既可采用原理图输入法实现,也可采用文本输入法实现。

EDA电子钟多功能数字时钟课程设计(含代码)[优秀]

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多功能数字时钟课程设计

eda多功能数字时钟课程设计

eda多功能数字时钟课程设计一、课程目标知识目标:1. 学生能理解数字时钟的基本原理,掌握EDA工具的使用方法,并运用相关电路知识设计多功能数字时钟。

2. 学生能够运用所学知识,分析并解释数字时钟电路中各个部分的功能及其相互关系。

3. 学生了解数字时钟在实际生活中的应用,理解其重要性。

技能目标:1. 学生能够运用EDA工具进行电路设计,具备实际操作能力。

2. 学生通过动手实践,培养解决实际问题的能力,提高创新意识和团队协作能力。

3. 学生能够运用所学知识,对数字时钟电路进行调试和优化。

情感态度价值观目标:1. 学生在学习过程中,培养对电子技术的兴趣,激发创新精神。

2. 学生通过团队合作,学会尊重他人,培养良好的沟通能力和团队精神。

3. 学生认识到科技发展对社会进步的重要性,树立正确的价值观。

课程性质:本课程为实践性较强的课程,结合理论教学,注重培养学生的动手能力和实际操作技能。

学生特点:学生具备一定的电子技术基础知识,对实践操作有较高的兴趣。

教学要求:教师需结合理论教学,指导学生进行实践操作,注重启发式教学,引导学生主动探究,提高学生的综合能力。

在教学过程中,关注学生的学习进度,及时调整教学策略,确保课程目标的实现。

通过课程学习,使学生能够将所学知识应用于实际生活中,提高学生的创新意识和实践能力。

二、教学内容本课程教学内容主要包括以下几部分:1. 数字时钟原理:讲解数字时钟的基本工作原理,包括时钟信号、计数器、显示驱动等组成部分。

2. EDA工具使用:介绍EDA工具的基本操作,如原理图绘制、电路仿真、PCB设计等。

3. 电路设计与实现:指导学生运用EDA工具设计多功能数字时钟电路,包括时钟信号电路、分频器、计数器、显示驱动和按键控制等模块。

4. 电路调试与优化:教授学生如何对设计的数字时钟电路进行调试,找出问题并进行优化。

教学内容与教材关联性如下:1. 《电子技术基础》中关于数字电路的基础知识,为理解数字时钟原理提供理论支持。

EDA课程设计时钟

EDA课程设计时钟

EDA课程设计时钟EDA课程设计姓名:学号:班级:自动化设计题目多功能数字钟电路设计设计任务及要求多功能数字钟应该具有的功能有:显示时—分—秒、小时和分钟可调等基本功能。

整个钟表的工作应该是在1Hz信号的作用下进行,这样每来一个时钟信号,秒增加1秒,当秒从59秒跳转到00秒时,分钟增加1分,同时当分钟从59分跳转到00分时,小时增加1小时,小时的范围为0~23时。

在实验中为了显示的方便,由于分钟和秒钟显示的范围都是从0~59,所以可以用一个3位的二进制码显示十位,用一个四位的二进制码(BCD码)显示个位,对于小时因为他的范围是从0~23,所以可以用一个2位的二进制码显示十位,用一个4位的二进制码(BCD 码)显示个位。

实验中由于七段码管是扫描的方式显示,所以虽然时钟需要的是1Hz时钟信号,但是扫描需要一个比较高频率的信号,因此为了得到准确的1Hz信号,必须对输入的系统时钟50Mhz 进行分频。

调整时间的按键用按键模块的S1和S2,S1调节小时,每按下一次,小时增加一个小时;S2调整分钟,每按下一次,分钟增加一分钟。

另外用S8按键作为系统时钟复位,复位后全部显示00—00—00。

三.基于VerilogHDL语言的电路设计、仿真与综合(一)顶层模块本程序采用结构化设计方法,将其分为彼此独立又有一定联系的三个模块,如图1所示:图1:顶层结构框图(二)子模块1.分频器分频器的作用是对50Mhz的系统时钟信号进行分频,得到频率为1000hz的信号,作为显示器的输入信号。

源程序如下:modulefenpin(inputCP,outputCPout);regCPout;reg[31:0]Cout;regCP_En;always@(posedg eCP)//将50MHz分频为1kHzbeginCout=(Cout==32'd50000)32'd0:(Cout+32'd1);CP_En=(Cout==32'd50000)1'd1:1'd0;CPout=CP_En;endendmodule功能仿真波形如图2所示(以五分频为例):2.控制器和计数器控制器的作用是,调整小时和分钟的值,并能实现清零功能。

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课程设计_数字钟

数字钟一、原理图:二、模块说明:该模块实现分频即将24M时钟源分频为1HZ信号。

该分频器由D触发器和计数器构成,每个D 触发器的输出信号频率为输入信号频率的一半从而实现分频,COUNTER为计数器,配合D触发器进行进一步分频最终达到合适的频率。

对二分频器进行波形仿真为对COUNTER即87计数器仿真为即输入89个时钟脉冲后输出才为一。

对COUNTER1即80计数器仿真为即输入80个时钟脉冲后输出为一。

Second模块实现秒计数为六十进制计数模式,当计数达到59后如再来一个时钟脉冲则进位即分钟加一,秒位清零即为00。

Minute模块实现分计数也为六十进制计数模式,当计数达到59时再来一个脉冲则进位即时钟加一,分位清零即为00。

Hour模块实现时计数为二十四进制计数模式,当计数达到23时再来一个脉冲则复位即为00。

Link模块实现隔离即将分与秒,时与分隔开。

分隔符表现形式为“-”,用了此模块后时钟显示更直观。

Sel_clock模块实现扫描显示即每一瞬间输出的数据为秒的个位或十位,或者为分的个位或十位,或者时的个位或十位。

因该试验增加了一些功能,所以该模块要做相应修改――增加为八位显示。

此时连线时应注意各模块的个位十位接线和分隔符接线。

Deled模块为字符译码模块即将十六进制字符翻译为七段数码管相应段位亮灭从而实现字符译码。

该模块也要作少许修改,如把h"f" =>1,0,0,0,1,1,1;改为了h"f" =>0,0,0,0,0,0,1;这样显示后就起到分隔的作用了。

当然这也不是唯一的修改方法,关键是修改要和你的link模块相匹配。

Alert为整点报时模块,呐叭发声为脉冲激发,不同频率的信号会得到不同音调的声音,如果不停的改变信号频率就会得到一串抑扬顿挫的声音。

对second模块仿真为对minute模块进行仿真为:对hour模块进行仿真:对deled字符译码模块仿真该模块将字符转换成数码管相应的段码以便数码管能显示为人们习惯的字符。

本科毕业设计论文--eda课程设计报告多功能数字钟设计

本科毕业设计论文--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 设计思路根据系统设计的要求,系统设计采用自顶层向下的设计方法,由时钟分频部分,计时部分,按键调时部分,数码管显示部分,蜂鸣器四部分组成。

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

EDA课程设计实用多功能数字钟学院:机械与电子工程学院专业:电子科学与技术班级:学号:姓名:指导教师:2012年1月13日摘要:本次课程设计用Verilog语言,选择Quartus II 开发工具来设计多功能数字钟。

就在前不久,我们还刚刚完成了单片机的多功能时钟的设计,继而又做EDA电子钟实验。

通过两者之间的对比可以发现EDA的许多特点。

电子设计自动化(EDA Electronic Design Automation)技术是一种以计算机作为工作平台,以EDA软件工具为开发环境,以硬件描述语言和原理图描述为设计入口,以可编程逻辑器为实验载体,以ASIC、SOC和SOPC嵌入式系统为设计目标,以数字系统系统设计为应用方向的电子产品自动化设计技术。

而QuartusⅡ是Altera 公司推出的的第四代PLD开发系统。

主要用于设计新器件和大规模CPLD/FPGA。

使用QuartusⅡ的设计者不需精通器件内部的复杂结构。

设计者可以用自己熟悉的设计工具(如原理图输入或硬件描述语言)建立设计,QuartusⅡ把这些设计转自动换成最终所需的格式。

设计方法分为:硬件描述语言,verilog语言描述。

verilog语言描述可能精确和简练地表示电路的逻辑功能,现在PLD的设计过程中广泛使用。

以上是对EDA和QuartusⅡ的了解。

本次EDA的课程设计虽然时间有限,但是设计的题目《多功能数字钟》很贴近人的日常生活,让我们学生对最基本的电子产品有个深入的认识。

本次的课程设计是基于Verilog HDL的多功能数字钟,完成时、分、秒的显示功能。

设计利用Verilog HDL语言自顶向下的设计理念,突出其作为硬件描述语言的良好的可读性、可移植性以及易于理解等优点。

整个程序语言功能主要包含计时,闹钟,校时,整点报时等功能。

关键词:EDA软件,Verilog语言,Quartus II 开发工具,多功能时钟目录第1章. QUARTUSⅡ仿真软件的使用简介 .............................................. 错误!未定义书签。

第2章. 课程设计任务 (2)第3章. 设计依据和设计方案 (2)3.1设计原理 (2)3.2设计目标和方法 (2)3.3设计总体方案 (3)3.4总体模块分类介绍 (3)第4章. 设计步骤 (3)4.1CLOCK顶层调用模块 (3)4.1.1顶层程序模块 (3)4.1.2仿真波形及分析 (6)4.2 SOUND_DDD_DU嘀嘀嘀—嘟模块 (6)4.2.1整点报时程序模块 (6)4.2.2仿真波形及分析 (7)4.3 SOUND_DDD闹铃声模块 (8)4.3.1闹铃程序模块 (8)4.3.2仿真波形及分析 (8)4.4 HEXCOUNTER16进制计数器模块 (8)4.4.1H进制计数器程序模块 (8)4.4.2仿真波形及分析 (9)4.5 ADDER加法器模块 (9)4.5.1加法器程序模块 (9)4.5.2仿真波形及分析 (10)4.6 BITSEL将输出解码成时对分秒的选择模块 (10)4.6.1解码选择程序模块 (10)4.6.2仿真波形及分析 (11)4.7 SWITCH对开关的输入去抖模块 (11)4.7.1去抖程序模块 (12)4.7.1仿真波形及分析 (12)4.8LED译码显示模块 (12)4.8.1显示程序模块 (12)4.8.2仿真波形及分析 (13)4.9CLK50MTO1将50MHZ分频到1HZ模块 (13)4.9.1分频模块 (13)4.9.2仿真波形及分析 (13)4.10COUNTER_TIME计时模块 (14)4.10.1计时模块 (14)4.10.2仿真波形及分析 (15)4.11ALARM_TIME闹钟时间设定模块 (15)4.11.1闹钟定时模块 (15)4.11.2仿真波形及分析 (16)4.12ALARM闹铃模块 (17)4.12.1闹铃模块 (17)4.12.2仿真波形及分析 (17)第5章.仿真调试出现的问题及解决方法 (18)第6章.心得体会 (18)第7章.参考文献 (19)1 QuartusⅡ仿真软件的使用简介QuartusⅡ是Altera公司推出的的第四代PLD开发系统。

主要用于设计新器件和大规模CPLD/FPGA。

使用QuartusⅡ的设计者不需精通器件内部的复杂结构。

设计者可以用自己熟悉的设计工具(如原理图输入或硬件描述语言)建立设计,QuartusⅡ把这些设计转自动换成最终所需的格式。

其设计速度非常快。

对于一般几千门的电路设计,使用QuartusⅡ,从设计输入到器件编程完毕,用户拿到设计好的逻辑电路,大约只需几小时。

设计处理一般在数分钟内内完成。

特别是在原理图输入等方面。

PLD器件的逻辑功能描述一般分为原理图描述和硬件描述语言描述,原理图描述是一种直观简便的方法,它可以将现有的小规模集成电路实现的功能直接用PLD器件来实现,而不必去将现有的电路用语言来描述,但电路图描述方法无法做到简练;硬件描述语言描述是可编程器件设计的另一种描述方法,语言描述可能精确和简练地表示电路的逻辑功能,现在PLD的设计过程中广泛使用。

常用的硬件描述语言有ABEL,VHDL语言等。

[12-13] 在这里我们可以先看一看用FPGA/CPLD开发工具进行电路设计的一般流程通常可将FPGA/CPLD设计流程归纳为以下7个步骤,这与ASIC设计有相似之处。

1.设计输入。

在传统设计中,设计人员是应用传统的原理图输入方法来开始设计的。

自90年代初,Verilog、VHDL、AHDL等硬件描述语言的输入方法在大规模设计中得到了广泛应用。

2.功能仿真。

设计的电路必须在布局布线前验证电路功能是否有效。

PLD设计中,有时跳过这一步。

3.设计编译。

设计输入之后就有一个从高层次系统行为设计向门级逻辑电路设转化翻译过程,即把设计输入的某种或某几种数据格式(网表)转化为软件可识别的某种数据格式(网表)。

4.优化。

对于上述综合生成的网表,根据布尔方程功能等效的原则,用更小更快的综合结果代替一些复杂的单元,并与指定的库映射生成新的网表,这是减小电路规模的一条必由之路。

5.布局布线。

在PLD设计中,3-5步可以用PLD厂家提供的开发软件自动一次完成。

6.时序仿真。

需要利用在布局布线中获得的精确参数再次验证电路的时序。

7.生产。

布线和后仿真完成之后,就可以开始ASCI或PLD芯片的投产。

同样,使用QuartusⅡ基本上也是有以上几个步骤,但可简化为:设计输入、设计编译、设计仿真、下载。

2课程设计任务应用Verilog HDL设计一个多功能的数字钟,具有下述功能:(1)计时功能:包括时,分,秒的计时;(2)定时与闹钟功能:能在设定的时间发出闹铃音;(3)校时功能:对小时,分钟和秒能手动调整以校准时间;(4)整点报时功能:每逢整点,产生“嘀嘀嘀嘀—嘟”,四短一长的报时音。

3设计依据和设计方案3.1设计原理:数字电子钟由振荡器、分频器、计数器、译码显示器、报时等电路组成。

其中振荡器和分频器组成标准秒信号发生器由不同进制的计数器、译码器和显示器组成计时系统。

秒信号送入计数器进行计数把累加的结果以‘时’、‘分’、‘秒’的数字显示出来。

‘时’显示由12进制计数器、译码器、显示器构成。

‘分’、‘秒’显示分别由60进制计数器、译码器、显示器构成。

可进行整点报时计时出现误差时可以用校时电路校时、校分。

3.2设计目标和方法:QuartusⅡ软件作为电子钟设计工作平台以数字电路为设计数字时钟的理论基础按照“自顶向下”的层次化设计方法设计该电路对整个系统进行方案设计和功能划分系统的关键电路用一片或几片专用集成电路实现应用QuartusⅡ软件进行数字电路的设计与仿真。

3.3 设计总体方案数字计时器基本功能是计时,因此首先需要获得具有精确振荡时间的脉振信号,以此作为计时电路的时序基础,实验中可以使用的振荡频率源为50MHz。

数字计时器要实现时分秒计时、闹钟闹铃、时分秒手动校时、时分秒清零,时间保持和整点报时等多种基本功能,所有功能都基于计时功能。

因此首先需要获得具有精确振荡时间的脉振信号,以此作为计时电路的时序基础,实验中可以使用的振荡频率源为50MHZ,通过分频获得所需脉冲频率1Hz。

得到1Hz脉冲后,要产生计时模块,必须需要加法器来进行加法。

时钟能够产生时间前进是对秒脉冲计数产生形成的,为了形成时分秒,需要对秒进位信号进行计数从而产生分,对分进位信号进行计数产生时信号。

秒和分均为60进制,时为24进制,所以需要有模60和模24计数器。

3.4 总体模块分类介绍总共分为11各模块,一个总的顶层调用模块:(1) sound_ddd_du嘀嘀嘀—嘟声音模块。

(2) sound_ddd嘀嘀嘀闹铃声(3) hexcounter16 进制计数器模块。

(4) adder加法器模块。

(5) bitsel将输出解码成时分秒选择模块。

(6) switch去抖模块。

(7) led译码显示模块:7段数码管显示器,分别显示小时、分钟、秒。

(8) clk50mto1 时钟分频模块:50mhz时钟分频到1hz。

(9) counter_time 计时模块:生成60进制、24进制计数器。

(10)alarm_time闹钟时间设定模块。

(11)alarm闹铃模块.(12)clock顶层模块。

4设计步骤4.1 CLOCK顶层调用模块4.1.1顶层程序模块顶层模块中,调用各个模块来实现多功能数字钟。

首先是建立在计时模块上完成整个数字钟的走时,计时模块又是建立在50mhz分频至1hz、八位全加器、十六进制计数器等模块上完成整体的基本走时。

然后可以建立闹钟模块,且设置modestate置00为计时模式,10选择闹钟模块,01手动调整模式,11非法模式来避免闹钟模块与走时模块的冲突。

其次在闹铃模块中,ld_alert是否设置了闹铃控制闹铃的开关,mcheck手动调整时间,turn来控制调整的时间在分与时的选择,change是调整信号,alert为闹铃输出。

再通过led输出时分秒。

moduleclock(clk50m,mode,turn,change,mreset,led_hour1,led_hour0,led_minu1,le d_minu0,led_sec1,led_sec0,alert,ld_alert,ld_check,ld_hour,ld_min,ld_s ec);input clk50m;input mode;input turn;input change;input mreset;output alert;output ld_alert;output ld_check;output ld_hour;output ld_min;output ld_sec;output[7:0] led_hour1;output[7:0] led_hour0;output[7:0] led_minu1;output[7:0] led_minu0;output[7:0] led_sec1;output[7:0] led_sec0;reg [1:0] modestate;wire nowmode;wire ischecking;assign {nowmode,ischecking}=modestate;always@(negedge mode)begincase(modestate)2'b00: modestate<=2'b10;2'b10: modestate<=2'b01;2'b01: modestate<=2'b00;default:modestate<=2'b00;endcaseendwire rest,clk_1hz;switch #(8) rmjitter(clk50m,mreset,reset);clk50mtol (clk50m,clk1hz);wire[2:0] selcode;bitselseldecoder(nowmode,ischecking,turn,selcode,rest);wire[3:0]clocktime0,clocktime1,clocktime2,clocktime3,clocktime4,clocktime5;wire clockalarmon;wire [2:0] counterselcode;assign counterselcode=(modestate==2'b01)?selcode:3'b000;counter_timeclock_time(clk_1hz,counterselcode,~change,clocktime5,clocktime4,clock time3,clocktime2,clocktime1,clocktime0,clockalarmon,reset);wire [3:0] alarmtime0,alarmtime1,alarmtime2,alarmtime3;wire alarmon;alarm_timealarm_time(clk_1hz,nowmode,selcode[2:1],change,{clocktime5,clocktime4 ,clocktime3,clocktime2,clocktime1},{alarmtime3,alarmtime2,alarmtime1,alarmtime0}, alarmon,reset);wire voiceout;alarm alarmvoice(clk50m,{clockalarmon,alarmon},voiceout,reset);assign{ld_hour,ld_min,ld_sec}=(ischecking||nowmode)?selcode:3'b000;assign alert=voiceout;reg[3:0] showout2,showout3,showout4,showout5;led led5(showout5,1'b1,led_hour1);led led4(showout4,1'b0,led_hour0);led led3(showout3,1'b1,led_minu1);led led2(showout2,1'b0,led_minu0);led led1(clocktime1,1'b1,led_sec1);led led0(clocktime0,1'b1,led_sec0);alwaysbegin if(nowmode)begin showout5=alarmtime3;showout4=alarmtime2;showout3=alarmtime1;showout2=alarmtime0; end else beginshowout5=clocktime5;showout4=clocktime4;showout3=clocktime3;showout2=clocktime2; endendassign ld_alert=nowmode;assign ld_check=ischecking;endmodule4.1.2 仿真波形及分析在clock为1ps周期情况下,设置modestate置00为计时模式,10选择闹钟模块,01手动调整模式,11非法模式,在闹铃模块中,ld_alert高电平闹铃开,mcheck为高电平则可以手动调整时间,turn控制了调整的时间在分与时的选择,change有效则改变调整的数值,alert有效闹铃输出。

相关文档
最新文档