当前位置:文档之家› EDA实验报告 数字时钟设计

EDA实验报告 数字时钟设计

EDA实验报告  数字时钟设计
EDA实验报告  数字时钟设计

1.引言

随着科学技术的迅猛发展,在计算机技术的推动下电子技术获得了飞速的发展。电子产品几乎渗透到了工业、生活的各个领域,其中集成电路的设计正朝着速度快、性能高、容量大、体积小和微功耗的方向发展。基于这种情况,可编程逻辑器件的出现和发展大大改变了传统的系统设计方法。可编程逻辑器件和相应的设计技术主要体现在三个方面:一是可编程逻辑器件的芯片技术;二是适用于可逻辑编程器件的硬件编程技术,三是可编程逻辑器件设计的EDA开发工具,它主要用来进行可编程逻辑器件应用的具体实现。在本设计中采用了集成度较高的FPGA 可编程逻辑器件,选用了VHDL硬件描述语言和Quartus II开发软件进行设计。VHDL硬件描述语言在电子设计自动化( EDA)中扮演着重要的角色,由于采用了具有多层次描述系统硬件功能的“自顶向下”(Top -Down)的全新设计方法,使设计师们摆脱了大量的辅助设计工作,而把精力集中于创造性的方案与概念构思上,用新的思路来发掘硬件设备的潜力,从而极大地提高了设计效率,缩短了产品的研制周期。Quartus II软件是集成了编辑器、仿真工具、检查/分析工具和优化/综合工具的这些所有开发工具的一种集成的开发环境,通过该开发环境能够很方便的检验设计的仿真结果以及建立起与可编程逻辑器件的管脚之间对应的关系。

EDA技术是以计算机为工具,根据硬件描述语言HDL完成的设计文件,自动地完成逻辑编译、化简、分割、综合及优化、布局布线。仿真以及对于特定目标芯片的适配编译和编程下载等工作。典型的EDA工具中必须包含两个特殊的软件包,即综合器和适配器。综合器的功能就是将设计者在EDA平台上完成的针对某个系统项目的HDL、原理图或状态图形描述,针对给定的硬件系统组件,进行编译、优化、转换和综合,最终获得我们欲实现功能的描述文件。综合器在工作前,必须给定所要实现的硬件结构参数,它的功能就是将软件描述与给定的硬件结构用一定的方式联系起来。综合过程就是将电路的高级语言描述转换低级的。可与目标器件FPGA/CPLD相映射的网表文件。适配器的功能是将由综合器产生的王表文件配置与指定的目标器件中,产生最终的下载文件,如JED文件。适配所选定的目标器件(FPGA/CPLD芯片)必须属于在综合器中已指定的目标器件系列。

2.设计概述

数字时钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,数字时钟可植入自动控制、测试等系统内部,作为系统的时钟源,可为系统提供定时信号或中断控制的时间基准,具有广泛的用途。由于数字集成电路的发展使得数字时钟的精度远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的单一报时功能。加入了一些诸如自动报时、定时闹钟等功能。这些都是以钟表数字化为基础的。因此,研究数字时钟及扩大其应用,有着非常现实的意义。

数字时钟的设计方法有很多种,包括基于单片机的硬件设计、基于各种描述语言的软件设计,本设计采用VHDL语言来设计数字时钟有着多方面的优越性,通过把整个设计分为多个模块依次来实现,减少了众多重复性步骤,合理化了设计过程,使得设计更加省时、快捷,提高了设计效率。

目前,电子系统的EDA技术正从着眼与数字逻辑向模拟电路和数模混合电路

的方向发展,21世纪是EDA技术飞速发展的时期,可以预见EDA技术将会对今后电子设计的发展产生重大的影响。随着电子技术的发展,集成电路经历了从小规模、中规模到大规模和超大规模集成的过程,应用系统向小型化、快速化、大容量、重量轻的方向发展;数字系统的设计也已从芯片组合化设计走向单片系的设计。随着微电子和计算机领域的原理创新、技术创新、应用创新层出不穷,许多特定功能的专用集成电路应用日益广泛,用户迫切希望根据自身设计要求自行构造逻辑功能的数字电路,复杂可编程逻辑器件FPGA顺应了这一新的需要。它能将大量逻辑功能集成于一个芯片中,其规模可达几十万或上百门以上,从而电子设计自动化EDA技术应运而生,它是电子产品及系统开发领域中一场革命性变革,EDA技术极大地推动了科学技术的发展。EDA技术的发展使硬件电路设计软件化,降低了硬件电路设计的难度,使设计周期和产品的开发时间缩短,设计更新变成了程序的修改,适应了千变万化的市场潮流。它的设计输入可以使用硬件描述语言(HDL),采用“自顶向下”的设计方法,为设计者提供了一个高效、便捷的设计环境,同时也为充分发挥设计人员的创造性提供了条件。EDA技术主要应用于数字电路的设计,目前它在中国的应用多数是用在FPGA的设计中。

EDA技术是现代电子信息工程领域的一门新技术,它是在先进的计算机工作平台上开发出来的一套电子系统设计的软硬件工具,并提供了先进的电子系统设计方法。20世纪90年代,国际上电子和计算机技术较先进的国家,一直在积极探索新的电子电路设计方法,并在设计方法、工具等方面进行了彻底的变革,取得了巨大成功。在电子技术设计领域,可编程逻辑器件的应用,已得到广泛的普及,这些器件为数字系统的设计带来了极大的灵活性。这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA技术的迅速发展。目前,电子系统的EDA技术正从着眼与数字逻辑向模拟电路和数模混合电路的方向发展,21世纪是EDA技术飞速发展的时期,EDA技术将会对今后电子设计的发展产生重大的影响。

3.开发工具简介

3.1VHDL语言简介

3.1.1 VHDL发展史

VHDL语言诞生于1982年,翻译成中文就是超高速集成电路硬件描述语言。最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言。1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。自IEEE公布了VHDL的标准版本,IEEE-1076之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,主要是应用在数字电路的设计中。现在,VHDL和Verilog HDL作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。有专家认为在新的世纪中,VHDL与Verilog语言将承担起大部分的数字系统设计任务。目前,它在中国的应用多数是用FPGA/CPLD的设计中。

VHDL主要用于描述数字系统的结构、行为、功能和接口。除了含有许多具有

硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。

3.1.2 VHDL设计特点

应用VHDL语言进行系统设计,有以下几方面的特点:

1)功能强大:VHDL具有功能强大的语言结构。它可以用明确的代码描述复杂的控制逻辑设计。并且具有多层次的设计描述功能,支持设计库和可重复使用的元件生成。VHDL是一种设计、仿真和综合的标准硬件描述语言。

2)可移植性:VHDL语言是一个标准语言,其设计描述可以为不同的EDA工具支持。它可以从一个仿真工具移植到另一个仿真工具,从一个综合工具移植到另一个综合工具,从一个工作平台移植到另一个工作平台。此外,通过更换库再重新综合很容易移植为ASIC设计。

3)独立性:VHDL的硬件描述与具体的工艺技术和硬件结构无关。设计者可以不懂硬件的结构,也不必管最终设计实现的目标器件是什么,而进行独立的设计。程序设计的硬件目标器件有广阔的选择范围,可以是各系列的CPLD、FPGA 及各种门阵列器件。

4)可操作性:由于VHDL具有类属描述语句和子程序调用等功能,对于已完成的设计,在不改变源程序的条件下,只需改变端口类属参量或函数,就能轻易地改变设计的规模和结构。

5)灵活性:VHDL最初是作为一种仿真标准格式出现的,有着丰富的仿真语句和库函数。使其在任何大系统的设计中,随时可对设计进行仿真模拟。所以,即使在远离门级的高层次,设计者就能够对整个工程设计的结构和功能的可行性进行查验,并做出决策。

3.1.3 VHDL设计结构

VHDL描述数字电路系统设计的行为、功能、输入和输出。它在语法上与现代编程语言相似,但包含了许多与硬件有特殊关系的结构。VHDL将一个设计称为一个实体Entity(元件电路或者系统),并且将它分成外部的可见部分(实体名连接)和内部的隐藏部分(实体算法实现)。当定义了一个设计的实体之后,其他实体可以利用该实体,也可以开发一个实体库。所以,内部和外部的概念对系统设计的VHDL是十分重要的。外部的实体名或连接由实体声明来描述。而内部的实体算法或实现则由结构体来描述。结构体可以包含相连的多个进程或者组建等其他并行结构,需要说明的是它们在硬件中都是并行运行的。

