EDA简单数字时钟设计

合集下载

基于EDA的数字电子钟设计

基于EDA的数字电子钟设计

摘要数字时钟,就是以数字显示取代模拟表盘的钟表,在显示上它用数字反应此时的时间,它还能同时显示时,分,秒,且能够对时,分,秒准确进行校时。

数字时钟是一种用数字电路技术实现时、分、秒计时的装置。

与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,已得到广泛的使用。

数字钟从原理上讲是一种典型的数字电路,一般是由振荡器、分频器、计数器、显示器等几部分组成。

其中包括了组合逻辑电路和时序电路。

数字钟的设计方法有许多种,例如:可用中小规模集成电路组成电子钟;也可以利用专用的电子钟芯片配以显示电路及其所需要的外围电路组成电子钟;还可以利用单片机来实现电子钟等等。

本设计采用EDA技术,以硬件描述语言Verilog HDL为系统逻辑描述手段设计文件,在QUARTUS II工具软件环境下,采用自顶向下的设计方法,由各个基本模块共同构建了一个基于FPGA的数字钟。

数字时钟以其体积小、重量轻、抗干扰能力强、对环境要求高、高精确性、容易开发等特性,在工业控制系统、智能化器仪表、办公自动化等诸多领域取得了极为广泛的应用,诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动启闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等。

关键词:EDA、QuartusII、Verilog HDL、FPGA芯片、数字时钟等AbstractDigital clock is with digital display to replace analog dial watch, in the show it with digital reaction at this time, it can display at the same time, minutes and seconds, and can pair, minutes and seconds precise timing.Digital clock is a digital circuit technology to achieve time, minutes and seconds of the device. Compared with the mechanical clock has higher accuracy and intuitive, and no mechanical device, has a longer life, has been widely used. Digital clock from the principle of speaking is a typical digital circuit, generally by the oscillator, frequency divider, counter, display and other parts of the composition. The combination logic circuit and the sequential circuit are included in the circuit. Digital clock design, there are many methods. For example: available small scale integrated circuit composition electronic clock; can also use special chip electronic clock with to display circuit and its peripheral circuit composed of electronic clock; can also be used to achieve single-chip electronic clock and so on.This design using EDA technology, the Hardware Description Language Verilog HDL logic system description method of design documents, in the Quartus II software environment by top-down design method, by all the basic modules work together to build a based on FPGA digital clock.Digital clock with the volume small, light weight, strong anti-interference ability, on the environment requirements high, high precision, ease of development, and so on, in the fields of industrial control system, intelligent of instrumentation, office automation, made extremely widely used, such as timing automatic alarm, timely automatic bell, a time program automatic control, regular radio, automatic opening and closing lights, oven timer switch, on-off power equipment, and even a variety of timing electric automatically enabled.Keywords: EDA, QuartusII, Verilog HDL,FPGA chip, Digital clock, etc.摘要 (1)第一章绪论 (4)1.1选题意义与研究现状 (4)1.2国内外研究及趋势 (4)第二章EDA技术 (6)2.1 EDA技术简介 (6)2.2 EDA技术特点 (6)2.3 EDA技术的发展历程 (6)第三章 QuartusⅡ,FPGA的简介 (9)3.1 Quartus II简介 (9)3.2 FPGA简介 (9)3.3 FPGA系统设计流程 (11)3.4本设计所用黑金开发板AX301简介 (12)第四章数字时钟总体设计方案 (14)4.2 数字钟的工作原理 (14)第五章数字时钟的具体设计 (15)5.1 本设计的顶层图 (15)5.2 时钟控制模块 (15)5.2.1信号定义 (15)5.2.2分频模块 (16)5.2.3走时模块 (16)5.3显示模块 (20)第六章程序的验证与修改 (25)6.1程序导入 (25)6.2开发板演示 (25)第七章总结与展望 (27)7.1论文总结 (27)7.2后续展望 (27)致谢 ................................................................................................................... 错误!未定义书签。

EDA设计 数字钟

EDA设计 数字钟

摘要利用MAX+PLUSⅡ软件,设计一个能进行时、分、秒计时的24制多功能数字钟,使其具有定时与闹钟功能,且能在设定的时间发出闹铃音,能非常方便地对时、分、秒进行手动调节以校准时间,每逢整点,产生报时音效,并在实验板上成功下载,验证后满足要求。

关键词:EDA ; MAX+PLUS2 ;数字钟;0 引言随着科学技术的发展,现代电子设计技术已进入一个全新的阶段,传统的电子设计方法、工具和器件在更大的程度上被EDA所取代。

在EDA技术中,最为瞩目的是以现代电子技术为特征的逻辑设计仿真测试技术,该技术的出现,使电子系统设计发生了质的变化,设计速度快、体积小、重量轻、功耗小的集成电路已成为趋势。

本文利用EDA 技术,选用ALTERA公司的CPLD器件EPF10K10LC84-4和软件MAX+PLUS2,设计了一个多功能数字钟,提高了系统的整体性能和可靠性,并通过编译、仿真、下载,经验证后已满足要求。

