EDA课程设计--定时器
eda数字钟的设计课程设计
eda数字钟的设计课程设计一、课程目标知识目标:1. 让学生掌握EDA技术的基本原理和应用;2. 使学生了解数字时钟的工作原理,掌握其设计方法;3. 帮助学生理解数字电路的基本组成,掌握常用数字电路元件的功能和使用方法。
技能目标:1. 培养学生运用EDA软件进行数字电路设计的能力;2. 提高学生动手实践能力,能够独立完成数字钟的搭建和调试;3. 培养学生分析问题和解决问题的能力,学会运用所学知识解决实际工程问题。
情感态度价值观目标:1. 激发学生对电子工程领域的兴趣,培养其探索精神和创新意识;2. 培养学生良好的团队合作精神和沟通能力,学会在团队中发挥个人作用;3. 培养学生具备严谨的科学态度,注重实践操作的安全性和环保意识。
分析课程性质、学生特点和教学要求,本课程旨在通过数字钟的设计与实现,使学生在掌握基本理论知识的基础上,提高实践操作能力和创新设计能力。
课程目标具体、可衡量,便于学生和教师在教学过程中明确预期成果,为后续的教学设计和评估提供依据。
二、教学内容本课程教学内容主要包括以下三个方面:1. EDA技术基本原理:- EDA软件的使用方法与操作流程;- 常用数字电路元件的原理与功能;- 数字电路设计的基本步骤和技巧。
2. 数字时钟工作原理与设计方法:- 数字时钟的基本组成和各部分功能;- 时钟信号的产生、分频和计数原理;- 数字钟电路图设计及仿真分析。
3. 实践操作与调试:- 数字钟电路的搭建与连接;- 调试过程中故障分析与解决;- 数字钟功能测试与性能优化。
教学内容根据课程目标制定,具有科学性和系统性。
教学大纲明确,教学内容安排和进度如下:1. EDA技术基本原理(2课时)2. 数字时钟工作原理与设计方法(3课时)3. 实践操作与调试(4课时)教学内容与教材章节关联紧密,确保学生能够将所学理论知识与实际操作相结合,提高综合运用能力。
三、教学方法针对本课程的教学目标和学生特点,采用以下多样化的教学方法:1. 讲授法:教师通过PPT、板书等形式,系统讲解EDA技术基本原理、数字时钟工作原理与设计方法等理论知识。
EDA课程设计-基于VHDL语言的定时器设计
基于VHDL语言的定时器设计一、EDA技术简介1. 电子技术的核心就是EDA技术,EDA是指以计算机为工作平台,融合应用电子技术、计算机技术、智能化技术最新成果而研制成的电子CAD通用软件包,主要能辅助进行三方面的设计工作,即IC设计、电子电路设计和PCB设计。
EDA技术已有30年的发展历程,大致可分为三个阶段。
70年代为计算机辅助设计(CAD)阶段,人们开始用计算机辅助进行IC版图编辑、PCB布局布线,取代了手工操作。
80年代为计算机辅助工程(CAE)阶段。
与CAD相比,CAE除了有纯粹的图形绘制功能外,又增加了电路功能设计和结构设计,并且通过电气连接网络表将两者结合在一起,实现了工程设计。
CAE的主要功能是:原理图输人,逻辑仿真,电路分析,自动布局布线,PCB 后分析。
90年代为电子系统设计自动化(EDA)阶段。
2. EDA技术的基本特征EDA代表了当今电子技术的最新发展方向,它的基本特征是:设计人员按照“自顶向下”的设计方法,对整个系统进行方案设计和功能划分,系统的关键电路用一片或几片专用集成电路(ASIC)实现,然后采用硬件描述语言(HDL)完成系统行为级设计,最后通过综合器和适配器生成最终的目标器件,这样的设计方法被称为高层次的电子技术。
二.VHDL在定时器中的应用传统的定时器硬件连接比较复杂,可靠性差,而且计时时间短,难以满足需要。
本设计采用可编程芯片和VHDL语言进行软硬件设计,不但可使硬件大为简化,而且稳定性也有明显提高。
由于可编程芯片的频率精度可达到50 MHz,因而计时精度很高。
完全可以满足用户三.系统设计1.系统设计框图图12. 减法器既实现11秒倒计时功能library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt10 isport (clk,rst,en : in std_logic;cq: out std_logic_vector(3 downto 0);count : out std_logic);end ;Architecture arch of cnt10 isbeginprocess(clk, rst, en)Variable cqi: std_logic_vector(3 downto 0);beginIf rst= '1' then cqi:="1010";Elsif clk'event and clk='1' thenIf en='1' thenIf cqi > "0000" then cqi:=cqi-1;Else cqi:="1010";end if;end if;end if;If cqi= "0000" then count <= '1' ; Else count <= '0';End if;Cq <= cqi;end process;end arch;仿真波形图2.1图2.2如上图可见,当en为高电平,rst为低电平,实现了从10到0的倒数,即11秒倒计时功能。
定时器报告(EDA)
数电设计实验二简单定时器设计一、设计要求:1、定时时间为24秒,按递减方式计时,每隔1秒,定时器减12、设置两个外部控制开关,控制定时器的直接复位、启动计时、暂停/连续计时。
3、当定时器递减计时到零(即定时时间到)时,定时器保持零不变,同时发出报警信号。
4、输入时钟脉冲的频率为1Hz,输出为8421BCD码二、逻辑设计用计数器对1Hz的时钟信号进行计数,其计数值即为定时时间.根据设计要求可知,电路需要输出2组员8421BCD码,计数器初值为24,按递减方式计数,减到0时,输出报警信号,并能控制计数器暂停/连续计数,所以需要设计一个预置初值的带使能控制的递减计数器.三、VHDL程序实现上述功能的V erilog HDL程序如下.module dingshiqi(TimerH,TimerL,Alarm,nRST,nPAUSE,CP);input nRST,nPAUSE,CP;wire nRST,nPAUSE,CP;output[3:0] TimerH,TimerL;reg [3:0] TimerH,TimerL;output Alarm;assign Alarm = ({TimerH,TimerL}==8'h00)&(nRST==1'b1);always @ (posedge CP or negedge nRST or negedge nPAUSE) beginif (~nRST){TimerH,TimerL} <= 8'h24;else if(~nPAUSE){TimerH,TimerL} <= {TimerH,TimerL};else if({TimerH,TimerL}==8'h00)begin {TimerH,TimerL} <= {TimerH,TimerL};end else if(TimerL ==4'h0)begin TimerH <= TimerH-1'b1;TimerL <= 4'h9;end elsebegin Timer<= TimerH;TimerL <= TimerL-1'b1;end endendmoduleHDL描述分为3部分:第一部分定义了电路的输入\输出信号.其输入信号为复位nRST(低电平有效).暂停/连续nPAUSE和时钟CP.输入信号为TimerH(定时器的十位)\TimerL(定时器的个位)和报警Alarm.第二部分用一个连续赋值语句assign说明当计数器递减到目前为止时,输出报警信号(Alarm=1).第三部分用一个过程块always说明计数器的计数\处理操作,计数器的个位和十位均按8421BCD码方式递减计数.四、设计实现1 仿真结果如下图所示2、引脚分配在对程序进行了设计与仿真之后,必须给所设计的程序进行引脚分配,使程序的输入、输出对应到实际芯片的引脚上。
EDA课程设计-基于VHDL语言的定时器设计
基于VHDL语言的定时器设计一、EDA技术简介1. 电子技术的核心就是EDA技术,EDA是指以计算机为工作平台,融合应用电子技术、计算机技术、智能化技术最新成果而研制成的电子CAD通用软件包,主要能辅助进行三方面的设计工作,即IC设计、电子电路设计和PCB设计。
EDA技术已有30年的发展历程,大致可分为三个阶段。
70年代为计算机辅助设计(CAD)阶段,人们开始用计算机辅助进行IC版图编辑、PCB布局布线,取代了手工操作。
80年代为计算机辅助工程(CAE)阶段。
与CAD相比,CAE除了有纯粹的图形绘制功能外,又增加了电路功能设计和结构设计,并且通过电气连接网络表将两者结合在一起,实现了工程设计。
CAE的主要功能是:原理图输人,逻辑仿真,电路分析,自动布局布线,PCB后分析。
90年代为电子系统设计自动化(EDA)阶段。
2. EDA技术的基本特征EDA代表了当今电子技术的最新发展方向,它的基本特征是:设计人员按照“自顶向下”的设计方法,对整个系统进行方案设计和功能划分,系统的关键电路用一片或几片专用集成电路(ASIC)实现,然后采用硬件描述语言(HDL)完成系统行为级设计,最后通过综合器和适配器生成最终的目标器件,这样的设计方法被称为高层次的电子技术。
2.VHDL在定时器中的应用传统的定时器硬件连接比较复杂,可靠性差,而且计时时间短,难以满足需要。
本设计采用可编程芯片和VHDL 语言进行软硬件设计,不但可使硬件大为简化,而且稳定性也有明显提高。
由于可编程芯片的频率精度可达到50 MHz ,因而计时精度很高。
完全可以满足用户的需要,使用也更为方便。
三 .系统设计1.系统设计框图 图12. 减法器既实现11秒倒计时功能library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt10 isport (clk,rst,en : in std_logic;cq: out std_logic_vector(3 downto 0);count : out std_logic);end ;Architecture arch of cnt10 isbeginprocess(clk, rst, en)Variable cqi: std_logic_vector(3 downto 0); 11秒倒计数 译码显示 七段共阴数码管显示 1Hz 时钟信号 分频器1kHz 时钟信号beginIf rst= '1' then cqi:="1010";Elsif clk'event and clk='1' then If en='1' thenIf cqi > "0000" then cqi:=cqi-1;Else cqi:="1010";end if;end if;end if;If cqi= "0000" then count <= '1' ; Else count <= '0';End if;Cq <= cqi;end process;end arch;仿真波形图2.1图2.2如上图可见,当en为高电平,rst为低电平,实现了从10到0的倒数,即11秒倒计时功能。
EDA整点报时课程设计
EDA整点报时课程设计一、课程目标知识目标:1. 学生能理解EDA(电子设计自动化)的基本概念,掌握整点报时的原理。
2. 学生能运用所学知识,设计并实现一个简单的整点报时电路。
3. 学生了解时钟信号的基本特性,理解晶振在时钟电路中的作用。
技能目标:1. 学生通过本课程的学习,具备使用EDA软件进行电路设计和仿真的能力。
2. 学生能够运用电子元件搭建整点报时电路,并解决实际操作过程中遇到的问题。
3. 学生能够进行简单的电路调试和优化,提高电路的稳定性和准确性。
情感态度价值观目标:1. 培养学生对电子工程领域的兴趣,激发他们探索未知、勇于创新的科学精神。
2. 学生通过团队协作完成课程任务,培养合作意识,提高沟通能力。
3. 学生在课程实践中,体验到学以致用的成就感,增强自信心。
课程性质:本课程为实践性较强的课程,结合理论教学和实际操作,旨在培养学生运用EDA技术解决实际问题的能力。
学生特点:学生具备一定的电子基础知识,对新鲜事物充满好奇心,喜欢动手实践。
教学要求:教师需注重理论与实践相结合,引导学生主动参与,关注学生的个体差异,提供有针对性的指导。
通过课程学习,使学生在知识、技能和情感态度价值观方面均有所提升。
二、教学内容本课程以《电子技术》教材中关于EDA技术和时钟电路的相关章节为基础,结合以下教学内容:1. EDA技术简介:介绍EDA技术的发展、基本概念及其在电子设计中的应用。
2. 时钟信号原理:讲解时钟信号的基本特性、晶振的工作原理及其在时钟电路中的作用。
3. 整点报时电路设计:分析整点报时电路的原理,介绍常见电路元件的选用和连接方法。
4. EDA软件操作:教授EDA软件的基本操作,包括原理图绘制、电路仿真和PCB布线等。
5. 电路搭建与调试:指导学生使用电子元件搭建整点报时电路,并进行调试和优化。
教学内容安排和进度如下:1. 第1课时:介绍EDA技术及其在电子设计中的应用。
2. 第2课时:学习时钟信号原理,了解晶振的作用。
EDA课程设计--定时器
电子课程设计——定时器学院:专业:姓名:学号:指导老师:2009年12月目录一.设计任务与要求 (3)二.总体框图 (3)三.功能模块 (4)四.总体设计电路图 (12)五.心得体会 (14)定时器一、设计任务与要求1.设计任务与要求:通过设计,定时器可以整体清零;可以定时最高到99MIN;以秒速度递增至预定时间,以分速度递减至零。
2.设计目的(1)了解并掌握电路的一般设计方法,具备初步的独立设计能力。
(2)进一步熟悉常用电子模块的设计思路和功能,并掌握合理选用的原则。
(3)提高综合运用所学的理论知识。
独立分析和解决问题的能力。
(4)进一步熟悉电子仪器的正确使用方法。
二、总体框图图1设计思路:通过记数器控制中心输入秒信号,并输出两个四位的BCD 码,可分别来表示各位与十位,也可整体复位清零。
通过该记数器实现以秒速度控制计数部分二选一选择器分频器译码器数码管时钟信号递增至清零,该记数器以秒的速度递增至99来实现置位,而以分的速度递减至零以实现定时功能。
通过二选一选择器对个位和十位进行扫描输出,并将输出送到译码器,通过译码器对输入的四位BCD 码进行七段码编译,然后输出到数码管。
三、功能模块1、ctrl 记数模块 模块器件图:ctrlinstcn res clkcout low[3..0]high[3..0]图2模块逻辑功能:ctrl 计数模块是该定时器的核心部分.res 为复位端,用来清零,采用异步复位方式;cn 用于置位,高电平有效。
cout 端将在定时结束时产生高电平。
Low 和high 为四位BCD 码输出端口,可用于显示。
当cn 有效时,clk 脉冲上升沿到来,计数加1;当cn 为低电平时,置位结束,进入计时阶段,每60个时钟周期(相当于一分钟)发出一个脉冲,使输出记数减1,直到记时结束,命名cout 位为高电平为止。
该模块的源程序如下:LIBRARY ieee;USE ieee.std_logic_1164.all; USE ieee.std_logic_unsigned.all;ENTITY ctrl ISPORT(cn,res,clk : IN STD_LOGIC;cout : out STD_LOGIC;low,high: OUT std_logic_vector(3 downto 0));END ctrl;ARCHITECTURE rtl OF ctrl ISSIGNAL displow,disphigh : std_logic_vector(3 downto 0); BEGINa:PROCESS (clk,cn,res)variable cnt: integer range 0 to 59;BEGINIF (res = '0') THENdisplow<="0000";disphigh<="0000";cnt:=0;cout<='0';ELSIF (clk'EVENT AND clk = '1') THENIF cn = '1' THENcnt:=0;if displow<"1001" thendisplow<=displow+'1';ELSEdisplow<="0000";if disphigh<"1001" thendisphigh<=disphigh+'1'; elsedisphigh<="0000";end if;end if;ELSEif cnt<59 thencnt:=cnt+1;elsecnt:=0;if displow>"0000" thendisplow<=displow-'1'; --elsif displow=1 then -- displow<="0000";else displow<="1001";if disphigh>"0000" then disphigh<=disphigh-'1'; elsedisplow<="1001";end if;end if;end if;end if;end if;if disphigh="0000" and displow="0000" thencout<='1';else cout<='0';end if;end process;high<=disphigh;low<=displow;end rtl;该器件的仿真波形如图3图3 通过仿真波形可以看出低位和高位都可以从零变到9,可以说明输出可以从0变到99,且低位为9时,下一时刻将变为0,而高位增1,当高位变成9时会自动清零。
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课程设计报告99分定时器
课程设计报告设计名称EDA(VHDL)课程设计专业班级电子0942姓名姬鹏冲学号0904451213成绩评定电气与信息工程学院二0一二年一月课程设计要求和成绩考核办法(要求和成绩考核办法在封皮背面打印)1.不允许在教室或实验室内吸烟、吃零食,不准带无关人员到教室或实验室活动,否则扣平时表现分。
2.凡病事假超过3天(每天7小时),或迟到早退三次以上,或旷课两次(1天)以上,不得参加本次考核,按不及格处理,本次课程设计不能通过。
3.病事假必须有请假条,需经班主任或有关领导批准,否则按旷课处理。
4.课程设计的考核由指导教师根据设计表现(出勤、遵守纪律情况等)、设计报告、设计成果、答辩等几个方面,给出各项成绩或权重,综合后给出课程设计总成绩。
该设计考核须经教研室主任审核,主管院长审批备案。
5.成绩评定采用五级分制,即优、良、中、及格和不及格。
6.课程设计结束一周内,指导教师提交成绩和设计总结。
7.设计过程考核和成绩在教师手册中要有记载。
实习报告要求实习报告内容、格式各专业根据实习(设计)类别(技能实习、认识实习、生产实习、毕业实习等)统一规范,经教研室主任审核、主管院长审批备案。
注意:1.课程设计任务书和指导书在课程设计前发给学生,设计任务书放置在设计报告封面后和正文目录前。
2.为了节省纸张,保护环境,便于保管设计报告,统一采用A4纸,课程设计报告建议双面打印(正文采用宋体五号字)或手写,左侧装订,订两个钉。
基于FPGA的半整数分频器设计一、系统设计任务及功能概述本系统是利用VHDL硬件描述语言和原理图输入方式,通过MUX+PLUSⅡ开发软件和ALTER 公司的FLEX系列EPF10K10LC84-4型FPGA方便的完成了半整数分频器电路的设计。
本系统是通过控制单位时间内两种分频比出现的不同次数来获得所需要的小数分频值。
二、系统设计方案和程序设计1.系统设计方案我们采用脉冲吞吐计数器和锁相环技术,先设计两个不同分频比的整数分频器,然后通112entity cont6 isport(clk:in std_logic;rst:in std_logic;en:in std_logic;qa,qb,qc:out std_logic);end entity cont6;architecture wode of cont6 issignal count:std_logic_vector(2 downto 0);beginprocess(clk,rst,en)isbeginif rst='1'then count<="000";elsif clk'event and clk='1'thenif en='1'thenif count="101" then count<="000";else count<=count+1;end if;end if;end if;end process;qa<=count(0);qb<=count(1);qc<=count(2);end architecture wode;模六计数器原件生成图如下:图一模六计数器原件生成上面的程序经编译、时序模拟在MAX+PLUSⅡ中可得到如图所示的仿真波形:图2 模6计数器仿真波形(2)半整数分频器设计现在通过设计一个分频系数为5.5的分频器给出用FPGA设计半整数分频器的一般方法。
eda整点报时程序课程设计
eda整点报时程序课程设计一、课程目标知识目标:1. 让学生掌握EDA(电子设计自动化)软件的使用,理解整点报时程序的原理;2. 使学生了解数字时钟的工作机制,掌握时、分、秒的计时方法;3. 帮助学生理解程序设计的基本思路,学会编写简单的Verilog代码。
技能目标:1. 培养学生运用EDA软件进行数字电路设计和仿真实验的能力;2. 培养学生具备分析问题、解决问题的能力,能够根据实际需求编写合适的程序;3. 提高学生的团队协作和沟通能力,通过合作完成课程设计任务。
情感态度价值观目标:1. 培养学生热爱科学,对电子技术产生浓厚的兴趣;2. 培养学生具备创新意识,敢于挑战新问题,勇于尝试;3. 培养学生严谨、务实的学术态度,注重实践操作,养成良好的学习习惯。
分析课程性质、学生特点和教学要求,本课程目标具体、可衡量,旨在让学生通过本章节的学习,掌握EDA整点报时程序的设计方法,培养其编程能力和实际操作技能。
同时,注重学生的团队协作和情感态度的培养,使他们在学习过程中形成积极向上的学习氛围,为未来的电子技术学习打下坚实基础。
二、教学内容本章节教学内容依据课程目标,结合课本相关章节,组织以下内容:1. EDA软件介绍与操作:使学生熟悉EDA软件的基本功能,掌握软件的操作方法,包括新建项目、添加文件、编译和仿真等。
参考教材章节:第一章 电子设计自动化概述2. 数字时钟原理:讲解数字时钟的基本原理,分析时、分、秒的计数规律,为编写整点报时程序打下基础。
参考教材章节:第二章 数字电路基础3. Verilog编程语言:介绍Verilog的基本语法,通过实例讲解,使学生掌握编写简单程序的方法。
参考教材章节:第三章 Verilog硬件描述语言4. 整点报时程序设计:分析整点报时程序的需求,指导学生编写、调试和优化程序。
参考教材章节:第四章 数字系统设计实例5. 仿真实验与验证:指导学生进行仿真实验,验证整点报时程序的准确性,并对程序进行优化。
EDA定时计数器课程设计
摘要FPGA(Field Programmable Gate Array),即现场可编程门阵列,包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个主要部分。
本文根据课程设计任务书的要求,得到其主要任务是用FPGA设计实现可编程定时器/计数器的基本功能,由此我们参考定时计数器8253的相关功能来实现本课程设计的要求,并利用Altera公司的FPGA器件EP2C8Q208给以硬件验证。
关键词:FPGA 定时计数器 VHDL目录摘要 (I)1 EDA软件介绍 (1)1.1什么是EDA (1)1.2EDA技术的特点 (1)1.3MAX-PLUS II概念及其特点 (2)1.4FPGA设计流程 (2)2 定时计数器的基本结构 (4)2.1定时计数器内部结构 (4)2.2功能分析 (5)3 定时计数器的分析和设计 (7)3.1总线控制部分设计 (7)3.2计数器部分设计 (8)3.3设计结果验证 (19)4心得体会 (20)参考文献 (21)1 EDA软件介绍1.1 什么是EDAEDA是电子自动化(Electronic Design Automation)是从CAD (计算机辅助设计)﹑CAM(计算机辅助制造)﹑CAT(计算机辅助测试) ﹑CAE(计算机辅助工程)的概念发展而来的。
EDA技术就是以计算机为基本工作平台,以硬件描述语言为系统逻辑描述的表达式,以 EDA工具软件为开发环境,以大规模可编程器件为设计载体,以专用集成电路ASIC(Application Special Integrated Circuit)﹑单片机电子系统SOC(System On Language),芯片为目标器件,以电子系统设计为应用方向的电子产品自动化设计过程。
1.2 EDA技术的特点利用EDA技术进行电子系统设计具有以下几个特点:1)用软件的方式设计硬件。
EDA定时器课程设计
EDA定时器课程设计一、课程目标知识目标:1. 学生能理解EDA定时器的基本原理,掌握其工作流程和功能。
2. 学生能掌握定时器的计数方式,了解时钟频率、计数器初值与定时时间的关系。
3. 学生能运用所学知识设计简单的EDA定时器电路。
技能目标:1. 学生能运用EDA软件进行定时器的原理图绘制和仿真。
2. 学生能通过编程实现对定时器的参数设置和控制。
3. 学生能通过实验操作,验证定时器电路的功能和性能。
情感态度价值观目标:1. 学生培养对电子技术的兴趣和热情,激发创新精神和实践能力。
2. 学生培养团队协作意识,学会在小组合作中共同解决问题。
3. 学生树立正确的价值观,认识到电子技术在生活中的重要性。
课程性质:本课程为电子设计自动化(EDA)领域的一门实践性课程,旨在帮助学生掌握定时器的设计与应用。
学生特点:本课程面向高中二年级学生,学生对电子技术有一定的基础,具备一定的动手操作能力和逻辑思维能力。
教学要求:课程要求学生在理解定时器原理的基础上,能运用EDA软件进行设计、仿真和实验,培养实际操作能力。
通过本课程的学习,学生应能够独立完成一个简单的EDA定时器项目。
二、教学内容1. 定时器原理:讲解EDA定时器的基本原理,包括时钟信号、计数器、触发器等组成部分,使学生理解定时器工作流程。
相关教材章节:第三章第二节“定时器原理及其应用”2. 定时器计数方式:介绍定时器的计数方式,包括向上计数、向下计数等,分析时钟频率、计数器初值与定时时间的关系。
相关教材章节:第三章第三节“定时器的计数方式及参数计算”3. EDA软件应用:教授学生如何使用EDA软件绘制定时器原理图,进行仿真和调试。
相关教材章节:第四章“EDA软件的使用与应用实例”4. 定时器编程:讲解定时器的编程方法,使学生能够通过编程实现对定时器的参数设置和控制。
相关教材章节:第五章第一节“定时器的编程与应用”5. 实验操作:指导学生进行定时器电路的搭建、调试和测试,验证电路功能和性能。
eda电子时钟课程设计
eda电子时钟课程设计一、课程目标知识目标:1. 理解EDA工具的基本原理和使用方法;2. 掌握电子时钟的基本电路设计,包括时钟芯片、显示电路等;3. 学会使用硬件描述语言(如Verilog)进行电路设计和仿真;4. 了解电子时钟的运行机制,如晶振、分频、计时等。
技能目标:1. 能够运用EDA工具进行电子时钟的原理图绘制和PCB布线;2. 能够利用硬件描述语言编写简单的电子时钟程序并进行功能验证;3. 培养动手实践能力,完成电子时钟的组装、调试和测试;4. 提高问题解决能力,能够针对电子时钟运行过程中出现的问题进行分析和优化。
情感态度价值观目标:1. 培养学生热爱科学、追求技术进步的精神;2. 培养学生的团队协作意识和沟通能力,提高合作完成任务的能力;3. 增强学生的自信心和责任感,敢于面对挑战,勇于克服困难;4. 培养学生关注社会、关爱他人的情感,理解科技发展对社会进步的重要性。
课程性质:本课程为实践性较强的课程,结合理论知识与实践操作,培养学生的电子设计能力和动手实践能力。
学生特点:学生具备一定的电子基础知识,对EDA工具和硬件描述语言有一定了解,但实际操作经验不足。
教学要求:结合学生特点,注重理论与实践相结合,充分调动学生的积极性,引导他们主动参与实践,提高电子设计能力。
在教学过程中,注重个体差异,关注学生成长,确保课程目标的实现。
二、教学内容1. 电子时钟原理及电路设计基础:介绍电子时钟的基本原理、时钟芯片的工作机制以及显示电路的设计方法,结合课本相关章节,让学生掌握电子时钟的核心组件和电路结构。
- 时钟芯片选型与应用- 显示电路设计及驱动方法- 晶振及分频电路原理2. EDA工具的使用:学习并掌握EDA工具(如Altium Designer、Cadence 等)进行原理图绘制和PCB布线的方法,结合课本内容,进行实际操作演示。
- 原理图绘制及检查- PCB布线设计及注意事项- 仿真分析与调试3. 硬件描述语言编程:以Verilog语言为例,教授硬件描述语言的基本语法,结合电子时钟设计实例,让学生编写并验证时钟程序。
EDA课程设计(微波炉定时控制器)
目录一、设计题目和要求-----------------------------------------------------------------2二、设计思路--------------------------------------------------------------------------2三、单元模块设计--------------------------------------------------------------------3 --------------------------------------------------------------------------------------------83.1、FENPIN模块设计-----------------------------------------------------(3,4)3.2、FIRST模块设计------------------------------------------------------(4,5)3.3、JIANJISHU模块设计------------------------------------------------(5,6)3.4、CHOICE和VIEW模块设计------------------------------------------(7,8)四、硬件实验---------------------------------------------------------------------------8五、心得体会---------------------------------------------------------------------------9 附页:程序代码------------------------------------------------------------------------10 ---------------------------------------------------------------------------------------------17一、设计题目和要求设计题目为:微波炉定时控制器要求:1、复位开关:2、启动开关:3、烹调时间设置:4、烹调时间显示:5、七段码测试:6、启动输出:7、按TEST键可以测试七段码管,显示为“8888”;8、设定时间后,按启动键开始烹调,同时七段码显示剩余时间,时间为0时,显示烹调完成信息“CDEF”二、设计思路A.先有一个大概的模块话设计,就如下图:B:再在上面大模块的基础上进行改进增加复位端和测试端复位测试C:具体的设计过程:1、刚开始设计是先完成了FENPIN模块的设计,因为这个模块比较简单。
EDA课设定时器
目录1 概述..............................................................1 1.1 设计背景和意义 .............................................. 1 1.2 设计任务 (1)1.3 设计要求 .................................................... 1 2 原理设计及层次划分 (1)2.1 工作原理 .................................................... 1 2.2 层次划分 .................................................... 2 3软件设计 (2)3.1控制计数模块模块代码设计 ....................................2 3.2 报警器模块代码设计 .......................................... 4 3.3 译码器模块代码设计 .......................................... 5 3.4 定时器原件例化模块代码设计 .................................. 5 4 仿真及测试.. (6)4.1 控制计数模块仿真 ............................................ 6 4.2报警器模块仿真 .............................................. 8 4.3 译码器模块代码仿真 .......................................... 9 4.4 定时器原件例化模块代码仿真 ................................. 10 5 总结.............................................................11 6 参考文献 (11)11 概述1.1 设计背景和意义EDA技术是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。
eda电子钟课程设计
eda电子钟课程设计一、课程目标知识目标:1. 让学生理解EDA电子钟的基本原理,掌握电子时钟的组成和功能。
2. 使学生掌握数字电路设计的基本方法,学会使用EDA工具进行电路设计和仿真。
3. 帮助学生了解晶振、计数器、显示译码器等电子元件的工作原理和应用。
技能目标:1. 培养学生运用所学知识,独立完成EDA电子钟的设计与仿真。
2. 提高学生动手实践能力,学会焊接和调试电子电路。
3. 培养学生团队协作和问题解决能力,通过分组讨论、共同设计,解决课程中遇到的问题。
情感态度价值观目标:1. 激发学生对电子技术学习的兴趣,培养创新意识和探究精神。
2. 培养学生严谨的科学态度,注重实验数据和实验结果的准确性。
3. 引导学生关注电子技术在实际生活中的应用,认识到科技对社会发展的作用。
课程性质分析:本课程为电子技术实践课程,旨在让学生通过实际操作,掌握电子时钟的设计与制作方法。
课程结合理论知识与实践操作,注重培养学生的动手能力和实际应用能力。
学生特点分析:学生为高年级电子信息技术相关专业学生,具备一定的电子技术基础,具有较强的学习能力和实践欲望,希望通过课程学习,提高自身技能水平。
教学要求:1. 教师应结合学生特点,合理安排教学内容和进度,确保学生能够充分掌握电子钟设计与制作技能。
2. 教学过程中,注重启发式教学,引导学生主动思考、发现问题、解决问题。
3. 加强实践教学环节,提高学生动手操作能力,培养实际工程应用能力。
二、教学内容1. 电子时钟原理及组成:介绍EDA电子钟的基本原理,包括晶振、时钟信号、计数器、显示译码器等组成部分及其作用。
教材章节:第二章 电子时钟原理与设计2. EDA工具使用:学习并掌握EDA工具的使用方法,进行电子时钟电路设计与仿真。
教材章节:第三章 EDA工具及其应用3. 数字电路设计方法:学习数字电路设计的基本方法,包括逻辑门电路、触发器、计数器等设计原理。
教材章节:第四章 数字电路设计基础4. 电子时钟设计与仿真:结合所学知识,运用EDA工具进行电子时钟电路设计与仿真。
eda简易时钟课程设计
eda简易时钟课程设计一、教学目标本课程旨在通过EDA简易时钟的设计与实现,让学生掌握数字电路设计的基本原理和方法,培养学生的动手实践能力和创新能力。
具体目标如下:1.知识目标:使学生了解EDA工具的基本使用方法,掌握数字电路的设计流程,熟悉时钟电路的原理和设计方法。
2.技能目标:培养学生利用EDA工具进行数字电路设计的能力,能够独立完成简单的时钟电路设计,提高学生的实际操作技能。
3.情感态度价值观目标:通过课程的学习,使学生认识到数字电路技术在现代社会中的重要性,增强学生对电子技术的兴趣和热情,培养学生的科学素养和创新精神。
二、教学内容本课程的教学内容主要包括以下几个部分:1.EDA工具的基本使用方法:介绍EDA工具的界面和操作方法,使学生能够熟练使用EDA工具进行数字电路设计。
2.数字电路设计基础:讲解数字电路的基本原理和设计方法,包括逻辑门、逻辑函数、逻辑电路等。
3.时钟电路的设计与实现:介绍时钟电路的原理和设计方法,使学生能够利用EDA工具设计并实现一个简易的时钟电路。
三、教学方法为了达到课程目标,本课程将采用多种教学方法相结合的方式进行教学:1.讲授法:通过讲解数字电路的基本原理和设计方法,使学生掌握相关理论知识。
2.案例分析法:通过分析实际案例,使学生了解时钟电路的设计过程,提高学生的实践能力。
3.实验法:让学生动手实践,利用EDA工具设计并实现一个简易的时钟电路,培养学生的实际操作能力。
四、教学资源为了支持课程内容和教学方法的实施,我们将准备以下教学资源:1.教材:选用权威、实用的教材,为学生提供理论知识的学习依据。
2.参考书:提供相关领域的参考书籍,丰富学生的知识体系。
3.多媒体资料:制作精美的PPT课件,直观地展示课程内容,帮助学生更好地理解。
4.实验设备:准备充足的实验设备,确保每个学生都能动手实践,提高操作技能。
五、教学评估为了全面、客观地评估学生在课程中的学习成果,我们将采用以下评估方式:1.平时表现:通过观察学生在课堂上的参与程度、提问回答等情况,评估学生的学习态度和理解程度。
EDA数字时钟课程设计
课程设计报告学生姓名学号班级专业电子信息工程题目数字时钟设计指导教师2014 年 5 月一、任务和设计要求1. 熟悉集成电路的引脚安排。
2. 掌握各芯片的逻辑功能及使用方法。
3. 了解数字钟的组成及工作原理。
4. 熟悉数字钟的设计与制作。
1.设计指标(1)时间以24 小时为一个周期;(2)显示时、分、秒;(3)有校时功能,可以分别对时及分进行单独校时,使其校正到标准时间;(4)计时过程具有报时功能,当时间到达整点前 5 秒进行蜂鸣报时。
2.设计要求(1)画出电路原理图(或仿真电路图);(2)元器件及参数选择;(3)电路仿真与调试二、设计原理设计思路根据系统设计要求,系统设计采用自顶向下设计方法,由时钟分频部分、计时部分、按键部分调时部分和显示部分五个部分组成。
这些模块都放在一个顶层文件中。
1)时钟计数:首先下载程序进行复位清零操作,电子钟从00:00:00计时开始。
sethour可以调整时钟的小时部分, setmin可以调整分钟,步进为1。
由于电子钟的最小计时单位是1s,因此提供给系统的内部的时钟频率应该大于1Hz,这里取100Hz。
CLK端连接外部10Hz的时钟输入信号clk。
对clk进行计数,当clk=10时,秒加1,当秒加到60时,分加1;当分加到60时,时加1;当时加到24时,全部清0,从新计时。
用6位数码管分别显示“时”、“分”、“秒”,通过OUTPUT( 6 DOWNTO 0 )上的信号来点亮指定的LED七段显示数码管。
2)时间设置:手动调节分钟、小时,可以对所设计的时钟任意调时间,这样使数字钟真正具有使用功能。
我们可以通过实验板上的键7和键4进行任意的调整,因为我们用的时钟信号均是1HZ的,所以每LED灯变化一次就来一个脉冲,即计数一次。
3)清零功能:reset为复位键,低电平时实现清零功能,高电平时正常计数。
可以根据我们自己任意时间的复位。
总体结构图三、系统设计1)时、分、秒计时器时计时器为一个24进制计数器,分、秒计时器均为60进制计数器。
eda课程设计之带定时功能的计时器
设计题目十七:带闹钟功能的24小时制闹钟系统的设计 设计要求:(1) 计时功能:这是本计时器设计的基本功能,每隔一分钟计时一次,并在显示屏上显示当前时间。
(2) 闹钟功能:如果当前时间与设置的闹钟时间相同,则扬声器发出蜂鸣声。
(3) 设置新的计时器时间:用户用数字键‘0’~‘9’输入新的时间,然后按 "TIME"键确认。
(4) 设置新的闹钟时间:用户用数字键“0”~“9”输入新的时间,然后按“ALARM ”键确认。
过程与(3)类似。
(5) 显示所设置的闹钟时间:在正常计时显示状态下,用户直接按下“ALARM ”键,则已设置的闹钟时间将显示在显示屏上。
参考设计思路:图4-1 闹钟系统总体结构图整个闹钟系统的总体结构图如图4-1所示,我们将整个系统分成:(1)用于键盘输入的缓冲器;(2)用于始终计数的计数器;(3)用于保存闹钟时间的寄存器;(4)用于显示的七段数码显示电路;(5)用于以上四部分协同工作的控制器。
其中七段数码显示电路又包含译码器和显示器电路。
然后按照项目需求设计每个小的模块,经编译仿真成功之后组装成最终产品。
U4U6U2U1大庆石油学院课程设计2011年3月11日大庆石油学院课程设计任务书课程EDA技术课程设计题目闹钟系统的设计专业电子科学与技术姓名兰士凤学号070901240102主要内容、基本要求、主要参考资料等主要内容:设计并制作一个带闹钟功能的24小时计时器。
它包括以下几个组成部分:1、显示屏,由4 个七段数码管组成,用于显示当前时间(时:分)或设置的闹钟时间;2、数字键,实现‘0’—‘9’的输入,用于输入新的时间或新的闹钟时间;3、TIME(时间)键,用于确定新的时间设置;4、ALARM(闹钟)键,用于确定新的闹钟时间设置,或显示已设置的闹钟时间;5、扬声器,在当前时钟时间与闹钟时间相同时,发出蜂鸣声基本要求:1、计时功能:这是本计时器设计的基本功能,每隔一分钟计时一次,并在显示屏上显示当前时间。
EDA课程设计(微波炉定时控制器)
目录一、设计题目和要求-----------------------------------------------------------------2二、设计思路--------------------------------------------------------------------------2三、单元模块设计--------------------------------------------------------------------3 --------------------------------------------------------------------------------------------83.1、FENPIN模块设计-----------------------------------------------------(3,4)3.2、FIRST模块设计------------------------------------------------------(4,5)3.3、JIANJISHU模块设计------------------------------------------------(5,6)3.4、CHOICE和VIEW模块设计------------------------------------------(7,8)四、硬件实验---------------------------------------------------------------------------8五、心得体会---------------------------------------------------------------------------9 附页:程序代码------------------------------------------------------------------------10 ---------------------------------------------------------------------------------------------17一、设计题目和要求设计题目为:微波炉定时控制器要求:1、复位开关:2、启动开关:3、烹调时间设置:4、烹调时间显示:5、七段码测试:6、启动输出:7、按TEST键可以测试七段码管,显示为“8888”;8、设定时间后,按启动键开始烹调,同时七段码显示剩余时间,时间为0时,显示烹调完成信息“CDEF”二、设计思路A.先有一个大概的模块话设计,就如下图:B:再在上面大模块的基础上进行改进增加复位端和测试端复位测试C:具体的设计过程:1、刚开始设计是先完成了FENPIN模块的设计,因为这个模块比较简单。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电子课程设计——定时器学院:专业:姓名:学号:指导老师:2009年12月目录一.设计任务与要求 (3)二.总体框图 (3)三.功能模块 (4)四.总体设计电路图 (12)五.心得体会 (14)定时器一、设计任务与要求1.设计任务与要求:通过设计,定时器可以整体清零;可以定时最高到99MIN;以秒速度递增至预定时间,以分速度递减至零。
2.设计目的(1)了解并掌握电路的一般设计方法,具备初步的独立设计能力。
(2)进一步熟悉常用电子模块的设计思路和功能,并掌握合理选用的原则。
(3)提高综合运用所学的理论知识。
独立分析和解决问题的能力。
(4)进一步熟悉电子仪器的正确使用方法。
二、总体框图图1设计思路:通过记数器控制中心输入秒信号,并输出两个四位的BCD 码,可分别来表示各位与十位,也可整体复位清零。
通过该记数器实现以秒速度控制计数部分二选一选择器分频器译码器数码管时钟信号递增至清零,该记数器以秒的速度递增至99来实现置位,而以分的速度递减至零以实现定时功能。
通过二选一选择器对个位和十位进行扫描输出,并将输出送到译码器,通过译码器对输入的四位BCD 码进行七段码编译,然后输出到数码管。
三、功能模块1、ctrl 记数模块 模块器件图:ctrlinstcn res clkcout low[3..0]high[3..0]图2模块逻辑功能:ctrl 计数模块是该定时器的核心部分.res 为复位端,用来清零,采用异步复位方式;cn 用于置位,高电平有效。
cout 端将在定时结束时产生高电平。
Low 和high 为四位BCD 码输出端口,可用于显示。
当cn 有效时,clk 脉冲上升沿到来,计数加1;当cn 为低电平时,置位结束,进入计时阶段,每60个时钟周期(相当于一分钟)发出一个脉冲,使输出记数减1,直到记时结束,命名cout 位为高电平为止。
该模块的源程序如下:LIBRARY ieee;USE ieee.std_logic_1164.all; USE ieee.std_logic_unsigned.all;ENTITY ctrl ISPORT(cn,res,clk : IN STD_LOGIC;cout : out STD_LOGIC;low,high: OUT std_logic_vector(3 downto 0));END ctrl;ARCHITECTURE rtl OF ctrl ISSIGNAL displow,disphigh : std_logic_vector(3 downto 0); BEGINa:PROCESS (clk,cn,res)variable cnt: integer range 0 to 59;BEGINIF (res = '0') THENdisplow<="0000";disphigh<="0000";cnt:=0;cout<='0';ELSIF (clk'EVENT AND clk = '1') THENIF cn = '1' THENcnt:=0;if displow<"1001" thendisplow<=displow+'1';ELSEdisplow<="0000";if disphigh<"1001" thendisphigh<=disphigh+'1'; elsedisphigh<="0000";end if;end if;ELSEif cnt<59 thencnt:=cnt+1;elsecnt:=0;if displow>"0000" thendisplow<=displow-'1'; --elsif displow=1 then -- displow<="0000";else displow<="1001";if disphigh>"0000" then disphigh<=disphigh-'1'; elsedisplow<="1001";end if;end if;end if;end if;end if;if disphigh="0000" and displow="0000" thencout<='1';else cout<='0';end if;end process;high<=disphigh;low<=displow;end rtl;该器件的仿真波形如图3图3 通过仿真波形可以看出低位和高位都可以从零变到9,可以说明输出可以从0变到99,且低位为9时,下一时刻将变为0,而高位增1,当高位变成9时会自动清零。
2、sel2二选一选择模块模块器件图:sel2instd1[3..0]d2[3..0]sel xz[7..0]q[3..0]图4模块逻辑功能:二选一选择模块主要是接受由ctrl 输出的四位BCD 码,并通过选择信号sel 进行选择输出。
其源程序如下:library ieee;use ieee.std_logic_1164.all; entity sel2 isport(d1,d2: in std_logic_vector(3 downto 0); sel: in std_logic;xz: out std_logic_vector(7 downto 0); q: out std_logic_vector(3 downto 0)); end sel2;architecture rtl of sel2 is beginq<=d1 when sel='0' else d2;xz<="11111110" when sel='0' else "11111101" ; End rtl;该器件的波形仿真如图5图5从波形仿真可以观察出:若选择信号端为低电平,输入d1为0001,则输出q为0001;反之,若选择信号为高电平,输入d2为0000,则输出q为0000.如此循环,选定信号端的高低电平,给选择器一个输入信号,即可得到相应的输出,这样就验证了此模块实现循环扫描功能的正确性。
3、译码器模块模块器件图:dispd[3..0]q[6..0]inst图6模块逻辑功能:译码器模块disp是对四位BCD码进行七段码译码,其输出Q0~Q6分别接数码管的a~g段,它的操作源程序如下:library ieee;use ieee.std_logic_1164.all;entity disp isport(d: in std_logic_vector(3 downto 0);q: out std_logic_vector(6 downto 0));end disp;architecture rtl of disp isbeginprocess(d)begincase d iswhen"0000"=>q<="0111111";when"0001"=>q<="0000110";when"0010"=>q<="1011011";when"0011"=>q<="1001111";when"0100"=>q<="1100110";when"0101"=>q<="1101101";when"0110"=>q<="1111101";when"0111"=>q<="0100111";when"1000"=>q<="1111111";when"1001"=>q<="1101111";when others=>null;end case;end process;end rtl;该器件的波形仿真如图7图7由波形可以看出:当输入的四位BCD码为0000时,译码器通过对七段码编译为0111111输出到数码管显示0,由此确定了该模块的正确性。
4、分频器模块模块器件图:div_clkclk_in div_outinst图8模块逻辑功能:把50MHZ的频率分为250HZ的频率,其源程序如下:LIBRARY ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;ENTITY div_clk ISPORT(clk_in : IN std_logic;div_out: OUT std_logic);END div_clk;ARCHITECTURE a OF div_clk ISSIGNAL fre_N : integer range 0 to 100000;SIGNAL clk_tmp: std_logic;BEGINdiv_out <= clk_tmp;process(clk_in)beginif falling_edge(clk_in) thenif fre_N >= 99999 thenfre_N <= 0;clk_tmp <= not clk_tmp;elsefre_N <= fre_N + 1;end if;end if;end process;END a;四、总体设计电路图1、总体框图:图9整体工作情况:该电路通过记数器控制中心输入秒信号,并输出两个四位的BCD 码,可分别来表示各位与十位,也可整体复位清零,通过二选一选择器对个位和十位进行扫描输出,并将输出送到译码器,通过译码器对输入的四位BCD码进行七段码编译,然后输出到数码管。
通过分频器来输入适当频率的时钟。
2、总体框图的波形仿真结果:图10观察波形:当cn有效时,clk脉冲上升沿到来计数加1,计数器输出四位BCD码,如,当res = '0',d[3..0]=0000,则输出q[6..0]=0111111,数码管显示0;当d[3..0]=0001,则输出q[6..0]=0000110,一直计数到当d[3..0]=1001,q[6..0]=1101111.随着时钟沿的到来,实现加法计数;相同,当cn为低电平时,置位结束,进入计时阶段,每60个时钟周期发出一个脉冲,使输出记数减1,实现减法计数。