3.1.4 VHDL设计步骤

采用VHDL的系统设计,一般有以下6个步骤:

1)按照要求的功能模块划分;

2)VHDL的设计描述(设计输入);

3)代码仿真模拟(前仿真);

4)计综合、优化和布局布线;

5)布局布线后的仿真模拟(后仿真);

6)设计的实现(下载到目标器件)。

3.2Quartus II软件简介

3.2.1 Quartus II软件介绍

Quartus II 是Alera公司推出的一款功能强大,兼容性最好的EDA工具软件。该软件界面友好、使用便捷、功能强大,是一个完全集成化的可编程逻辑设计环境,具有开放性、与结构无关、多平台完全集成化丰富的设计库、模块化工具、支持多种硬件描述语言及有多种高级编程语言接口等特点[16]。Quartus II 支持原理图输入与 Verilog HDL 和VHDL输入混合设计,它除了承接原来的Max+Plus II 软件的全部设计功能和器件对象外,还增加了许多新功能和新的FPGA器件系列。它可对设计进行功能仿真,对数字电路的设计实现同步模拟分析和时序仿真。这种同步模拟分析、时序仿真在数字电路的教学中可以起到很好的辅助作用。

Quartus II是Altera公司推出的CPLD/FPGA开发工具,Quartus II提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,包括:可利用原理图、结构框图、VerilogHDL、AHDL和VHDL完成电路描述,并将其保存为设计实体文件;芯片(电路)平面布局连线编辑;功能强大的逻辑综合工具;完备的电路功能仿真与时序逻辑仿真工具;定时/时序分析与关键路径延时分析;可使用SignalTap II逻辑分析工具进行嵌入式的逻辑分析;支持软件源文件的添加和创建,并将它们链接起来生成编程文件;使用组合编译方式可一次完成整体设计流程;自动定位编译错误;高效的期间编程与验证工具;可读入标准的EDIF网表文件、VHDL网表文件和Verilog网表文件;能生成第三方EDA软件使用的VHDL网表文件和Verilog网表文件。

3.2.2 Quartus II软件设计流程

1)设计输入:

设计文件的输入方法有原理图输入、文本输入、内存编辑以及由第三方EDA 工具产生的网表输入、格式输入,生成方法不同,生成的文件格式也有所不同。在图形设计文件中,Quartus II软件为了实现不同的逻辑功能提供了大量的基本单元符号和宏功能模块,在图形编辑器中可以直接调用;为了适应自顶向下的设计,设计者可以使用和Verilog HDL以及Tcl脚本输入文本型设计。

2)项目编译:

项目编译主要完成设计项目的检查和逻辑综合,将项目最终设计结果生成器件的下载文件,并为模拟和编程产生输出文件。

3)仿真验证和时序分析:

在把经过编译的输入设计编程或配置到器件之前,可以通过Quartus II软件的仿真器对文件进行全面测试,保证设计在各种可能的条件下都有正确的响应。根据所需的信息类型,可以进行功能仿真和时序仿真。Quartus II时序分析器允许分析设计中所有逻辑的性能,得出时序分析结果,如建立时间、保持时间、引脚到引脚延迟、最大时钟频率、延迟时间及其它时序特征,并协助引导适配器满足设计中的时序要求。

4)器件编程:

成功编译了设计工程之后,编译器的Assembler模块自动将适配过程的器件、逻辑单元和引脚分配信息转换为器件的编程图像,并以.sof形式保存,Quartus II软件的编程器(programmer)使用该文件就可对器件进行编程配置。

4.数字时钟实验要求和原理

4.1实验要求

在Quartus II软件开发环境下,使用VHDL描述语言、结合FPGA开发板编译和仿真数字时钟;要求时钟能进行基本的计时功能,按照:“时:分:秒”来显示时间;能引入秒脉冲进行校时、校分,并可用reset信号给秒清零;具有整点报时功能,当计时到59分50秒时蜂鸣器开始鸣响,四声低音,最后一声高音。

4.2实验原理

根据实验要求,采用自顶向下的设计方法,层次化设计概念,将此数字时钟分成若干模块,设计时首先用VHDL语言编写各个功能模块,在 Quartus II开发环境下分别进行编译、仿真,然后再用顶层文件将各功能模块连接起来。规定某一模块的功能和各模块之间的接口.然后将各模块组合起来构成系统框图。根据设数字时钟的功能可以把整体设计分为:分频模块clk、秒计时模块second、分计时模块minute、小时及时模块hour及报时模块alarm,根据总体方案对各模块分别进行设计、仿真和下载,数字时钟的总体结构框图如图1所示

图1 数字时钟结构框图

分频模块clk将输入的5MHz时钟信号分频后获得1Khz,500hz,1hz的矩形波。其中1Khz和500hz的音频信号用于报时,1Hz的信号用于计时、校时和校分。

秒计时模块second和分计时模块minute均为60进制计数器。RESET信号用于秒清零,SETM为校分控制信号,当SETM=‘1’时,将1hz信号引入分计时器minute进行快速计分;SETH为校时控制信号,当SETH=‘1’时,将1hz信号引入时计时器hour进行快速校时。报时模块alarm根据当前的计时值确定是否鸣响,当计时值为59分50秒时蜂鸣器开始鸣响,四声低音,最后一声高音。

5.数字时钟模块化设计

需要设计的数字时钟由上述5个模块组成,设计时,首先用VHDL语言编写各个底层功能模块,然后在Quartus II开发环境下分别进行编译、仿真, 然后再用顶层文件将各功能模块连接起来,再进行进一步编译、仿真、下载。以下介绍系统中各模块的具体功能和设计方法。

5.1分频模块clk设计

本设计使用的FPGA开发板中使用的芯片是Cyclone II EP2C35F484C8,使用的是5MHz的时钟脉冲输入,根据电路的具体设计需要,对其进行分频设计。

如图2所示为系统的分频模块,其中模块clk1管脚输出为1hz的时钟脉冲,得出用于计数模块和报警模块正常工作的时钟信号,在clk1k管脚输出为一个1khz的时钟脉冲,作用与动态扫描模块的正常工作。

输入管脚:clk为5Mhz脉冲输入;

输出管脚:clk1s为1hz脉冲输出;

clk1k为1khz脉冲输出;

clk500为500hz脉冲输出

分频模块clk源代码clk.vhd如下:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY clk IS

PORT (clk : IN STD_LOGIC; --5Mhz信号输入

clk500 : OUT STD_LOGIC; --500hz音频信号输出

clk1k : OUT STD_LOGIC; --1khz音频信号输出

clk1s : OUT STD_LOGIC); --1hz脉冲信号输出

END clk;

ARCHITECTURE fenpin OF clk IS

SIGNAL x : STD_LOGIC;

SIGNAL y : STD_LOGIC;

SIGNAL z : STD_LOGIC;

BEGIN

PROCESS(clk)

VARIABLE cnt : INTEGER RANGE 0 TO 2499;

BEGIN --分频输出500hz音频信号

IF clk'EVENT AND clk='1' THEN

IF cnt<2499 THEN

cnt := cnt+1;

ELSE cnt := 0;

x <= NOT x;

END IF;

END IF;

clk1k <= x;

END PROCESS;

PROCESS(clk)

VARIABLE cnt : INTEGER RANGE 0 TO 4999;

BEGIN --分频输出1khz音频信号

IF clk'EVENT AND clk='1' THEN

IF cnt<4999 THEN

cnt := cnt+1;

ELSE cnt :=0;

y <= NOT y;

END IF;

END IF;

clk500 <= y;

END PROCESS;

PROCESS(clk)

VARIABLE cnt : INTEGER RANGE 0 TO 2499999;

BEGIN --分频输出1hz脉冲信号

IF clk'EVENT AND clk = '1' THEN

IF cnt<2499999 THEN

cnt := cnt+1;

ELSE cnt := 0;

z <= NOT z;

END IF;

END IF;

clk1s <= z;

END PROCESS;

END fenpin;

5.2秒计时模块second设计

秒计时模块如图3所示,其实质是一个六十进制计数器,其中:输入管脚: clk1s为1hz的时钟脉冲;

reset为秒清零复位信号;

输出管脚:sec1[3..0]为秒计时器的低位;

sec2[3..0]为秒计时器的高位;