1 多功能数字钟设计任务1.1 数字钟设计要求(1)、设计一个能显示1/10秒、秒、分、时的12小时数字钟。

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

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

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

1.2 设计思路此设计可分为主控电路、计数器模块和扫描显示三大模块。

1.2.1 主控电路模块主控电路状态用表格显示,如下表所列:模式选择秒、时、分、计数器脉冲输出状态备注Reset Reset1 A B Turn LD-h LD-m LD-alert0 X X X X X 0 0 0 系统复位1 X 0 0 X CLK 0 0 0 系统计时1 X 0 1 0 Change=分计数器加1 0 1 0手动1 X 0 1 1 Change=时计数器加1 1 0 0校时1 1 1 0 0 Change=分计数器加1 0 1 1 设置闹钟1 1 1 0 1 Change=时计数器加11 0 11 0 X X X X 0 0 0 关闭闹钟1.2.2 计数器模块计数器模块中,分钟和秒用带进位位的60进制功能模块,小时用不带进位位的24进制功能模块(如果考虑到日期的问题,在24进制模块加进位输出即可实现)。

EDA数字时钟的设计

EDA数字时钟的设计

摘要系统使用EDA技术设计了数字钟,采用硬件描述语言VHDL按模块化方式进行设计,然后进行编程,时序仿真等。

利用VHDL语言完成了数字钟的设计。

该数字钟能实现时、分、秒计数的显示功能,且以24小时循环计时。

整个系统结构简单,使用方便,功能齐全,精度高,具有一定的开发价值。

关键字数字钟;EDA;VHDL;目录1 引言 (3)1.1课题的背景、目的 (3)1.2 设计的内容 (3)2 EDA、VHDL简介 (4)2.1 EDA技术 (4)2.2 硬件描述语言——VHDL (4)VHDL的简介 (4)VHDL语言的特点 (5)VHDL的设计流程 (5)3 数字钟设计 (6)3.1数字钟的工作原理 (6)3.2数字钟模块功能说明 (7)4 系统仿真 (10)4.1秒计数器电路仿真图 (10)4.2分计数器电路仿真图 (10)4.3 小时计数器电路仿真图 (11)4.4译码驱动电路仿真图 (11)结束语 (12)致谢 (12)参考文献 (12)附件 (13)1 引言随着社会的发展,科学技术也在不断的进步。

特别是计算机产业,可以说是日新月异,数字钟作为计算机的一个组成也随之逐渐进入人们的生活,从先前的采用半导体技术实现的数字钟到现在广泛应用的采用高集成度芯片实现的数字钟。

数字钟正在向着功能强,体积小,重量轻等方向不断发展,本设计主要介绍的是一个基于超高速硬件描述语言VHDL对数字钟中显示电路进行编程实现。

近年来,集成电路和计算机应用得到了高速发展,现代电子设计技术已迈入一个崭新的阶段,具体表现在:(1)电子器件及其技术的发展将更多地趋向于为EDA服务;(2)硬件电路与软件设计过程已高度渗透;(3)电子设计技术将归结为更加标准、规范的EDA工具和硬件描述语言VHDL的运用;(4)数字系统的芯片化实现手段已成主流。

因此利用计算机和大规模复杂可编程逻辑器件进行现代电子系统设计已成为电子工程类技术人员必不可少的基本技能之一。

EDA 数字钟设计 (内容较全面)

EDA 数字钟设计 (内容较全面)

摘要利用QuartusII与FPGA,制作数字钟。

数字钟由分频模块,计数模块、显示模块、报时模块等几部分构成,数字钟的时、分、秒由一个24进制计数器(00-23),两个60进制计数器(00-59)级联构成。

以10进制计数器74160来实现时间计数单元的计数功能。

利用一片7447,采用分时复用方式,连接LED 数码管显示。

关键词EDA、FPGA、VHDL、QuartusII、数字钟。

AbstactorIn this study, Multifunction digital clock on the design and simulation through Using Quartus2 software;downloaded to the FPGA after Successful simulation,clock display on the led; achieve the required functions through reusing switch main modules are: dynamic display circuit, Set the clock hours, the music circuit, keypad circuit; features include: clock display, alarm clock and hourly chime。

KeywordsEDA、FPGA、VHDL、QuartusII 、Digital Clock目录1 ···············设计要求说明2 ···············方案论证3 ···············各模块原理说明1)分频模块2)计时模块3)显示模块4)报时模块4··················引脚分配5··················结论6··················参考文献一、设计要求1、能进行正常的时、分、秒计时功能;2、分别由六个数码管显示时分秒的计时;3、K1是系统的使能开关(K1=0正常工作,K1=1时钟保持不变);4、K2是系统的清零开关(K2=0正常工作,K2=1时钟的分、秒全清零);5、K3是系统的校分开关(K3=0正常工作,K3=1时可以快速校分);6、K4是系统的校时开关(K4=0正常工作,K4=1时可以快速校时);7、使时钟具有整点报时功能(当时钟计到59’53”时开始报时,在59’53”, 59’55”,59’57”时报时频率为512Hz,59’59”时报时频率为1KHz, );8、自己添加其他功能;二、方案论证采用模块化的设计思路,分别设计分频模块,计数模块、显示模块、报时模块。

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 简易数字钟