seco为秒计时模块输出的进位信号。

图3

秒计时模块second源代码second.vhd如下:

Library ieee;

Use ieee.std_logic_1164.all;

Use ieee.std_logic_arith.all;

Use ieee.std_logic_unsigned.all;

Entity second is

Port(clk1s : in std_logic; --1hz时钟输入信号

reset : in std_logic; --秒计时器清零

sec2,sec1 : buffer std_logic_vector(3 downto 0); --秒计时器的高/低位 seco : out std_logic); --秒进位输出

End;

Architecture A of second is

Begin

Process(clk1s,reset)

Begin

If reset = '0' then --将秒计时器清零

sec2 <= "0000";

sec1 <= "0000";

seco <= '0';

Elsif clk1s'event and clk1s = '1' then

If(sec1 = "1001" and sec2 = "0101") then

sec2 <= "0000";

sec1 <= "0000"; --计时到59s归零

seco <= '1'; --计时到59s产生进位

elsif(sec1 = "1001") then

sec1 <= "0000";

sec2 <= sec2+1;

seco <= '0';

else sec1 <= sec1+1;

seco <= '0';

End if;

End if;

End Process;

End;

5.3分计时模块minute设计

分计时模块如图4所示,其实质也是一个六十进制计数器,其中:

输入管脚:clkm为分计时模块的秒进位输入信号;

clk1s为1hz的校分时钟输入脉冲;

setm为校分控制信号。

输出管脚:min1[3..0]为分计时器的低位;

min2[3..0]为分计时器的高位;

mino为分计时模块输出的分进位信号.

图4

分计时模块minute源代码minute.vhd如下:

Library ieee;

Use ieee.std_logic_1164.all;

Use ieee.std_logic_arith.all;

Use ieee.std_logic_unsigned.all;

Entity minute is

Port(clkm : in std_logic; --秒进位信号输入

clk1s : in std_logic; --1hz校分时钟输入信号

setm : in std_logic; --校分控制信号

min2,min1 : buffer std_logic_vector(3 downto 0); --分计时器高/低位mino : out std_logic); --输出分进位信号

End;

Architecture A of minute is

Signal clkx : std_logic;

Begin

Pclkm : Process(clkm,clk1s,setm)

Begin --根据是否校分选择计时时钟

If setm = '1' then clkx <=clk1s; else clkx <=clkm;

End if;

End Process;

Pcontm : Process(clkx)

Begin --分计时器

if clkx'event and clkx = '1' then

If (min1 = "1001" and min2 = "0101") then

min1 <= "0000";

min2 <= "0000"; --计时到59min后归零

mino <= '1'; --计时到59分产生进位

elsif (min1 = "1001") then

min1 <= "0000";

min2 <= min2+1;

mino <= '0';

else min1 <= min1+1;

mino <= '0';

End if;

End if;

End Process;

End;

5.4小时计时模块hour设计

小时计时模块如图5所示,其实质也是一个六十进制计数器,其中:输入管脚:clkh为小时计时模块的分进位输入信号;

clk1s为1hz的校时时钟输入脉冲;

seth为校时控制信号。

输出管脚:hou1[3..0]为小时计时器的低位;

hou2[3..0]为小时计时器的高位。

图5

小时计时模块hour源代码hour.vhd如下:

Library ieee;

Use ieee.std_logic_1164.all;

Use ieee.std_logic_arith.all;

Use ieee.std_logic_unsigned.all;

Entity hour is

Port(clkh : in std_logic; --分进位信号输入

clk1s : in std_logic; --1hz小时时钟信号输入

seth : in std_logic; --校时控制信号

hou2,hou1 : buffer std_logic_vector(3 downto 0)); --小时计数器高/低位End;

Architecture A of hour is

Signal clky : std_logic;

Begin

Pclkh : Process(clkh,clk1s,seth)

Begin --根据是否校时选择计时时钟

If seth = '1' then clky <= clk1s; else clky <= clkh;

End if;

End process;

Pconth : Process(clky)

Begin --小时计时器

if clky'event and clky = '1' then

If(hou1 = "0011" and hou2 = "0010") then

hou1 <= "0000";

hou2 <= "0000"; --重复计数并产生进位

elsif (hou1 = "1001") then

hou1 <= "0000";

hou2 <= hou2+1;

else hou1 <= hou1+1;

End if;

End if;

End Process;

End;

5.5报时模块alarm设计

报时模块如图6所示,其作用是在时钟整点的时候输出一个报时信号,信号作用在蜂鸣器上,产生外部响声,起到报时的作用,其中:

输入管脚:clk1s为1hz时钟输入信号;

clk500为500hz音频输入信号;

clk1k为1khz音频输入信号;

sec2,sec1 为秒计时值输入;

min2,min1为分计时值输入;

输出管脚:alarm 为报时信号输出。

图6

报时模块alarm源代码alarm.vhd如下:

Library ieee;

Use ieee.std_logic_1164.all;

Use ieee.std_logic_arith.all;

Use ieee.std_logic_unsigned.all;

Entity alarm is

Port(clk500 : in std_logic; --1hz时钟信号输入

clk1k : in std_logic; --500hz音频信号输入

clk1s : in std_logic; --1khz音频信号输入

sec2,sec1 : in std_logic_vector(3 downto 0); --秒计时值输入

min2,min1 : in std_logic_vector(3 downto 0); --分计时值输入 alarm : out std_logic); --输出报时信号

End;

Architecture A of alarm is

Begin

Process(clk1s)

VARIABLE flag500 : std_logic; --输出500hz信号时的标志

VARIABLE flag1k : std_logic; --输出1khz信号时的标志

begin

if clk1s'event and clk1s = '1' then

If (min1 = "1001" and min2 = "0101" and sec2="0101") then

--在59分50秒开始设置高/低音频信号标志

case sec1 is

when "0000" => flag500 := '1';

when "0010" => flag500 := '1';

when "0100" => flag500 := '1';

when "0110" => flag500 := '1';

when "1001" => flag1k := '1';

when others => flag500 := '0'; flag1k := '0';

End case;

else flag500 := '0'; flag1k := '0';

End if;

end if;

if flag500 = '1' then alarm <= clk500; --输出500hz报时信号

elsif flag1k = '1' then alarm <= clk1k; --输出1khz报时信号

else alarm <= '0';

end if;

End Process;

End;

5.6数字时钟顶层文件timer.bdf设计

数字时钟顶层电路图(timer.bdf)如图7所示,通过将各个功能模块打包成元件,并通过连线将各功能模块连接起来构成顶层文件。

图7数字时钟顶层电路图(timer.bdf)

6.数字时钟各模块仿真

仿真是使用VHDL语言进行设计的重要组成部分,也是对设计的电路进行功能和性能测试的有效手段。EDA工具提供了强大且与电路实时行为相吻合的精确硬件系统测试工具。

由于本设计采用了分模块化设计的方法,所以仿真的时候需要先进行各底层模块的独立仿真,最后进行整个电子时钟的时序仿真,将所有仿真图综合起来验证系统功能的完整性。

6.1分频模块clk仿真

分频模块clk的时序仿真图如图8所示,考虑到5Mhz和1khz,500hz都较大,为了便于观察,将频率整体缩小到1/250,从图中可以看出,输入为5Mhz/250时,输出确实为1khz/250,500hz/250和1hz/250。

图8 分频模块clk时序仿真

6.2秒计时模块second仿真

秒计时模块second的时序仿真图如图9所示,从图中可以看出,输入为1hz 的时钟信号,reset为低电平有效的复位信号,秒计时器的低位从0计到9后向高位产生进位,当计时到59秒时,向分计时模块产生进位,然后重新开始进行秒计时,实现60秒计时制。

图9 秒计时模块second时序仿真

6.3分计时模块minute仿真

分计时模块minute的时序仿真图如图10所示,从图中可以看出,输入为1hz的时钟信号,setm为高电平有效的校分信号,分计时器的低位从0计到9后向高位产生进位,当计时到59分时,向小时计时模块产生进位,然后重新进行分计时,实现60分钟计时制。

图10 分计时模块minute时序仿真

6.4小时计时模块hour仿真

小时计时模块hour的时序仿真如图11所示,从图中可以看出,输入为1hz 的时钟信号,seth为高电平有效的校时信号,小时计时器的低位从0计到9后向高位产生进位,当计时到23时,高低位都归0,重新进行小时计时,实现24小时计时制。

图11 小时计时模块hour时序仿真

6.5报时模块alarm仿真

报时模块alarm的时序仿真如图12所示,从图中可以看出,当计时到59分50秒时,蜂鸣器开始报时,即有整点报时功能,报时输出为前四声低音,最后一声高音。

图12报时模块alarm时序仿真

7.硬件测试

本实验采用的是杭州康芯有限公司的GW48-PK4 SOPC/EDA实验开发系统,核心芯片为Cyclone II EP2C35FBGA 484芯片。

实验硬件测试时使用开发系统的模式5,用短路冒从CLK9获取5Mhz的时钟脉冲信号,并将核心板右下方的短路冒置于CLK0位置,按下键1(相应指示灯亮),可以将秒计时器清零,按下键2(相应指示灯亮)可以引入秒时钟脉冲校分,按下键3(相应指示灯亮)可以引入秒时钟脉冲校时。实验调试过程如下:先按下键1(相应指示灯亮)是秒计时器处于清零状态,在按下键2(相应指示灯亮)引入秒时钟脉冲校分到“59”时,再次按下键2(相应指示灯灭),还可以调试一下小时,然后按下键1(相应指示灯灭)开始正常计时,当秒计时器显示“50”的时候,蜂鸣器开始报时,四声低音最后一声高音。到秒计时器回到“00”的时候报时结束,小时位加1了,分钟位也回到了“00”,调试完毕。

8.实验总结

此次实验是第一次做EDA实验,在学习使用软硬件的过程中,自然遇到了很多不懂的问题,在老师的指导和同学们的相互帮助下,我终于解决了实验过程遇到的很多难题,成功的完成了实验,实验结果和预期的结果也是一致的,在这次实验中,我学会了如何使用Quartus II软件,如何分层设计电路,如何编写VHDL 程序,如何对实验程序进行编译和仿真和对程序进行硬件测试。明白了一定要学会看开发板资料以清楚如何给程序的输入输出信号配置管脚。这次实验为我今后对EDA和VHDL语言的进一步学习奠定了更好的理论基础和应用基础。

[1]潘松等编著.EDA技术与VHDL(第2版).北京:清华大学出版社,2007

[2]张静秋等编著.EDA技术实验教程.长沙:中南大学出版社,2011

数字电子钟课程设计实验报告

中北大学 信息与通信工程学院 通信工程专业 《电子线路及系统》课程设计任务书2016/2017 学年第一学期 学生姓名:张涛学号: 李子鹏学号: 课程设计题目:数字电子钟的设计 起迄日期:2017年1月4日~2017年7月10日 课程设计地点:科学楼 指导教师:姚爱琴 2017年月日 课程设计任务书

中北大学 信息与通信工程学院 通信工程专业 《电子线路及系统》课程设计开题报告2016/2017 学年第一学期 题目:数字电子钟的设计 学生姓名:张涛学号: 李子鹏学号:

指导教师:姚爱琴 2017 年 1 月 6 日 中北大学 信息与通信工程学院 通信工程专业 《电子线路及系统》课程设计说明书2016/2017 学年第二学期 题目:数字电子钟的设计 学生姓名:张涛学号: 李子鹏学号: 指导教师:姚爱琴 2017 年月日

目录 1 引言 (6) 2 数字电子钟设计方案 (6) 2.1 数字计时器的设计思想 (6) 2.2数字电路设计及元器件参数选择 (6) 2.2.2 时、分、秒计数器 (7) 2.2.3 计数显示电路 (8) 2.2.5 整点报时电路 (10) 2.2.6 总体电路 (10) 2.3 安装与调试 (11) 2.3.1 数字电子钟PCB图 (11) 3 设计单元原理说明 (11) 3.1 555定时器原理 (12) 3.2 计数器原理 (12) 3.3 译码和数码显示电路原理 (12) 3.4 校时电路原理 (12) 4 心得与体会 (12) 1 引言 数字钟是一种用数字电子技术实现时,分,秒计时的装置,具有较高的准确性和直观性等各方面的优势,而得到广泛的应用。此次设计数字电子钟是为了了解数字钟的原理,在设计数字电子钟的过程中,用数字电子技术的理论和制作实践相结合,进一步加深数字电子技术课程知识的理解和应用,同时学会使用Multisim电子设计软件。 2数字电子钟设计方案 2.1 数字计时器的设计思想 要想构成数字钟,首先应选择一个脉冲源——能自动地产生稳定的标准时间脉冲信号。而脉冲源产生的脉冲信号地频率较高,因此,需要进行分频,使得高频脉冲信号变成适合于计时的低频脉冲信号,即“秒脉冲信号”(频率为1Hz)。经过分频器输出的秒脉冲信号到计数器中进行计数。由于计时的规律是:60秒=1分,60分=1小时,24小时=1天,就需要分别设计60进制,24进制计数器,并发出驱动信号。各计数器输出信号经译码器、驱动器到数字显示器,是“时”、“分”、“秒”得以数字显示出来。 值得注意的是:任何记时装置都有误差,因此应考虑校准时间电路。校时电路一般

EDA设计II实验报告——多功能数字钟

『EDA设计II』 课程实验报告 姓名 学号 学院 指导教师 时间 2011年 05月

多功能数字钟 摘要:本实验利用Quartus II软件设计多功能数字钟并下载到Smart SOPC实验系统,实现校分、校时、清零、保持和整点报时等多种基本功能,以及闹钟等附加功能。本实验首先通过Quartus II 软件对各模块进行原理图设计,并进行仿真调试,最后下载至实验平台验证其功能。 关键词:多功能数字钟Quartus II软件仿真封装校分校时清零保持整点报时闹钟 Abstract:The experiment is to design a multi-purpose digital clock by Quartus II and then download to the test system of Smart SOPC. It can realize many functions such as minute adjusting, hour adjusting, resetting, keeping and reporting time on integral hour. Apart from this, it can also be used as a alarm clock. First of all, we design the schematic diagram of every part. In addition, we simulate through Quartus II. At last, we download it to the tests platform and test the function. Key words:multi-purpose digital clock Quartus II simulate seal minute- adjusting hour adjusting resetting keeping reporting time on integral hour alarm clock

eda数字时钟实验报告

EDA数字时钟电工电子实习 实验报告 姓名 班级 学号20

一、实验目的: 1、掌握多位计数器相连的设计方法。 2、掌握十进制、六十进制和二十四进制计数器的设计方法。 3、巩固数码管的驱动原理及编程方法。 4、掌握CPLD技术的层次化设计方法。 二、实验要求: 基本要求:具有时、分、秒计数显示功能,以二十四小时循环计时。 扩展要求:具有整点报时功能。 三、实验原理: 计数时钟由模60秒计数器、模60分计数器、模24小时计数器、蜂鸣器(用于整点报时)、分/时设定模块、输出显示模块构成,秒计数模块的进位输出为分钟计数模块的进位输入,分钟计数模块的进位输出为小时计数模块的进位输入。 74163功能简介:

图1 图2 由图1可知,74163的脉冲上升沿的时候工作。 四、实验过程

1.模60计数器(如图3) 图3 由74163实现计数功能,第一片74163实现10进制,即做0-9的循环,9即二进制的1001,化简可得当q[0]与q[3]同时为1的时候进行清零。第二片74163实现6进制,即做0-5的循环,5即二进制的111,化简可得当q[4]与q[6]同时为1的时候进行清零,同时第一片74163的进位端作为第二片的脉冲端。这样就可实现60进制。60进制计数器用于秒计数器和分计数器,秒个位的进位端作为秒十位的脉冲端秒十位的进位端作为分个位的脉冲端,分个位的进位端作为分十位的脉冲端。 2.模24计数器(如图4) 图4 分十位的进位端作为时个位的脉冲端,时个位的进位端作为时十位的脉冲端。因为24进制的特殊性,当十位是0和1的时候,个位做十进制循环,即0-9,9的二进制为1001;当十位是2的时候,个位做0-3的循环。而十位做0-2的循环。2的二进制为0010,3的二进制为0011。所以第一片74163不仅要在q[14]与q[17]同时为1的时候清零,还要在第二片74163的q[19]、第一片的q[14]、q[15]同时为1(即23时)做清零。第二片是3进制,在q[19]=1的时候进行清零。

EDA实验实验报告