摘要本次设计采用VHDL语言和EDA技术制作数字钟,以EDA工具作为开发手段,运用VHDL语言使整个系统大大简化,提高整体的性能和可靠性。

芯片配置成功后锁定引脚下载即可进行硬件测试。

本次设计的数字钟是一个能显示0.1秒、秒、分、时的12小时制数字钟;它的设计要求熟练掌握各种计数器的使用;能用计数器构成十进制、六十进制、十二进制等所需进制;能用低位的进位输出构成高位的计数脉冲。

本设计运用QuartusⅡ6.0软件实现对程序的编写、调试、修改、仿真与分析,以及下载到FPGA 上运行,并实现数字钟的计时功能。

基本原理是多路选择器和计数器的组合设计,二选一数据选择器设置时间。

关键词:可编程逻辑器件;VHDL语言;QuartusⅡ6.0软件;计数器;二选一;数字钟目录摘要 (1)1 设计要求 (3)2 设计方案 (3)3 设计原理和实现过程 (3)3.1设计原理 (3)3.2各模块的VHDL语言设计 (4)3.2.1十分之一秒计数器模块 (4)3.2.2秒计数器模块 (5)3.2.3分计数器模块 (6)3.2.4 时计数器模块 (7)3.2.5 二选一数据选择器模块 (8)3.2.6 顶层原理图设计 (9)3.3各模块的仿真图 (9)3.3.1 十分之一秒计数器仿真 (9)3.3.2 秒计数器仿真 (10)3.3.3 分计数器仿真 (10)3.3.4 时计数器仿真 (10)3.3.5 数据选择器仿真 (10)3.3.5 顶层原理图仿真 (11)4 硬件实现及测试 (11)4.1引脚锁定 (11)4.2下载及测试 (12)5实验总结 (12)6 致谢 (12)7 参考文献 (13)1 设计要求本次我设计的是一个能显示1/10秒、秒、分、时的12小时数字钟;用不同进制的计数器来达到实现数字钟的目的。

并且能够用二选一选择器快速的修改时间。

2 设计方案如图1所示:通过脉冲来控制计数器的频率来达到设置时间的目的。

然后通过计数,显示输出,从而达到数字电子时钟的设计。

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设计(II)实验报告数字电子钟

EDA设计(II)实验报告数字电子钟

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设计报告-数字钟

一、设计要求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数字秒表的设计
自顶向下的设计自顶向下的设计方法是数字系统设计中最常用的设计方法.也是基于芯片的系统设计的主要方法。

自顶向下的设计方法利用功能分割手段将设计由上到下进行层次话和模块化,及分层次、分模块进行设计和仿真。

功能分割时,将系统功能分解为功能块,功能块再分解为逻辑块,逻辑块再分解为更少的逻辑块和电路。

如此分割,逐步的将系统细化,将功能逐步的具体化,模块化。

高层次设计进行功能和接口描述,说明模块的功能和接口,模块功能的更详细描述在下一设计层次说明,最底层的设计才涉及具体寄存器和逻辑门电路等实现方式的描述。

将实验箱端口与计算机相应端口连接,检测试验箱是否可以使用,经检测无误后,关闭试验箱,将主芯片标号对应顶层文件相应引脚标号连线到相应器件处。

即输入时钟信号端接试验箱时钟发生电路CLK输出端(用50MHz信号),启动新号段与归零信号端分别接两个拨码开关,输出端count分别接3/8译码器的SEL2SEL0端,输出a,b,c,d,e,f,g,h端接显示译码器的相应输入端,连接好线后打开试验箱电源,将设计好的程序下载到试验箱的芯片上即可测试功能。

EDA课程设计数字时钟

EDA课程设计数字时钟

泰山学院2011级电子信息科学与技术本科班EDA课程设计·数字时钟姓名:胡乃宽学号:2011080032学院:物电学院班级:2011级电本任课老师:王春玲设计时间:2013-11-21摘要:以现场可编程逻辑器件(FPGA)为设计载体,以硬件描述语言(VHDL)为主要表达方式,以QⅡ开发软件和EDA试验箱为设计工具,阐述了数字时钟的工作原理和软件实现方法。

并通过对所设计的数字时钟进行了时序仿真,使我们小组成员掌握综合性电路的设计、仿真、下载、调试方法,并能写出简单的EDA实验程序。

作为学习电子的本科生,我们必须不断接受先进的电子知识,这就要求我们努力学好EDA这门课程,并熟练掌握相关软件及硬件的操作。