数字eda实验实验报告 学院:计算机科学与工程学院专业:通信工程学 号: 0941903207 姓名:薛蕾指导老 师:钱强 实验一四选一数据选择器的设计 一、实验目的 1、熟悉quartus ii软件的使用。 2、了解数据选择器的工作原理。 3、熟悉eda开发 的基本流程。 二、实验原理及内容 实验原理 数据选择器在实际中得到了广泛的应用,尤其是在通信中为了利用多路信号中的一路, 可以采用数据选择器进行选择再对该路信号加以利用。从多路输入信号中选择其中一路进行 输出的电路称为数据选择器。或:在地址信号控制下,从多路输入信息中选择其中的某一路 信息作为输出的电路称为数据选择器。数据选择器又叫多路选择器,简称mux。 4选1数据 选择器: (1)原理框图:如右图。 d0 、d1、d2、d3 :输入数据 a1 、a0 :地址变量 由地址码决定从4路输入中选择哪1路输出。 (2)真值表如下图: (3)逻辑图 数据选择器的原理比较简单,首先必须设置一个选择标志信号,目的就是为了从多路信 号中选择所需要的一路信号,选择标志信号的一种状态对应着一路信号。在应用中,设置一 定的选择标志信号状态即可得到相应的某一路信号。这就是数据选择器的实现原理。 三.实验内容 1、分别采用原理图和vhdl语言的形式设计4选1数据选择器 2、对所涉及的电路进行 编译及正确的仿真。电路图: 四、实验程序 library ieee; use ieee.std_logic_1164.all; entity mux4 is port( a0, a1, a2, a3 :in std_logic; s :in std_logic_vector (1 downto 0); y :out std_logic ); end mux4; architecture archmux of mux4 is begin y <= a0 when s = 00 else --当s=00时,y=a0 a1 when s = 01 else --当s=01时,y=a1 a2 when s = 10 else --当s=10时,y=a2 a3; --当s取其它值时,y=a2 end archmux; 五、运行结果 六.实验总结 真值表分析: 当js=0时,a1,a0取00,01,10,11时,分别可取d0,d1,d2,d3. 篇二:eda实验报告模版 《eda技术》实验报告

EDA数字钟实验报告

目录 1.设计思路—————————————————————(3) 1.1总体结构——————————————————(3) 2.方案论证与选择——————————————————(3) 3.单元模块设计部分—————————————————(3)3.1 CNT10 模块的设计———————————————(4)3.2 CNT6 模块的设计———————————————(5)3.3 CNT101模块的设计———————————————(6)3.4 CNT61模块的设计———————————————(7) 3.5 CNT23模块的设计———————————————(8) 4.系统仿真—————————————————————(9) 4.1数字钟的引脚锁定———————————————(9) 4.2数字钟原理图————————————————(12) 4.3数字钟仿真图————————————————(10) 4.4数字钟编译报告———————————————(11) 5.参考文献————————————————————(13)

EDA数字钟设计 中文摘要: 数字钟学习的目的是掌握各类计数器及它们相连的设计方法;掌握多个数码管显示的原理与方法;掌握FPGA技术的层次化设计方法;掌握用VHDL语言的设计思想以及整个数字系统的设计。此数字钟具有时,分,秒计数显示功能,以24小时为计数循环;能实现清零,调节小时,分钟以及整点报时的功能。 关键词:数字钟,计数器,,FPGA,VHDL 1.设计思路 基于VHDL语言,用Top—To--Down的思想进行设计。 1.1 确定总体结构,如图1-1所示。 图1-1 2. 方案论证与选择 方案:设置小时和分,输出整点报时信号和时,分,秒信号。方案采用自顶向下的设计方法,它由秒计数模块,分计数模块,小时计数模块和顶层模块四部分组成。 3. 单元模块设计部分 RES是整个系统的复位键,低电平有效,复位时,各个输出都为零,时间显示0时0分0秒;clk是输入时钟,提供秒信号,上升沿触发,每出发一次,时间增加一秒;HRTMP,MIN10TMP,MINTMPKEYI可以分别设置小时位,10分位,分位,起到调时的作用,高电平有效,有效时,每来一个CLK时钟(1s),所对应的位都将以各自的计数循环; RING是整点报时。

数字钟实验报告

EDA技术课程设计 ——多功能数字钟 学院:城市学院 专业、班级:电子C154 姓名:高阳夏岩 学号:158102 58128 指导老师:安亚军 2017年12月

一实验目的 1、具有时、分、秒记数显示功能,以24小时循环计时。 2、要求数字钟具有清零、调节小时、分钟功能。 3、具有整点报时,整点报时的同时LED灯花样显示 二实验原理 1时钟计数:完成时、分、秒的正确计时并且显示所计的数字;对秒、分——60进制计数,即从0到59循环计数,时钟——24进制计数,即从0到23循环计数,并且在数码管上显示数值。 2时间设置:手动调节分钟、小时,可以对所设计的时钟任意调时间,这样使数字钟真正具有使用功能。我们可以通过实验板上的键7和键4进行任意的调整,因为我们用的时钟信号均是1HZ的,所以每LED灯变化一次就来一个脉冲,即计数一次。 3清零功能:reset为复位键,低电平时实现清零功能,高电平时正常计数。可以根据我们自己任意时间的复位。 4蜂鸣器在整点时有报时信号产生,蜂鸣器报警。产生“滴答.滴答”的报警声音。 5LED灯在时钟显示时有花样显示信号产生。即根据进位情况,LED不停的闪烁,从而产生“花样”信号 三实验内容 1时钟记数部分 1)小时部分 其VHDL描述如下 编译,无误。 经仿真,其波形如下

2)分钟部分 其VHDL描述如下 编译,无误。 经仿真,其波形如下 3)秒部分 其VHDL描述如下

编译,无误。 经仿真,其波形如下 2整点报时部分,其VHDL描述如下 编译,无误。

经仿真,其波形如下 3驱动8位八段共阴扫描数码管的片选驱动信号输出部分 其VHDL描述如下 编译,无误。 经仿真,其波形如下 4驱动八段字形译码输出部分 该模块功能:信号输入后,模块驱动八段字形译码输出,A,B,C,D,E,F,G分别接八段共阴级数码管7个接口,即有字形输出。

数字时钟设计实验报

电子课程设计题目:数字时钟

数字时钟设计实验报告 一、设计要求: 设计一个24小时制的数字时钟。 要求:计时、显示精度到秒;有校时功能。采用中小规模集成电路设计。 发挥:增加闹钟功能。 二、设计方案: 由秒时钟信号发生器、计时电路和校时电路构成电路。 秒时钟信号发生器可由振荡器和分频器构成。 计时电路中采用两个60进制计数器分别完成秒计时和分计时;24进制计数器完成时计时;采用译码器将计数器的输出译码后送七段数码管显示。 校时电路采用开关控制时、分、秒计数器的时钟信号为校时脉冲以完成校时。 三、电路框图: 图一 数字时钟电路框图 四、电路原理图: (一)秒脉冲信号发生器 秒脉冲信号发生器是数字电子钟的核心部分,它的精度和稳定度决定了数字钟的质量。由振荡器与分频器组合产生秒脉冲信号。 ? 振荡器: 通常用555定时器与RC 构成的多谐振荡器,经过调整输出1000Hz 脉冲。 ? 分频器: 分频器功能主要有两个,一是产生标准秒脉冲信号,一是提供功能 扩展电路所需要的信号,选用三片74LS290进行级联,因为每片为1/10分频器,三片级联好获得1Hz 标准秒脉冲。其电路图如下: 译码器 译码器 译码器 时计数器 (24进制) 分计数器 (60进制) 秒计数器 (60进制) 校 时 电 路 秒信号发生器

图二秒脉冲信号发生器 (二)秒、分、时计时器电路设计 秒、分计数器为60进制计数器,小时计数器为24进制计数器。 ?60进制——秒计数器 秒的个位部分为逢十进一,十位部分为逢六进一,从而共同完成60进制计数器。当计数到59时清零并重新开始计数。秒的个位部分的设计:利用十进制计数器CD40110设计10进制计数器显示秒的个位。个位计数器由0增加到9时产生进位,连在十位部计数器脉冲输入端CP,从而实现10进制计数和进位功能。利用74LS161和74LS11设计6进制计数器显示秒的十位,当十位计数器由0增加到5时利用74LS11与门产生一个高电平接到个位、十位的CD40110的清零端,同时产生一个脉冲给分的个位。其电路图如下: 图三60进制--秒计数电路