除此之外,我们在课下还要不断练习,争取掌握一定的EDA编程方法,并且利用现有的条件不断实践。

这样一来,我们可以学好EDA这门课程。

此次课程设计不是我们EDA课程的结束,而是一个继续学习EDA相关课程的开始。

关键词:QⅡ开发软件;数字时钟;EDAAbstract:Field programmable logic device (FPGA) design support , hardware description language (VHDL) as the main expression to Q Ⅱchamber for the development of software and EDA design tools , digital clock describes the working principle and software implementation .As e- learning undergraduate , we must continue to accept advanced electronic knowledge , which requires us to strive to learn EDA this course , proficiency in relevant software and hardware operations. In addition, we also continue to practice in class, fight master certain EDA programming methods , and the use of the existing conditions of continuous practice . In this way , we can learn EDA this course .The course design is not the end of our EDA programs , but a continuing study began EDA related courses .Keywords : Q Ⅱsoftware development ; digital clock ; EDA一课程设计任务及要求1.1实验目的(1)掌握VHDL语言的简单运用(2)掌握VHDL编程设计方法及会简单编程(3)掌握QII的简单操作并会使用EDA实验箱(4)掌握一个基本EDA课程设计的操作(5)掌握综合性电路的设计、仿真、下载、调试方法(6)学会使用试验箱1.2功能设计(1)有时、分、秒计数显示功能,小时为24进制,分钟和秒为60进制以24小时循环计时(2)部分显示功能(3)具有整点报时功能1.3实验仪器(1)PC机1台(2)QII软件1套二设计思想1.1功能设计概述(1)时、分、秒计时器时、分、秒计时器分别有三个程序驱动,其中时计时器为一个24进制计数器,分、秒计时器均为60进制计数器。

EDA课程设计数字电子钟

EDA课程设计数字电子钟

一、设计任务及要求1、设计内容选用合适的可编程逻辑器件及外围电子元器件,设计一个数字电子钟,利用EDA 软件(QUARTUS Ⅱ)进行编译及仿真,设计输入采用Verilog HDL硬件描述语言输入法,并下载到EDA实验箱系统,连接外围电路,完成实际测试。

2、设计要求(1)具有时、分、秒计数显示功能,该电子钟正常显示小时、分钟、秒,各用2位数码管(共6位数码管),显示范围为0—23时59分59秒。

(2)具有复位清零的功能,且能够对计时系统的小时、分钟进行调整。

(3)定时响铃功能,设计计时到01分10秒后蜂鸣器开始响,持续时间10秒。

二、设计思想对于数字钟来说首先是时分秒的计数功能,然后能显示,附带功能是清零、调整时分,拟定如下方案:计时校正模块中,用1Hz时钟送入秒脉冲信号,“秒计数器”采用60进制,每累计60秒,发出一个“分脉冲”信号,该信号将被送到“分计数器”。

“分计数器”采用60进制计数器,每累计60分,发出一个“分脉冲”信号,该信号被送到“时计数器”。

“时计数器”采用24进制,可实现24小时的累计计数,时钟使用三个输入按键K1、K2、K3,分别控制数字钟的校时、校分、清零,每次分别按下K1、K2按键,对应的时、分计数就加1,按下K3,时间清零。

显示模块中,分别用六个八位数码管显示时钟的时十位、时个位、分十位、分个位、秒十位、秒个位,设置一个时钟脉冲用于扫描数码管显示。

最后的定时响铃功能,本报告设计为计时到01分10秒开始驱动蜂鸣器响,持续十秒。