简单数字电子钟的设计实验报告

《EDA技术》课程实验报告 学生姓名: 所在班级: 指导教师: 记分及评价: 一、实验名称 实验1-3:简单数字电子钟的设计(原理图输入设计方法) 二、任务及要求 【基本部分】 1、在QuartusII平台上,采用原理图输入设计方法,调用两片74160十进制计数器,采 用反馈置数法,完成一个24进制同步计数器的设计,并进行时序仿真。要求具备 使能功能和异步清零功能,设计完成后封装成一个元件。 2、同1,采用原理图输入设计方法,调用两片74160十进制计数器,采用反馈置数法, 完成一个60进制同步计数器的设计,并进行时序仿真。要求具备使能功能和异步 清零功能,设计完成后封装成一个元件。 3、利用1和2所设计的60进制计数器和24进制计数器元件,采用同步的方式设计一 个简单的数字电子钟并进行时序仿真,要求具有时分秒功能显示功能、使能功能和 异步清零功能。 4、由于实验箱数码管采用的动态扫描方式,本实验暂时只要求仿真,硬件验证到实验 7再完成。 【发挥部分】 1、思考:采用反馈清零法设计的计数器与反馈置数法有何不同请用实例进行仿真。 2、如何实现电子钟时分秒连续可调的功能 三、原理图 二十四进制原理图

六十进制原理图 数字电子钟原理图

四、仿真及结果分析 24进制时序仿真图 24进制计数器采用的是两片74160集成块,利用同步置数原理,在第23个脉冲的时候跳转为零。这时个位计数器g3到g0的数值时0011,十位计数器的s3到s0的数值时0010。另外,使能断也应接入到与非门的中,与非门的作用是防止受干扰发生误写。 60进制时序仿真图 60进制计数器采用的是两片74160集成块,利用同步置数原理,在第59个脉冲的时候跳转为零。这时个位计数器g3到g0的数值时1001,十位计数器的s3到s0的数值时0101。另外,使能断也应接入到与非门的中,与非门的作用是防止受干扰发生误写。 电子时钟时序仿真图 电子时钟计数器采用的是两片60进制的计数器与一片24进制的计数器组成的,连接到一起就可以组成电子时钟计数器,要注意的是如果前面的24进制计数器与60进制计数器的使能短没接入与非门的话,可能会时钟脉冲的波形不是严格的按要求翻转。 五、小结 这次实验课,让我们更加了解了集成块74160的结构,学会使用集成块组成任意进制计数器。使用74160构成计数器时,应该注意使能端的使用、时钟脉冲信号多少,那些会影响仿真波形,但是,如果时钟脉冲多了的话,仿真波形就会在不该跳转的时候跳转。 实验中出现了很多问题,从发现错误到解决问题中自己学到了许多,明白了学习要善于思考,这样才能把自己的才能激发出来。这次的实验让我对学习EDA更加感兴趣,也增加我对这本课程的了解。

EDA数字钟的设计实验报告

五邑大学实验报告 实验课程名称: EDA实验 院系名称:信息工程学院 专业名称:通信工程(物联网) (一)实验目的: 设计并实现具有一定功能的数字钟。掌握各类计数器及它们相连的设计方法,掌握多个数码管显示的原理与方法,掌握FPGA的层次化设计方法,掌握VHDL语言的设计思想以及整个数字系统的设计。此数字钟具有时,分,秒计数显示功能,能实现清零,调节小时,分钟以及整点报时的功能。 (二)实验器材: 计算机一台,EDA实验箱一台。 (三)实验原理:

实验内容: 1.正常的时、分、秒计时功能,分别由6个数码管显示24小时、60分钟,60秒钟的计数器显示。 2.按键实现“校时”“校分”功能; 3.用扬声器做整点报时。当计时到达59’50”时鸣叫。 方案:利用试验箱上的七段码译码器(模式7),采用静态显示,系统时钟选择1Hz。整个系统可以是若干文件组成,用PORT MAP 实现的方式;也可以是一个文件用多进程方式实现;亦或者是用文本和图形混合的方式实现;亦或者是用LPM参数化模块实现。 (五)实验步骤: 1. 新建一个文件夹,命名为shuzizhong. 2. 输入源程序。打开QuartusⅡ,选择File→new命令。在New窗口中的DesignFiles 栏选择编译文件-的语言类型,这里选择VHDL File选项。然后在VHDL文本编译窗口中输入秒模块程序。

秒模块源程序如下: library ieee; use SECOND is port(clk,clr:in std_logic;----时钟/清零信号 sec1,sec0:out std_logic_vector(3 downto 0);----秒高位/低位 co:out std_logic);-------输出/进位信号 end SECOND; architecture SEC of SECOND is begin process(clk,clr) variable cnt1,cnt0:std_logic_vector(3 downto 0);---计数 begin if clr='1' then----当ckr为1时,高低位均为0 cnt1:="0000"; cnt0:="0000"; elsif clk'event and clk='1' then if cnt1="0101" and cnt0="1000" then----当记数为58(实际是经过59个记时脉冲)co<='1';----进位 cnt0:="1001";----低位为9 elsif cnt0<"1001" then----小于9时 cnt0:=cnt0+1;----计数 else cnt0:="0000"; if cnt1<"0101" then----高位小于5时 cnt1:=cnt1+1; else cnt1:="0000"; co<='0'; end if; end if; end if; sec1<=cnt1; sec0<=cnt0; end process; end SEC; 3.文件存盘。选择File→Save As命令,找到已经设立的文件夹,存盘文件名应与实体名一致。 4.创建工程。打开并建立新工程管理窗口,选择File→New Project Wizard命令,即弹出设置窗口,命名为57。

EDA课程设计 数字时钟

第一章摘要 在当今社会,数字电路产品的应用在我们的实际生活中显得越来越重要,与我们的生活联系愈加紧密,例如计算机、仪表、电子钟等等,使我们的生活工作较以前的方式更加方便、完善,带来了很多的益处。 在此次EDA课程,我的设计课题是闹钟,使用MAX+plusⅡ系统进行电路设计及通过下载于硬件连接完成闹钟的显示。报告书主要由设计方案、模块介绍、仿真波形图和管脚锁定及硬件连线四部分组成。设计方案主要介绍了我对于设计课题的大致设计思路,之后各个部分将会详细介绍设计组成及程序。 第二章设计说明 一、设计要求 1、设计简易的一分钟闹钟; 2、可手动输入定时时间(0~59s),如30s; 3、两个静态数码管上跟踪显示时间的变化:如30,29,28……到了指定时间蜂鸣器发出5s的提示音; 4、采用2个静态数码管显示时间; 5、用蜂鸣器发出提示音; 6、8位数字开关设置定时时间。 二、设计思路 根据上述的设计要求,整个系统大致包括如下几个组成部分:它包括以下几个组成部分:1)显示屏,由2个静态数码管组成,用于显示当前设置的闹钟时间并进行跟踪显示; 2) 8个数字开关,用于输入闹钟时间; 3) 复位键,确定新的闹钟时间设置,或显示已设置的闹钟时间;

4) 蜂鸣器,在当数码管由设置时间结束到零时,发出5s蜂鸣声; 5)倒计时,由2片74168构成减法计数器。 三、模块介绍 1.74168功能介绍 74168是十进制加减计数器,U/ND为加/减计数控制端,其为高电平时74168工作在加法计数器状态,当为低电平时74168工作在减法计数状态;ENPN、ENTN为计数控制端(低电平有效);LDN为同步并行置入控制端,当LDN为低电平时,在CLK上升沿作用下,输出端与数据输入端一致;TCN进位输出端(低电平有效)。 2.倒计时模块 倒计时部分由2片74168组成,分别为倒计时的低位与高位。通过将低位的借位输出端与高位的使能端相连,当低位输出借位信号(即低电平)时,高位74168芯片开始工作,实现减法计数器功能。倒计时的输出由静态数码管跟踪显示。同时将低位与高位74168的输出通过3个或非门的连接(见倒计时原理图),将输出信号经过处理后送入低位74168芯片的使能端。当输出减为00时,输出信号经过处理后送入低位74168芯片的使能端使芯片封锁,使数码管保持00状态。 3.蜂鸣器模块 此模块由74160、D触发器及蜂鸣器组成。其中将74160接成同步五进制计数器,用于设定蜂鸣器的鸣响时间。而倒计时部分的74168高位芯片的借位信号当做是D触发器的触发信号,然后将它的输出信号与经过处理之后当做蜂鸣器的控制信号。D触发器触发时,74160开始计数,同时蜂鸣器开始鸣响。当74160计数到5时74160被置0,同时输出的低电平与D触发器的输出信号通过与门进行与运算后向蜂鸣器输入低电平,使蜂鸣器停止鸣响以达到对蜂鸣器鸣响时间的控制。

中国地质大学EDA实验报告

EDA实验报告 姓名:肖敬轩 学号:20101000639 班级: 075102 老师:王巍 院系:机电学院

实验一、3/8 译码器的实现 一.实验目的: 1.学习QuartusⅡ的基本操作 2.熟悉教学实验箱的使用 3.设计一个3/8 译码器 4.初步掌握VHDL语言和原理图的设计输入,编译,仿真和调试过程 二.实验说明: 1、本实验要求使用VHDL语言描述3/8译码器,并在实验平台上面实现这个译码器。描述的时候要注意VHDL语言的结构和语法,并熟悉QuartusⅡ的文本编辑器的使用方法。尝试使用不同的VHDL语言描述语句实现3/8译码器,并查看其RTL结构区别,理解不同描述方法对综合结果的影响。将程序下载到实验箱上,分别用按键和LED作为输入和输出对结果进行验证,进一步熟悉所用EDA 实验箱系统。 2、所用器件: EDA实验箱、EP1K10TC100-3器件 三.实验步骤: 按照教学课件《QUARTUS II 使用方法》,学习QuartusⅡ软件的使用方法: 1、在WINDOWS 界面双击QuartusⅡ图标进入QuartusⅡ环境; 2、单击File 菜单下的New Project Wizard: Introduction 按照向导里面的介绍新建一个工程并把它保存到自己的路径下面。(注意路径当中不要有中文和空格) 3、单击File 菜单下的New,选择VHDL File(原理图方式时选择Block Diagram/Schematic File),后单击OK,就能创建一个后缀名为.vhd (*.bdf)的文本(原理图)文件。此vhd文件名必须与设计实体名相同。另外,如果已经有设计文件存在,可以按File 菜单里面的Open 来选择你的文件。 4、输入完成后检查并保存,编译。 5、改错并重新编译; 6、建立仿真波形文件并进行仿真。单击File 菜单下的New,选择Vector Waveform File,单击OK,创建一个后缀名为*.vwf的仿真波形文件,按照课件上的方法编辑输入波形,保存,进行仿真,验证仿真结果是否正确; 7、选择器件及分配引脚,重新编译; 8、根据引脚分配在试验箱上进行连线,使用LED进行显示; 9、程序下载,观察实验结果并记录; Diagram/Schematic File),后单击OK,就能创建一个后缀名为.vhd (*.bdf)的文本(原理图)文件。此vhd文件名必须与设计实体名相同。另外,如果已经有设计文件存在,可以按File 菜单里面的Open 来选择你的文件。

南京理工大学EDA2数字钟实验报告

EDAⅡ实验报告(多功能数字时钟设计) 学号: 姓名: 学院:自动化学院 指导老师:花汉兵 时间:2015年3月8日

摘要 本次实验利用QuartusII7.0软件设计了一个具有24小时计时、保持、清零、快速校时校分、整点报时、动态显示等功能的的多功能数字钟。并利用QuartusII7.0软件对电路进行了详细的仿真,同时通过SMART SOPC实验箱对电路的实验结果进行验证。 Abstract This experiment uses the QuartusII7.0 software to design one to have 24 hours time, the maintenance, the reset, the fast timing school minute,the integral point reports time and so on digital clocks.And using the QuartusII software realizes the multi-purpose digital clock simulation. Through the SmartSOPC experiment box, I confirm the result of this experiment. 1.设计要求 本次EDA设计利用Quartus II7.0软件设计一个多功能数字钟,并下载到Smart SOPC实验系统中进行验证。该数字计时器可以完成从00:00:00到

17:59:59的计时功能,并在控制电路的作用下具有保持、清零、快速校时、快速校分、整点报时以及众多附加功能。 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时可以快速校时) 2.设计方案原理 本实验要求的数字时钟是由脉冲发生电路,计时电路,校时校分保持电路,清零电路,报时电路以及译码显示电路组成。实验为了设计时清晰明了,采取了分模块设计的方式,最后由各模块组装成总的电路。 其中脉冲发生电路是将实验室提供的48Mhz 的频率进行分频得到设计要求的各频率脉冲,计时电路由模60和模17计时器构成,校时校分保持及清零电路分别由各自的开关K 控制,报时电路是通过计时电路的时分秒的输出的反馈信号,连接到一个蜂鸣器上实现报时,译码显示电路时由24to4模块和一个译码器7447组成,连接六个数码管。 简易的总体原理图如下: 计时电路 校分校时保持清零电路 脉冲发生电路 译码显示电路 报时电路

EDA设计数字时钟

EDA设计Ⅱ实验报告 ——多功能数字钟设计EDA设计Ⅱ实验报告 ——多功能数字钟设计 目录 一、摘要 (1) 二、关键字 (2) 三、正文 (2) 1、设计要求说明 (2) 2、方案论证 (3) 3、各子模块设计原理 (3) (1)计时电路 (3) (2)脉冲发生电路 (6) (3)译码显示电路 (8)

(4)报时电路 (12) (5)校分电路 (13) (6)清零电路 (14) (7)闹钟电路 (15) 4、整体电路图 (19) 5、调试 (19) 6、仿真 (20) 7、编程下载 (20) 四、结论 (20) 五、实验感想 (20) 1、实验中遇到的问题及解决方法 (20) 2、实验的收获与感受 (21) 六、参考文献 (21) 一、摘要 FPGA(Field Programmable Gates Array)现场可编程门阵列与CPLD(Complex Programmable Logic Device)复杂可编程逻辑器件都是可编程逻辑器件,是在PAL、GAL等逻辑器件基础之上发展起来的,规模比较大,适合于时序、组合等逻辑电路应用场合,不仅可编程性好并且实现方案容易改动,是电子工程设计过程中很重要的器件之一,对其编程环境的熟练使用也随之成为电子工程设计人员必备的素质之一。 本文详细阐述了如何在QuartusII软件平台下用原理图及VHDL语言的方法对逻辑器件进行编程,并下载到SmartSOPC实验系统中实现一个多功能数字钟的设计。 该多功能数字钟在正常时分秒走时的基础上还能够完成计星期、校分、校时、保持、清零等各种调整功能,且能够整点报时、设置闹钟时间并在所预置的时间响起音乐彩铃。 Abstract FPGA (Field Programmable Gates Array) field programmable gate array and CPLD (Complex Programmable Logic Device) complex programmable logic devices are programmable logic devices, which develop based on the PAL, GAL and other logic devices.They are relatively large-scale and are suitable for timing, and combination logic circuit applications.Their programmability is not only good but also easy to implement changes.It’s one of the important electronic devices of engineering design process, and the skilled use of their programming environment will become one of the essential qualities of a a electronic engineer.

EDA实验报告 数字时钟设计