三、程序清单Verilog HDL源程序:module clock(clk1,clk2,dx,wei,k1,k2,rst,led);input clk1,clk2,k1,k2,rst;output [2:0] wei;output [7:0] dx;output led;reg led;reg [2:0] wei;reg [7:0] dx;reg [7:0] as,ts,am,tm,ah,th,xs;reg [7:0] q;always @(posedge clk1 or posedge rst)beginif(rst){as,ts,xs,am,tm,xs,ah,th}<=8'b00000000; else if(k1)beginif(ah==8'b00001001)beginah=8'b00000000;th=th+8'b00000001;endelse if(ah==8'b00000011&&th==8'b00000010) beginth=8'b00000000;ah=8'b00000000;endelse ah=ah+8'b00000001;endelse if(k2)beginif(am==8'b00001001)beginam=8'b00000000;if(tm==8'b00000101)tm=8'b00000000;else tm=tm+8'b00000001;endelse am=am+8'b00000001;endelse if(as==8'b00001001)beginas=8'b00000000;if (ts==8'b00000101) begints=8'b00000000;if(am==8'b00001001)beginam=8'b00000000;if(tm==8'b00000101)begintm=8'b00000000;if(ah==8'b00001001)beginah=8'b00000000;th=th+8'b00000001;endelseif(ah==8'b00000011&&th==8'b00000010)beginth=8'b00000000;ah=8'b00000000;endelse ah=ah+8'b00000001;endelse tm=tm+8'b00000001;endelse am=am+8'b00000001;end else ts=ts+8'b00000001; endelse as=as+8'b00000001;endalways @(posedge clk2)beginif(wei==3'b111)wei<=3'b000;else wei<=wei+3'b001;endalways @(q or wei or k1)beginif(wei==3'b000)q<=as;else if(wei==3'b001)q<=ts;else if(wei==3'b010)q<=8'b11111111;else if(wei==3'b011)q<=am;else if(wei==3'b100)q<=tm;else if(wei==3'b101)q<=8'b11111111;else if(wei==3'b110)q<=ah;else if(wei==3'b111)q<=th;case(q)0:dx<=8'b11111100;1:dx<=8'b01100000;2:dx<=8'b11011010;3:dx<=8'b11110010;4:dx<=8'b01100110;5:dx<=8'b10110110;6:dx<=8'b10111110;7:dx<=8'b11100000;8:dx<=8'b11111110;9:dx<=8'b11110110;default dx<=8'b00000010;endcaseendalways @(posedge clk1)beginled=1;if(ts==8'b00000001&&am==8'b00000001&&tm==8'b00000000&&ah= =8'b00000000&&th==8'b00000000)led=~led;elseif(as==8'b00000000&&ts==8'b00000010&&am==8'b00000001&&tm= =8'b00000000&&ah==8'b00000000&&th==8'b00000000) led=0;endendmodule四、调试及总结1.仿真波形图2.总结通过此次课程设计,让我对EDA这门技术有了更深的体会,并更好的学会了使用QuartusⅡ软件进行硬件设计。

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设计

序号:学号:课程名称: FPGA设计及应用论文题目:简易数字钟的EDA设计学生姓名:学院(系):专业班级:简易数字钟的EDA设计一、产品设计需求说明本产品实现的功能:1、数字钟功能:数字钟时间为24小时一个周期:数字钟须显示时、分、秒。

2、校时功能:可以分别对时、分、秒进行单独校时,使其调整到标准时间。

3、扩展功能:整点报时系统。

设计整点报时电路,每当数字钟达到整点时开始报时,并发出鸣叫声,十秒后鸣叫结束。

设计参数:使用的芯片/硬件平台GW48实验系统软件平台WindowsXP + MuxplusII10.1二、方案设计及实现1、系统实现原理和总体框图数字式电子钟实际上是一个对标准1Hz进行计数的计数电路,秒计数器满60秒后向分计数器进位,分计数器满60秒后向时计数器进位,时计数器按24翻1规律计数,计数输出经译码器送LED显示器,由于计数的起始时间不可能与标准时间(北京时间)一致,故需要在电路上加上一个校时电路,该数字式电子钟除用于计时外,还能整点报时,如图(1-1)所示为多功能数字式电子钟的构成框图。

除校时功能外,电子钟处于其他功能状态时并不影响数字钟的运行,该电子钟利用GW48 EDA实验平台的扬声器进行整点报时。

图(1-1)多功能数字式电子钟的系统框图2、主要模块之计数器模块的设计计数器模块说明:时分秒计数器模块由秒个位、十位计数器,分个位、十位计数器以及时个位、十位计数电路组成。

其中,秒个位和秒十位计数器、分个位和分十位计数为六十进制计数器,而根据设计要求,时个位和时十位构成的为二十四进制计数器。

因此时分秒计数器模块可划分为时计数、分计数和秒计数3个子模块,根据设计要求,时计数子模块为一个二十四进制可预置的BCD码计数器模块;分计数和秒计数子模块均为六十进制可预置的BCD码计数器模块。

算法原理如图(1-2)、图(1-4)、图(1-6)所示源代码:1)、六进制计数器:--File:counter6.vhd--Designer:AAA--Module:decimal counter--Description: It is a decimal counter with a carry.--Simulator:MAX plusII 10.0.9/Window XP--Synthesizer:MAX plusII 10.0.9/Window XP--Date:10/16/11--Modify date:10/5/12LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; 图(1-2)六进制计数器工作流程图USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY counter6 ISPORT(clk:IN STD_LOGIC;reset:IN STD_LOGIC;din:IN STD_LOGIC_VECTOR(2 DOWNTO 0);dout:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);c:OUT STD_LOGIC);END counter6;ARCHITECTURE dianzizhong OF counter6 ISSIGNAL count:STD_LOGIC_VECTOR(2 DOWNTO 0);BEGINdout<=count;PROCESS(clk,reset,din)BEGINIF reset='0' THEN --计数器复位count<=din;c<='0';ELSIF rising_edge(clk) THENIF count="101" THEN --到5后,计数器清零count<="000";c<='1';ELSEcount<=count+1;c<='0';END IF;END IF;END PROCESS;END dianzizhong;仿真图:图(1-3) 六进制计数器功能仿真图2)、十进制计数器:--File:counter10.vhd--Designer:AAA--Module:decimal counter--Description: It is a decimal counter with a carry.--Simulator:MAX plusII 10.0.9/Window XP--Synthesizer:MAX plusII 10.0.9/Window XP--Date:10/16/11--Modify date:10/5/12LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; 图(1-4)十进制计数器工作流程图USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY counter10 ISPORT(clk :IN STD_LOGIC;reset: IN STD_LOGIC;din: IN STD_LOGIC_VECTOR(3 DOWNTO 0);dout: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);c: OUT STD_LOGIC);END counter10;ARCHITECTURE dianzizhong OF counter10 ISSIGNAL count:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINdout<=count;PROCESS(clk,reset,din)BEGINIF reset='0' THEN --计数器复位count<=din;c<='0';ELSIF rising_edge(clk) THENIF count="1001" THEN --到9后,计数器清零count<="0000";c<='1';ELSEcount<=count+1;c<='0';END IF;END IF;END PROCESS;END dianzizhong;仿真图:图(1-5) 十进制计数器功能仿真图3)、二十四进制计数器:--File:counter24.vhd--Designer:沙桂珍--Module:counter base-24--Description: It is a counter base-24.--Simulator:MAX plusII 10.0.9/Window XP--Synthesizer:MAX plusII 10.0.9/Window XP--Date:10/16/11--Modify date:10/5/12LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;图(1-6)二十四进制计数器工作流程图USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY counter24 ISPORT(clk:IN STD_LOGIC;reset:IN STD_LOGIC;din:IN STD_LOGIC_VECTOR(5 DOWNTO 0);dout:OUT STD_LOGIC_VECTOR(5 DOWNTO 0));END counter24;ARCHITECTURE dianzizhong OF counter24 ISSIGNAL count:STD_LOGIC_VECTOR(5 DOWNTO 0);BEGINdout<=count;PROCESS(clk,reset,din)BEGINIF reset='0' THENcount<=din;ELSIF rising_edge(clk) THENIF count="100011" THEN --达到23时下一次归0count<="000000";ELSIF count(3 DOWNTO 0)="1001" THENcount(3 DOWNTO 0)<="0000"; --低位到9后,计数器清零count(5 DOWNTO 4)<=count(5 DOWNTO 4)+1; --高位加1ELSEcount(3 DOWNTO 0)<=count(3 DOWNTO 0)+1;END IF;END IF;END PROCESS;END dianzizhong;仿真图:图(1-7) 二十四进制计数器功能仿真图3、主要模块之校时模块的设计校时模块说明:当刚接通电源或走时出现误差时都需要对时间进行校正,对时间的校正是通过对时间的重置来实现,当功能键reset为1、load为0时即进入校时模式,此模式下可通过对sel键的选择来给时,分,秒中的一个进行置数,当sel为“01”时是校时状态,为“10”时是校分状态,为“11”时是校秒状态,在对其中一个置数时不会影响其他两个计数。