1.引言 随着科学技术的迅猛发展,在计算机技术的推动下电子技术获得了飞速的发展。电子产品几乎渗透到了工业、生活的各个领域,其中集成电路的设计正朝着速度快、性能高、容量大、体积小和微功耗的方向发展。基于这种情况,可编程逻辑器件的出现和发展大大改变了传统的系统设计方法。可编程逻辑器件和相应的设计技术主要体现在三个方面:一是可编程逻辑器件的芯片技术;二是适用于可逻辑编程器件的硬件编程技术,三是可编程逻辑器件设计的EDA开发工具,它主要用来进行可编程逻辑器件应用的具体实现。在本设计中采用了集成度较高的FPGA 可编程逻辑器件,选用了VHDL硬件描述语言和Quartus II开发软件进行设计。VHDL硬件描述语言在电子设计自动化( EDA)中扮演着重要的角色,由于采用了具有多层次描述系统硬件功能的“自顶向下”(Top -Down)的全新设计方法,使设计师们摆脱了大量的辅助设计工作,而把精力集中于创造性的方案与概念构思上,用新的思路来发掘硬件设备的潜力,从而极大地提高了设计效率,缩短了产品的研制周期。Quartus II软件是集成了编辑器、仿真工具、检查/分析工具和优化/综合工具的这些所有开发工具的一种集成的开发环境,通过该开发环境能够很方便的检验设计的仿真结果以及建立起与可编程逻辑器件的管脚之间对应的关系。 EDA技术是以计算机为工具,根据硬件描述语言HDL完成的设计文件,自动地完成逻辑编译、化简、分割、综合及优化、布局布线。仿真以及对于特定目标芯片的适配编译和编程下载等工作。典型的EDA工具中必须包含两个特殊的软件包,即综合器和适配器。综合器的功能就是将设计者在EDA平台上完成的针对某个系统项目的HDL、原理图或状态图形描述,针对给定的硬件系统组件,进行编译、优化、转换和综合,最终获得我们欲实现功能的描述文件。综合器在工作前,必须给定所要实现的硬件结构参数,它的功能就是将软件描述与给定的硬件结构用一定的方式联系起来。综合过程就是将电路的高级语言描述转换低级的。可与目标器件FPGA/CPLD相映射的网表文件。适配器的功能是将由综合器产生的王表文件配置与指定的目标器件中,产生最终的下载文件,如JED文件。适配所选定的目标器件(FPGA/CPLD芯片)必须属于在综合器中已指定的目标器件系列。 2.设计概述 数字时钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,数字时钟可植入自动控制、测试等系统内部,作为系统的时钟源,可为系统提供定时信号或中断控制的时间基准,具有广泛的用途。由于数字集成电路的发展使得数字时钟的精度远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的单一报时功能。加入了一些诸如自动报时、定时闹钟等功能。这些都是以钟表数字化为基础的。因此,研究数字时钟及扩大其应用,有着非常现实的意义。 数字时钟的设计方法有很多种,包括基于单片机的硬件设计、基于各种描述语言的软件设计,本设计采用VHDL语言来设计数字时钟有着多方面的优越性,通过把整个设计分为多个模块依次来实现,减少了众多重复性步骤,合理化了设计过程,使得设计更加省时、快捷,提高了设计效率。 目前,电子系统的EDA技术正从着眼与数字逻辑向模拟电路和数模混合电路

24时制数字时钟实验报告

自动检测技术及使用转速测量仪的设计 专业:[电子信息工程] 学生姓名:[ 李智明] 学号:[ 101100007 ] 完成时间:2019年10月25日

一、实验目的 (1) 二、所用实验仪器设备、耗材 (1) 三、电路总体结构 (1) 四、整形电路单元工作原理 (3) 五、STC12C5A60S2单片机原理 (3) 六、复位和时钟电路的设计 (5) 七、显示电路设计 (6) 八、程序和工作流程 (6) 九、实验结果分析 (11) 十、总结 (12)

一、实验目的 能用数字显示转速,测量范围0 ~2000转 二、所用实验仪器设备、耗材 霍尔或光电传感器、传感器信号处理电路、单片机自动检测系统、LED 数码管显示、计算机、keil 开发软件、STC 下载工具软件、ISP 下载线。数字示波器。 三、电路总体结构 系统工作原理: 由霍尔元件及外围器件组成的测速电路将电动机转速转换成脉冲信号,送至单片机AT89C51的计数器 T0进行计数,用T1定时测出电动机的实际转速。此系统使用单片机进行测速,采用脉冲计数法,使用霍尔传感器获得脉冲信号。其机械结构也可以做得较为简单,圆盘上有几个磁钢,机轴每转一周,产生几个脉冲,机轴旋转时,就会产生连续的脉冲信号输出。由霍尔器件电路部分输出,成为转速计数器的计数脉冲。控制计数时间,即可实现计数器的计数值对应机轴的转速值。单片机将该数据处理后,通过七段数码管显示出来。 1) 霍尔传感器测速原理: 霍尔器件是由半导体材料制成的一种薄片,器件的长、宽、高分别为 l 、b、d。若在垂直于薄片平面(沿厚度 d)方向施加外磁场B,在沿l方向的两个端面加一外电场,则有一定的电流流过。由于电子在磁场中运动,所以将受到一个洛仑磁力,其大小为:qVB f = 式中:f —洛仑磁力, q—载流子电荷, V—载流子运动速度, B—磁感应强度。 这样使电子的运动轨迹发生偏移,在霍尔元器件薄片的两个侧面分别产生电子积聚或电荷过剩,形成霍尔电场,霍尔元器件两个侧面间的电位差H U 称为霍尔电压。 霍尔电压大小为: H U H R =d B I /??(mV) 式中:H R —霍尔常数, d—元件厚度, B—磁感应强度, I—控制电流

《多功能数字钟》EDA实验报告

《EDA课程设计》实验报告 多功能数字钟 姓名: 学号: 联系方式: 成绩:

1.摘要 在当代,随着人类社会进入到高度发达的信息化社会。信息技术的发展起着越来越大的作用,它几乎涉及到我们日常生活的每个领域,可以说要衡量一个当今社会的发展文明程度信息化技术的发展程度是一个非常重要的指标。众所周知,信息化社会的发展离不开电子信息技术产品的开发、产品品质的提高和改善。电子信息产品随着科学技术的进步,其电子器件和设计方法更新、换代的速度快的惊人,几乎是日新月异。然而实现这种进步的主要原因就是电子设计技术和电子制造技术的发展,其核心就是电子设计自动化(EDA,Electronics Design Automation)技术,EDA技术的发展和推广应用又极大地推动了电子信息产业的发展。为保证电子系统设计的速度和质量,适应“第一时间推出产品”的设计要求,EDA技术正逐渐成为不可缺少的一项先进技术和重要工具。目前,在国内电子技术教学和产业界的技术推广中已形成“EDA热”,完全可以说,掌握EDA技术是电子信息类专业学生、工程技术人员所必备的基本能力和技能。 由于基于PLD的EDA技术的发展和应用领域的扩大和深入,EDA技术在电子信息、通信、自动控制及计算机应用领域的重要性日益提高。 EDA技术在电子系统设计领域越来越普及,本设计主要利用VHDL语言在EDA平台上设计一个电子数字钟,它的计时为24小时小时制,显示满刻度为23时59分59秒,另外还具有校时功能和闹钟功能。总的程序由几个各具不同功能的单元模块程序拼接而成,其中包括分频程序模块,时、分、秒计数和校时程序模块、数据选择器程序模块、显示程序模块和例化程序模块。并且使用QUARTUS II软件进行电路波形仿真,下载到EDA实验箱进行验证。 作为现在的大学生应熟练掌握这门技术,为以后的发展打下良好的基础,本实验设计是应用QuartusII环境及VHDL语言设计一个时间可调的数字时钟。使自己熟练使用QuartusII 环境来进行设计,掌握VHDL语言的设计方法。注重理论与实践之间的不同,从而培养自己

EDA设计数字钟实验报告

南京理工大学 EDA(Ⅱ)实验报告 ——多功能数字钟 姓名: 学号: 学院: 指导教师: 时间:2014/11/3~2014/11/7

摘要 日益复杂的电子线路使得基于原理图的设计越来越复杂,甚至不切实际。硬件描述语言的诞生,对设计自动化起到了极大的促进和推动作用。Verilog HDL就是在用途最广泛的C语言的基础上发展起来的一种硬件描述语言,实现了从算法级、门级到开关级的多种抽象设计层次的数字系统建模,具有仿真,验证,故障模拟与时序分析等功能。 本文利用Verilog HDL语言,采用自顶向下的设计方法设计多功能数字钟,并通过QuartusⅡ分块进行了仿真。此程序通过下载到FPGA芯片后,可实现实际的数字钟显示,具有基本的计时显示和设置,时间校正,整点报时,12h/24h转换,闹钟设置和闹铃控制的功能。 关键词: FPGA, Verilog HDL, QuartusⅡ, EP3C25F324C8,数字钟

Abstract The development of electronic circuit has grown to be too complicated to be designed base on schematic diagram. The birth of HDL accelerated the development of electronic design automation drastically. Verilog HDL is one of the HDL with multiple and strong functions. In this thesis, a complex digital system is designed in the bottom-up way with Verilog HDL and is simulated by QuartusⅡ. The function of a digital clock can be realized by downloading the program to FPGA, which includes timing, time-setting, hourly chiming, 12/24transforming, bell-setting and bell-controlling. Keywords: FPGA, Verilog HDL, QuartusⅡ, EP3C25F324C8, Digital clock

相关主题
文本预览
相关文档 最新文档