EDA课程设计——基于VHDL语言的数字时钟设计(可编辑)

EDA课程设计——基于VHDL语言的数字时钟设计(可编辑)

EDA课程设计——基于VHDL 语言的数字时钟设计(可编辑)(文档可以直接使用,也可根据实际需要修改使用,可编辑推荐下载)一、设计要求 0二、设计原理及框图 01、设计原理 02、结构框图 0三、设计过程 (1)1、模块化设计 (1)2、顶层文件生成 (2)四、仿真调试过程 (3)1、各模块时序仿真图 (3)2、仿真过程中遇到的问题 (4)五、设计体会及收获 (4)一、设计要求1、稳定的显示时、分、秒。

2、当电路发生走时误差时,要求电路有校时功能。

3、电路有整点报时功能。

报时声响为四低一高,最后一响高音正好为整点。

二、设计原理及框图1、设计原理系统框图由六个模块组成,分别为:秒、分、时计数模块,整点报时模块,LED动态显示扫描模块,调时控制模块组成。

其工作原理是:基准脉冲输入信号同时加到秒、分、时、分隔符的脉冲输入端,采用并行计数的方式,秒的进位接到分的使能端上,秒的使能借到分隔符的使能上,分得接到时的使能端上,完成秒、分、时和分隔符的循环计数。

整点报时是根据分的A、B输出同时为0时,整点报时模块输出高电平控制报时。

LED显示扫描模块根据输入的扫描信号CKDSP轮流选通秒、分、时、分隔符的8位八段数码管,LED显示译码器完成计数器输出的BCD的译码。

2、结构框图三、设计过程1、模块化设计(1)秒计时模块秒计时模块由一个60位计数器为主体构成,其输入输出端口组成为:Clk:计时时钟信号Reset:异步清零信号Setmin:分钟设置信号Enmin:使能输出信号Daout[6:0]:BCD码输出(2)分计时模块分计时模块由一个60位计数器为主体构成,其输入输出端口组成为:Clk、clk1:计时时钟信号Reset:异步清零信号Sethour:小时设置信号Enmin:使能输出信号Daout[6:0]:BCD码输出(3)时计时模块时计时模块由24位计数器为主体构成,其输入输出端口组成为:Clk:计时时钟信号Reset:异步清零信号Daout[6:0]:BCD码输出(4)显示模块系统时间输出由六个七段数码管显示。

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

《EDA技术》实训报告项目名称:数字时钟仿真设计专业班级:微机101 学号:周圣礼姓名: 100507127连云港职业技术学院信息工程学院2012年 1 月 2 日一、设计目的和背景及要求 (3)1.1 背景 (3)1.2 目的 (3)设计的指标: (3)1.3 设计要求 (3)二、设计总体方案及原理 (4)2.1 总体方案框图 (4)2.2 设计原理 (4)2.3 元器件的选择及功能分析 (4)三、单元元件设计分析 (5)3.1计数器 (5)(1)60进制计数器 (5)(2)12进制计数器 (6)(3)24进制计数器 (6)3.2 分秒组成电路 (7)3.3 校时电路 (7)3.4 整点报时电路 (8)3.5 12小时制与24小时制的切换 (10)四、总电路图 (10)五、总结 (11)1、设计过程中遇到的问题及解决办法 (11)2、实训心得 (11)一、设计目的和背景及要求1.1 背景数字时钟是采用数字电路实现对时、分、秒数字显示的计时装置,广泛应用于个人家庭,车站,码头办公室等公共场所,成为人们日常生活中不可缺少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字时钟的精度,远远超过老式钟表,钟表的数字化给人们生活带来了极大的方便,而且大大扩展了钟表原先的报时功能。

诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯等,所有这些,都是以钟表数字化为基础的。

因此,研究数字钟及扩大其应用,有着非常现实的意义。

1.2 目的本设计主要讲述简单数字钟的设计过程,主要介绍数字时钟电路的基础知识和基本功能电路,其中内容主要包括电路设计思想、电路设计基本单元及电路设计过程。

电路设计过程包括六部分的设计,震荡电路设计、分频电路设计、“时、分、秒”计数器电路设计、译码器显示电路设计、校时电路设计、整点报时电路的设计。

设计的指标:1、显示时、分、秒。

2、可以24小时制或12小时制切换。

3、具有校时功能,可以对小时和分单独校时,对分校时的时候,停止分向小时进位。

钟源可以手动输入或借用电路中的时钟。

4、具有正点报时功能,正点前10秒开始,蜂鸣器1秒响1秒停地响5次。

5、为了保证计时准确、稳定,由晶体振荡器提供标准时间的基准信号。

由于数字钟在各行各业得到极为高度的关注和越来越广泛的应用,使我对它也产生了浓厚的兴趣,刚好借助于《EDA技术》实训,动手做一做,去揭开它那神秘的面纱。

1.3 设计要求1、画出总体设计框图,以说明数字钟由哪些相对独立的功能模块组成,标出各个模块之间互相联系,时钟信号传输路径、方向和频率变化。

并以文字对原理作辅助说明。

2、设计各个功能模块的电路图,加上原理说明。

3、选择合适的元器件,在Multisim上仿真验证、调试各个功能模块的电路,在仿真验证时设计、选择合适的输入信号和输出方式,在验证电路正确性同时,输入信号和输出方式要便于电路的测试和故障排除。

4、对电路作相关仿真分析。

二、设计总体方案及原理2.1 总体方案框图进位 进位图2.1 总体框架图2.2 设计原理由振荡器产生稳定的1Hz 的脉冲信号,作为标准秒脉冲信号。

秒计数器计60后向分计数器进位,分计数器计满60后向小时进位,小时计数器可以12小时或24小时切换。

当开关打到12小时的时候,满12后清零,重新开始计时(24小时同理)。

计数器的输出直接送到带内置译码器的LED 显示器。

计时出现误差时可以用校时电路进行校时,校分,校时电路是用一个开关接到一个高电位上,当全按一下开关就传来一个高位脉冲,计数器加一。

2.3 元器件的选择及功能分析本次实训是基于Multisim2001软件平台实现的,所以原先由振荡器产生稳定的标准脉冲,由信号发生器来代替。

秒、分、时计数器由74LS160来构成。

校时电路连线用用RS 触发器实现锁定、防抖动功能。

整点报时电路有逻辑门组成,带有一个蜂鸣器。

三、单元元件设计分析3.1计数器秒信号经秒计数器,分计数器,时计数器之后,分别得到“秒”个位十位,“分”个位十位,以及“时”个位十位输出信号,然后送至显示电路。

“秒”和“分”计数器应为六十进制,“时”计数器应为二十四进制或十二进制。

采用10进制计数器74LS160来实现时间计数单元的计数功能。

74LS160是同步十进制计数器,基于Multisim仿真软件,调出74LS160芯片按F1可查看其相应的引脚功能。

(1)60进制计数器如图3-1所示,图3-1计时器由两片74160构成,采用置数法,计数器可以看做U3和U4两个部分,分别为十位和个位。

60进制,即从00开始至59,所以提取条件59。

十位为5,个位为9。

其对应的二进制数位0101,1001,为了提高电路的抗干扰能力,防止波形出乱,所以采用一个带施密特触发器的四输入与非门。

(2)12进制计数器同60进制计数器提取出条件11,即0001和0001。

如图3-2图3-2(3)24进制计数器同理得图3-3图3-33.2 分秒组成电路计数器已经完成,剩下来的工作就是逐级连接。

“分”和“秒”都是相同的74LS160D 构成的60进制计数器。

在连接时,“秒”的条件59由一个带有施密特触发器的四输入与非门输出,将其输出端接入“分”的CLK,即脉冲端,这样就可以实现“分”和“秒”的“进位”。

如图3-4图3-4组成的数字钟如图3-5所示图3-53.3 校时电路校时电路使用开关控制,分、时的校时。

A控制对时的校时,B控制对分的校时。

要求实现对分进行校时的时候,不向“时”进位。

采用自动实现对时和分的校时。

为了使校时不受到干扰,在校时电路中还加入了防抖动电路,用于消除输入脉冲的不稳定性,确保校时和计时的稳定与准确。

其主要原理:先截断正常的计数通路,然后再将校正频率加到校正的单元的输入端,校正好后,再转入正常计时状态即可。

如图3-6所示。

图3-63.4 整点报时电路电路应该在正点10秒前报时,蜂鸣器一秒响一秒停的响五次。

即在59分50秒到59分59秒期间,报时电路控制信号完成报时,隔一秒响一次。

也就是50、52、54、56、58秒响。

当时间在59分50秒至59分59秒期间,可以观察到“分”一直是59,是不变的,即十位为0101,个位为1001;因此可将分计数器的十位QC、QA,个位的QD、QA接入一个四输入的与门中。

50~59秒之间,“秒”的十位是不变的,即一直是0101,故将“秒”十位的QC、QA接入到一个二输入的与门中。

接下来就是“秒”个位的状态问题。

根据其要求,一秒响一秒停,四个输出端,所以得其真值表为,如真值表3-7所示真值表3-7运用Multisim 上的逻辑转换仪可以得到D =输出Q ,因为逻辑转换仪中的输入正好与实际电路中的输出端相反,所以实际A =输出Q 。

即“秒”个位的QA 接入一个与非门。

将以上三个电路同时接入一个与门,与门输出端接一个蜂鸣器并接一个灯显示。

如图3-8所示。

图3-83.5 12小时制与24小时制的切换切换功能比较简单了,前面已经提取出12进制,24进制的条件,只需用一个单刀双掷开关即可。

如图3-9所示图3-9四、总电路图总图五、总结1、设计过程中遇到的问题及解决办法首先遇到的问题就是在“秒”和“分”进位方面,刚开始提取计数器循环条件时,用到的是与非门。

但是在进位的时候“秒”的十位为4的时候就向“分”发出脉冲信号。

经过查阅相关资料,调用74LS13D带有施密特触发器的与非门。

施密特触发器有“回差特性”能够对波整形,提高电路的抗干扰能力。

其次就是在把校时器接入电路中的问题,主要表现为,接入后,时分不工作,或只有其中一个工作。

但是经过逐一检查,判断高低电平以及利用相关仪器检测信号等。

最终解决问题。

2、实训心得通过一周的《EDA技术》实训,远远不能满足我们对知识的需求。

这门课是基于Multisim 等电路仿真软件进行的。

可以看出,这是的软件和硬件已经很模糊,即使是硬件也能在软件的平台上实现。

更方便,危险性大大降低。

对于这门课,细细体会得知,这更是锻炼我们逻辑思维的能力。

以及锻炼我们解决问题的能力。

在整个实训过程中,当拿到这个实训项目。

我首先在在脑海中构想出一个项目的总框架;其次想到把这个整体划分为若干个小单元,然后各个击破,当然一次完成一个整体很难,但是先完成一个个的小单元是比较简单的;最后再将这些小的单元连接成一个整体。

这些就锻炼出我们做事的能力以及考虑一件事情的全面性。

完成后,我们需要调试,调试中会遇到各种问题,这时我们要发现问题并解决问题。

解决问题有很多种方法,可以就一个问题,顺藤摸瓜,最终找到其错误的根源。

无形中锻炼了我们分析问题和解决问题的能力。

其实,一个实训项目锻炼了一个人多方面的能力,如逻辑思维、分析问题、解决问题、独立思考、查阅资料的能力等等。

这门课入门后,就不是多么难。

对于一个芯片,了解其引脚相关功能,查看其真值表。

我们就可以像玩游戏一样将其搭建成各种实用功能的电路。

说道最后,还是需要我们踏踏实实学习知识,多锻炼逻辑思维能力,对其有深厚的兴趣,深入其中,用严谨的科学态度对待一切,克服困难,勇往直前。

11。

相关文档
最新文档