电子钟毕业设计[VHDL设计报告]

基于VHDL的多功能数字钟设计报告

题目:多功能数字钟

姓名:

学号:

指导老师:

设计时间:

一、VHDL的发展

硬件描述语言HDL是一种用形式化方法描述数字电路和系统的语言。利用这种语言,数字电路系统的设计可以从上层到下层(从抽象到具体)逐层描述自己的设计思想,用一系列分层次的模块来表示极其复杂的数字系统。然后,利用电子设计自动化(EDA)工具,逐层进行仿真验证,再把其中需要变为实际电路的模块组合,经过自动综合工具转换到门级电路网表。接下去,再用专用集成电路ASIC或现场可编程门阵列FPGA自动布局布线工具,把网表转换为要实现的具体电路布线结构。目前,这种高层次(high-level-design)的方法已被广泛采用。据统计,目前在美国硅谷约有90%以上的ASIC和FPGA采用硬件描述语言进行设计。

早在1980年,因为美国军事工业需要描述电子系统的方法,美国国防部开始进行VHDL 的开发。1987年,由IEEE(Institute of Electrical and Electro- nics Engineers)将VHDL

制定为标准。参考手册为IEEE VHDL语言参考手册标准草案1076/B版,于1987年批准,称为IEEE 1076-1987。应当注意,起初VHDL只是作为系统规范的一个标准,而不是为设计而制定的。第二个版本是在1993年制定的,称为VHDL-93,增加了一些新的命令和属性。虽然有“VHDL是一个4亿美元的错误”这样的说法,但VHDL毕竟是1995年以前唯一制订为标准的硬件描述语言,这是它不争的事实和优势;但同时它确实比较麻烦,而且其综合库至今也没有标准化,不具有晶体管开关级的描述能力和模拟设计的描述能力。目前的看法是,对于特大型的系统级数字电路设计,VHDL是较为合适的。实质上,在底层的VHDL设计环境是由Verilog HDL描述的器件库支持的,因此,它们之间的互操作性十分重要。目前,Verilog 和VDHL的两个国际组织OVI、VI正在筹划这一工作,准备成立专门的工作组来协调VHDL 和Verilog HDL语言的互操作性。OVI也支持不需要翻译,由VHDL到Verilog的自由表达。

二、设计要求

基本要求:

1、24小时计数显示;

2、具有校时功能(时,分);

附加要求:

1、秒表功能(复位,计时);

三、实验程序

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY CLOCK IS

PORT (

CLK1:IN STD_LOGIC;

CLK2:IN STD_LOGIC;

R1:IN STD_LOGIC;

R2:IN STD_LOGIC;

scond:IN STD_LOGIC;

HOUR:IN STD_LOGIC;

MINI:IN STD_LOGIC;

RESET:IN STD_LOGIC;

DOUT:OUT STD_LOGIC_VECTOR(6 DOWNTO 0); CHOICE:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); END CLOCK;

ARCHITECTURE behav OF CLOCK IS

SIGNAL LED7:STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL SLIP:STD_LOGIC_VECTOR(2 DOWNTO 0); SIGNAL a,b,c,d,e,f,g,h:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN

---------------------------------------

PROCESS (CLK2)

BEGIN

IF CLK2'EVENT AND CLK2='1' THEN

IF SLIP<"111" THEN SLIP<=SLIP+1;

ELSE SLIP<="000";

END IF;

CASE SLIP IS

WHEN "000"=> CHOICE<="";LED7<=a;

WHEN "001"=> CHOICE<="";LED7<=b;

WHEN "010"=> CHOICE<="";LED7<=c;

WHEN "011"=> CHOICE<="";LED7<=d;

WHEN "100"=> CHOICE<="";LED7<=e;

WHEN "101"=> CHOICE<="";LED7<=f;

WHEN "110"=> CHOICE<="";LED7<=g;

WHEN "111"=> CHOICE<="";LED7<=h;

WHEN OTHERS=>CHOICE<="";LED7<=a;

END CASE;

END IF;

END PROCESS;

PROCESS (CLK1)

BEGIN

IF CLK1'EVENT AND CLK1='1' THEN

IF a<"1001"THEN a<=a+1;

ELSE b<=b+1;a<="0000"; END IF; -------0--a

IF( a="1001"and b="0101")then

d<=d+1;b<="0000";a<="0000"; end if;

IF c="1100"THEN c<="1101";f<="1101";

ELSE c<="1100"; f<="1100"; END IF; -------2--c-f--

IF d="1010"THEN e<=e+1;d<="0000"; END IF; -------3--d

IF( d="1001"and e="0101")then

g<=g+1;e<="0000";d<="0000";end if;

IF g="1010"THEN

h<=h+1;g<="0000"; END IF; -------6--g

IF (h="0010" and g="0011")THEN

a<=a+1;h<="0000"; END IF; -------7--h

----------部分[时间可调]开始-----

IF RESET='1' THEN

a<="0000";

b<="0000";

c<="0000";

d<="0000";

e<="0000";

f<="0000";

g<="0000";

h<="0000";

END IF; ----复位键

IF scond='1' THEN a<="0000";b<="0000"; END IF;----精确调整秒清零

IF MINI='1'THEN d<=d+1;END IF;---分钟调整

IF (d="1001" and e="0101")then

d<="0000";e<="0000";g<=g;END IF;--59分时小时不加1

IF d="1010"THEN e<=e+1;d<="0000"; END IF;---分钟不延时

IF HOUR='1'THEN g<=g+1;END IF;---小时调整

IF g>"1000"THEN g<="0000";h<=h+1;END IF;--小时不延时

IF (g="0011" and h="0010")then g<="0000";h<="0000";END IF;--小时调整不延迟

-----------部分[时间可调]结束-----

-----------部分[秒表计时]开始-----

IF R1='1' THEN

a<="0000";

b<="0000";

c<="1100";

d<="0000";

e<="0000";

f<="1100";

g<="0000";

h<="0000";

END IF;----秒表复位

IF R2='1' THEN a<=a;

else a<=a+1; END IF;---即时计时

-----------部分[秒表计时]结束------

END IF;

END PROCESS;

------------------------------------------

PROCESS(LED7)

BEGIN

CASE LED7 IS

WHEN "0000"=> DOUT<="";

WHEN "0001"=> DOUT<="";

WHEN "0010"=> DOUT<="";

WHEN "0011"=> DOUT<="";

WHEN "0100"=> DOUT<="";

WHEN "0101"=> DOUT<="";

WHEN "0110"=> DOUT<="";

WHEN "0111"=> DOUT<="";

WHEN "1000"=> DOUT<="";

WHEN "1001"=> DOUT<="";

WHEN "1100"=> DOUT<="";

WHEN "1101"=> DOUT<="";

WHEN OTHERS=> DOUT<="";

END CASE;

END PROCESS;

END behav;

四、实验仿真效果图

实验程序通过编译,无错误,设置CLK和CLK1的宽度为1输入信号进行仿真,得到仿真效果如下图:

五、实验结果:

1.实现了基本要求:24小时计时;分钟小时可调;

2.并在基本要求的基础上增加了复位,以及精确调整时的秒清零功能;

3.解决了调节时候的分钟和小时进位时候的延迟现象;

4.分钟调整时,当调整至59时,此时的小时不增加,合理化设计;

5.简单秒表功能:R1复位开始秒表,R2计时;

以上实验结果现象在实验箱上正常演示,通过老师检查!

六.设计体会

数字钟的原有程序是老师编写的,我只是在原有的基础上加上了一些程序段实现了时钟的可调和简单的秒表功能,调整的过程当中也发现不少问题,比如:进位的时候有2秒的延迟,小时到达23的时候有跳转错误的现象,通过解决每一个细节问题使我学到了不少东西,弄懂了硬件程序控制语言的基本原理,然后再来修改程序控制的功能就简单多了,于是我稍做修改,增加了复位功能,需要精确调整时候的秒个位和十位的清零功能,当我们调节时间的分钟的时候,我们通常希望这个调节到59的时候小时不要加1,实际的电子手表也是如此,我就加上了一个句子来控制调整.秒表功能设计得很简单,复位下来开始工作,简单地计时,只能记下

一个人的时间成绩,R2可以的拨动可以继续计时.使用秒表时的数字钟功能不能恢复,秒表使用完毕后回到数字钟的功能时间不再正确,相当于复位了数字钟,这是此次设计的最大失败的地方,曾请教过多位同学查询过很多资料没有找到好的解决方案,实际中我们的电子手表是可以的.

个人觉得设计的前提是实用性,曾想过将流水灯程序加进去,实现数字钟的同时有流水灯效果,后来想想除了有点美观效果外使用性几乎没有,故略去.下一步思考将音乐芯片和数字钟结合起来实现整点报时功能或者手动较时闹钟功能!个人能力远远不够希望老师多多指点!

七.参考文献

1.现代可编程逻辑器件及SOPC应用设计

2.VHDL设计教程

vhdl数字电子钟的设计与实现

基于VHDL数字电子钟的设计与实现 摘要:本课程设计完成了数字电子钟的设计,数字电子钟是一种用数字显示秒、分、时的计时装置,由于数字集成电路技术的发展和采用了先进的石英技术,它使数字钟具有走时准确、性能稳定、携带方便等优点。数字钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及办公室等公共场所,给人们的生活带来极大的方便。在这里我们将已学过的比较零散的数字电路的知识有机的、系统的联系起来用于实际,来培养我们的综合分析和设计电路的能力。 关键词:电子钟;门电路及单次按键;琴键开关

目录 第一章引言----------------------------------------------------------------1 1.1 课题的背景、目的------------------------------------------1 1.2 课程设计的内容------------------------------------------1 第二章EDA与VHDL简介--------------------------------------------------2 2.1 EDA的介绍---------------------------------------------2 2.2 VHDL的介绍--------------------------------------------3 2.2.1 VHDL的用途与优点-----------------------------------------------------------------3 2.2.2 VHDL的主要特点---------------------------------------------------------------------- 2.2.3 用VHDL语言开发的流程------------------------------------------------------------ 第三章数字电子钟的设计方案------------------------------------------6 3.1秒脉冲发生器--------------------------------------------7 3.2可调时钟模块--------------------------------------------8 3.3校正电路------------------------------------------------8 3.4闹铃功能------------------------------------------------10 3.5日历系统------------------------------------------------11 第四章结束语---------------------------------------------------------------13 4.1致谢----------------------------------------------------14 4.2参考文献------------------------------------------------15

多功能数字时钟的设计eda课程设计报告-毕设论文

多功能数字时钟的设计 1 绪论 1.1设计目的 本次设计的目的就是在掌握EDA实验开发系统的初步使用基础上,了解EDA 技术,加深对计算机体系结构的理解。通过学习的VHDL语言结合电子电路的设计知识理论联系实际,掌握所学的课程知识,学习VHDL基本单元电路的综合设计应用。通过对实用数字钟的设计,巩固和综合运用计算机原理的基本理论和方法,理论联系实际,提高设计、分析、解决计算机技术实际问题的独立工作能力。 1.2设计要求 (1)熟练掌握VHDL语言的结构特点并能运用到具体实际中。 (2)学会利用复杂的可编程逻辑器件进行简单的电子系统设计。 (3)熟悉并掌握基于EDA实验开发系统设计实际问题的方法和步骤。 (4)通过设计过程提高自己运用所学知识来分析解决问题的能力。 1.3设计内容 本课程设计中使用Altera公司的EP2C35系列的FPGA芯片,利用SOPC-NIOSII-EP2C35开发板上的资源和QuartusII软件,实现一个多功能数字时钟。本设计的任务要求显示格式为小时-分钟-秒钟,整点报时,报时时间为10秒,即从整点前10秒钟开始进行报时提示,喇叭开始发声,直到过整点时,在 5秒LED开始闪烁,过整点后,停止闪烁。系统时钟选择时钟模块的10KHz,要得到1Hz时钟信号,必须对系统时钟进行10,000次分频。调整时间的的按键用按键模块的S1和S2,S1调节小时,每按下一次,小时增加一个小时,S2调整分钟,每按下一次,分钟增加一分钟。另外用S8按键作为系统时钟复位,复位后全部显示00-00-00。扩展内容:用16*16点阵显示实现日期的动态显示用4×4键盘阵列键盘替换按键实现日期、时钟的调整,用液晶显示模块日期、时间的显示。 1.4设计环境 本次课题设计方要用到的开发环境是Altera公司的EDA设计工具软件QuartusII。

EDA-VHDL数字钟报告

《EDA技术》实验报告 数 字 钟 班级:电子与电气081 学号:830702004 姓名:陈海峰 指导教师:张江伟老师 地点:B07-306 时间:校历9-10周

目录 一、摘要 二、关键词 三、数字钟设计要求 四、基本理论知识了解 五、实验目的 六、实验器材 七、实验内容——数字钟设计方案 计数部分 (1)VHDL语言设计的六十进制电路,模块及其波形(2)VHDL语言设计的二十四进制电路,模块及其波形动态显示部分 (1)VHDL语言设计的四进制电路,模块及其波形(2)VHDL语言设计的2线-4线译码器 (3)VHDL语言设计的数据选择器波形及其模块 (4)VHDL语言七段译码器设计波形及模块 数字钟总电路图 八、实验总结 九、参考资料

一、摘要 数字钟由计数器、译码器、显示器等部分构成,数字钟的时、分、秒实际上就是由一个24进制计数器(00-23),两个60进制计数器(00-59)级联构成。利用Quartus II 6.0软件编写VHDL语言,编写六十进制、二十四进制;译码、显示部分用一个四进制,二-四译码器,数据选择器及七段译码器构成。最后生成相对应的模块连接成数字钟电路图。 二、关键词 VHDL语言、数字钟、计数器、动态显示、译码显示 三、数字钟设计要求 (1)正常模式时,采用24小时制设计有时、分、秒。只显示时、分。 (2)应用VHDL语言设计时要有计数、数据选择、译码、显示等要求。 四、基本理论知识了解 数字钟的功能实际上是对秒信号计数。EDA-V硬件开发系统可提供不同的时钟信号,分频后可产生秒时钟。数字钟在结构上可分为两个部分:计数器和显示器。计数器又可分为秒计数器、分计数器和小时计数器;秒计数器和分计数器由两个六十进制构成,小时计数器由二十四进制计数器实现。 动态显示电路可用三态门构成的四选一数据选择器,和一个四进制加一个二四译码器,还有一个七段译码器7448组成。三态门在选择了一个数码管的同时,打开一个三态门,其他的关闭。进而实现数据选择。如图1所示的用三态门实现动态显示的框图。 在QuartusII软件中实现四个数码管的动态显示原理 指定按实验箱上的连接关系,指定引脚,下载到实验箱中,进行测试。

vhdl实验报告--数字钟

VHDL实验报告 一、实验目的 1、设计一个24小时制数字钟,要求能显示时,分,秒,并且可以手动调整时和分。 2、通过复杂实验,进一步加深对VHDL语言的掌握程度。 二、实验原理 数字钟的主体是计数器,它记录并显示接收到的秒脉冲个数,其中秒和分为模60计数器,小时是模24计数器,分别产生3位BCD码。BCD码经译码,驱动后接数码管显示电路。 秒模60计数器的进位作为分模60计数器的时钟,分模60计数器的进位作为模24计数器的时钟。 为了实现手动调整时间,在外部增加了setm(调整分),seth(调整时)按键,当这两个按键为低电平时,电路正常计时,当为高电平时,分别调整分,时。同时在外部还增加了一个清零按键clr.和消抖动电路。 三、实验步骤 1、单元模块设计部分 1)消抖动电路关键部分 signal key_in1,key_in2:std_logic:='0'; begin process(clk,key_in) begin if clk'event and clk='1' then key_in1<=key_in;key_in2<=key_in1; if key_in='1' and key_in1='1' and key_in2='1' then key_out<='1'; else key_out<='0'; end if; 2) 模60计数器程序关键部分: signal md_temp,mg_temp:std_logic_vector(3 downto 0); begin process(clk,clr) begin if clr='1' then md_temp<="0000"; mg_temp<="0000"; elsif set='1' then md_temp<=setl; mg_temp<=seth; elsif clk'event and clk='1' then if md_temp="1001" then md_temp<="0000";mg_temp<=mg_temp+'1'; else md_temp<=md_temp+'1';

数字电子钟设计实验报告

数字电子钟设计实验报告 实验项目名称:数字电子钟的设计 实验项目性质:普通试验 所属课程名称:VHDL程序设计 实验计划学时:4学时 一、实验目的 掌握VHDL程序设计方法 二、实验内容和要求 能够实现小时(24进制)、分钟和秒钟(60进制)的计数功能 具有复位功能 功能扩展:具有复位、整点报时提示、定时闹钟等功能 在软件工具平台上,进行VHDL语言的各模块编程输入、编译实现和仿真验证。 三、实验主要仪器设备和材料 计算机 四.设计思想 1、计数模块: Q0为六十进制计数,代表秒计数,当Q0<59时,每逢一个时钟上升沿Q0增加1,直到当Q0=59时,再逢一个时钟上升沿,立即输出高电平至进位CLK1。 使得CLK1为一个60秒为周期的时钟,作为六十进制分计数Q1时钟。同理,当Q1<59时,每逢一个时钟上升沿Q1加1,直到当Q1=59,再逢一个时钟上升沿,立即输出高电平到进位CLK2。 CLK2是一个60分钟为周期的时钟,作为二十四进制时计数Q2的时钟。

2、复位模块: 分别在秒,分,时计数模块语句之前加入一个判断语句IF RST=‘0',如果复位输入RST为0则跳过计数模块,不为0则运行计数模块。 3、整点报时模块: 判断秒,分计数是否都为0,【Q1=("000000")AND(Q0="000000")】,如果是,则令报时ALM0输出为1,不是则输出为0。 4、定时闹钟模块: 用户设定闹钟DS(秒),DF(分),DM(秒)的输入,当它们都等于输出的Q1(分),Q2(时)数值时,则令闹钟ALM1输出为1,否则输出为0。 五、源程序 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY clock IS PORT (CLK,RST:IN STD_LOGIC; CLK1,CLK2:INOUT STD_LOGIC; CLK3:OUT STD_LOGIC; S:OUT STD_LOGIC_VECTOR(4 DOWNTO 0); F,M:OUT STD_LOGIC_VECTOR(5 DOWNTO 0); DS:IN STD_LOGIC_VECTOR(4 DOWNTO 0); DF,DM:IN STD_LOGIC_VECTOR(5 DOWNTO 0); ALM0,ALM1:OUT STD_LOGIC); END clock; ARCHITECTURE one OF clock IS BEGIN PROCESS(CLK,RST) VARIABLE Q0: STD_LOGIC_VECTOR(5 DOWNTO 0); VARIABLE Q1: STD_LOGIC_VECTOR(5 DOWNTO 0); VARIABLE Q2: STD_LOGIC_VECTOR(4 DOWNTO 0); BEGIN IF RST='0' THEN Q0:=(OTHERS=>'0'); ELSIF CLK'EVENT AND CLK='1' THEN IF Q0="111011" THEN CLK1 <= '1' ; ELSE CLK1<='0'; END IF ; IF Q0<59 THEN Q0:=Q0+1; ELSE Q0:=(OTHERS=>'0') ; END IF; END IF; IF RST='0' THEN Q1:=(OTHERS=>'0');

EDA课程设计 数字时钟(闹钟)

课程设计说明书题目:闹钟 学院(系): 年级专业: 学号: 学生姓名: 指导教师: 教师职称:

目录 第1章摘要 (1) 第2章设计方案…………………………………………………………………………… 2.1 VHDL简介…………………………………………………………………………… 2.2 设计思路…………………………………………………………………………… 第3章模块介绍…………………………………………………………………………… 第4章 Verilog HDL设计源程序………………………………………………………… 第5章波形仿真图………………………………………………………………………… 第6章管脚锁定及硬件连线……………………………………………………………… 心得体会 (17) 参考文献 (18)

第一章摘要 在当今社会,数字电路产品的应用在我们的实际生活中显得越来越重要,与我们的生活联系愈加紧密,例如计算机、仪表、电子钟等等,使我们的生活工作较以前的方式更加方便、完善,带来了很多的益处。 在此次EDA课程,我的设计课题是闹钟,使用VHDL语言进行编程完成。报告书主要由设计方案、模块介绍、设计源程序、仿真波形图和管脚锁定及硬件连线四部分组成。设计方案主要介绍了我对于设计课题的大致设计思路,之后各个部分将会详细介绍设计组成及程序。

第二章设计方案 §2.1 VHDL简介 数字电路主要是基于两个信号(我们可以简单的说是有电压和无电压),用数字信号完成对数字量进行算术运算和逻辑运算的电路我们称之为数字电路,它具有逻辑运算和逻辑处理等功能,数字电路可分为组合逻辑电路和时序逻辑电路。 EDA技术,就是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至完成对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片的一门新技术。 利用EDA技术进行电子系统的设计,具有以下几个特点:①用软件的方式设计硬件; ②用软件方式设计的系统到硬件系统的转换是由有关的开发软件自动完成的;③设计过程中可用有关软件进行各种仿真;④系统可现场编程,在线升级;⑤整个系统可集成在一个芯片上,体积小、功耗低、可靠性高。因此,EDA技术是现代电子设计的发展趋势。 EDA技术伴随着计算机、集成电路、电子系统设计的发展,经历了计算机辅助设计(Computer Assist Design,简称CAD)、计算机辅助工程设计(Computer Assist Engineering Design,简称CAE)和电子设计自动化(Electronic Design Automation,简称EDA)三个发展阶段。 常用的硬件描述语言有VHDL、Verilog、ABEL。 EDA技术是随着集成电路和计算机技术的飞速发展应运而生的一种高级、快速、有效的电子设计自动化工具。它是为解决自动控制系统设计而提出的,从70年代经历了计算机辅助设计(CAD),计算机辅助工程(CAE),电子系统设计自动化(ESDA)3个阶段。前两个阶段的EDA产品都只是个别或部分的解决了电子产品设计中的工程问题;第三代EDA工具根据工程设计中的瓶

电子时钟vhdl

●设计基本要求: –时、分、秒计时,00:00:00~23:59:59 –6位数码显示时间,显示方式为6位十进制 –有手动清零按键 –有闹钟功能,可设定闹铃时间,到点发声(实验箱上有蜂鸣器)、LED发光指示,直到手动关闭 ●可选的扩展功能: –秒表功能,启动按钮后,从0开始进行秒的计数 –可以按照12小时和24小时的计时方式切换 由48Mhz实现4ms的分频 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY clk4ms IS PORT(clk48M:IN STD_LOGIC; newclk:BUFFER STD_LOGIC); END ENTITY clk4ms; ARCHITECTURE rtl OF clk4ms IS SIGNAL count:STD_LOGIC_VECTOR(17 DOWNTO 0); BEGIN PROCESS(clk48M) IS BEGIN

IF(clk48M 'EVENT AND clk48M='1') THEN IF (count="10111011100000000") THEN newclk<=NOT newclk; count<="000000000000000000"; ELSE count<=count+'1'; END IF; END IF; END PROCESS; END ARCHITECTURE rtl; 由48Mhz实现1s的分频 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY clks IS PORT(clk48M:IN STD_LOGIC; clk1s:BUFFER STD_LOGIC); END ENTITY clks; ARCHITECTURE rtl OF clks IS SIGNAL count:STD_LOGIC_VECTOR(25 DOWNTO 1); BEGIN PROCESS(clk48M) IS BEGIN IF(clk48M 'EVENT AND clk48M='1') THEN IF (count="1011011100011011000000000") THEN--24000000=1 0110 1110 0011 0110 0000 0000 clk1s<=NOT clk1s; count<="0000000000000000000000000"; ELSE count<=count+'1'; END IF; END IF; END PROCESS; END ARCHITECTURE rtl; 整点报时模块 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity alarm is port(m1,m0,s1,s0:in std_logic_vector(3 downto 0); clk:in std_logic; q1,q500:out std_logic); end entity alarm;

基于vhdl的电子闹钟设计

基于vhdl的电子闹钟设计基于VHDL的电子闹钟设计 电子闹钟是我们日常生活中常用的物品之一,在我们每天的生活中起着非常重要的作用。现在,大量人们自己亲手打造自己的电子闹钟,这已经成为一种流行的风潮。其中一种制作闹钟的方法就是使用VHDL语言进行设计,在这里我们将介绍基于VHDL的电子闹钟的设计。 VHDL的定义 VHDL是“可综合的硬件描述语言”的缩写,其对于电子器件的设计和工程制造具有极大的重要性。VHDL可以直接描述数字电路,然后通过其编译器和模拟器生成对应的硬件电路。它是在20世纪80年代产生的,在当时风靡一时,并且现在仍然是电路仿真和设计过程中的重要工具。 闹钟设计 一块基于FPGA开发板上的闹钟的设计步骤从以下几个方面进行: 模块划分 根据闹钟的功能划分模块,这些模块可以包括:时钟模块(时钟、分钟、秒钟、时令),轮询模块(轮询时钟模块,测量按键状态),SDRAM芯片(用来存储当前时间和闹钟时间),闹铃模块(识别达到设定时间的闹钟)。

时钟模块 时钟模块是一个非常重要的模块。时钟的频率由外部电源提供,频率通常为50Hz,可以通过PLL进行锁相放大处理来获取1秒的时钟信号。时钟信号用于计算当前时间和闹钟时间。模块中还必须包括一个开关,在程序中用来控制时钟的启停,以及计时和控制亮度的显示屏。 轮询模块 轮询模块用来轮询时钟模块和按键状态。通过轮询时钟模块,我们可以获取当前时间,并存储在SDRAM芯片中。同时,我们也可以通过轮询按键状态来检测用户是否更改了设置,如设定时间、闹钟时间和亮度等。 SDRAM SDRAM芯片的作用是用来存储当前时间和闹钟时间。需 要的RAM空间相当小,只需要一些字节就足够了。因此,常 用的8位RAM芯片足以实现此目的。 闹铃模块 闹铃模块用于识别设定时间是否和当前时间相同,并在正确的时间触发闹钟响铃。当闹钟时间到来时,闹铃模块会向 用户发出闹钟信号,通过控制LED灯来让用户知道是闹钟响了。要注意的是,该模块必须在程序运行时轮询保持警醒状态。 编写VHDL程序 根据以上建议模块进行划分,我们可以编写VHDL程序来 进行电子闹钟的设计。在FPGA电路的设计时,我们可以通过

数电课程设计报告VHDL电子钟

数电课程设计报告 ——多功能电子钟 姓名:段续 班级:计112-2 学号:201158502222 指导教师:王玲玲

目录 一、设计要求 二、设计方案 (1) 设计需求 (1) 多功能电子钟的设计方案 (1) 电子钟模式 (1) 显示模式 (1) 选位模式 (2) 三、各功能模块设计 (3) 主控模块 (3) 主要功能 (3) 源代码 (3) 计时模块 (5) 主要功能 (5) 源代码 (5) 闹钟模块 (8) 主要功能 (8) 源代码 (8) 辅控模块 (10) 主要功能 (11) 源代码 (11) 显示模块 (14) 主要功能 (14) 源代码 (15) 蜂鸣器模块 (17) 主要功能 (17) 源代码 (17) 分频器模块 (18) 主要功能 (18) 源代码 (18) 四、设计实现过程 (20) 五、实验结果。讨论及心得体会 (22) 附录 (23) 各模块仿真图 (23) AC (23) BCD7DIS (23) CHOSE21 (23) CHOSE81 (23) CLKCUT (24) COUNT24 (24) COUNT60 (24)

KEYEN (24) MC (24) SOUND (25) SWSC (25) TRANSLATE38 (25)

显示模式

选位模式

三、各功能模块设计 电子钟包括:主控模块,计时模块,闹钟模块,辅控模块,显示模块,蜂鸣器模块,分频器模块。 主控模块 主要功能 控制整个系统,输出现在的状态,以及按键信息。 源代码 mc.vhd library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity mc is port(functionswitch,k,set,lightkey: in std_logic; chose21,setout: out std_logic; lightswitch:buffer std_logic; modeout,kmodeout : out std_logic_vector(1 downto 0); setcs,setcm,setch,setas,setam,setah:out std_logic); end mc; architecture work of mc is signal mode,kmode:std_logic_vector(1 downto 0); signal light,chose21buf:std_logic; signal setcount:std_logic_vector(5 downto 0); begin process(functionswitch,k,set,lightkey) begin if functionswitch'event and functionswitch='1' then mode<=mode+'1';

基于VHDL的数字电子钟系统设计

基于VHDL的数字电子钟系统设计 数字电子钟是一种用数字电路实现的时钟系统,在现代社会逐渐普及。在这篇文档中,我们将会讨论使用VHDL(可编 程硬件描述语言) 设计数字电子钟系统的过程及其原理。 第一步是需求分析。我们需要决定所设计的数字电子钟系统需要具备哪些功能,例如显示小时、分钟、秒数、日期、星期、闹钟等功能。同时,还需考虑设计的电子钟具备哪些功能是其他电子钟所没有的,以增强该款电子钟的市场竞争力。 第二步是架构设计。经过需求分析后,我们需要设计电子钟系统所需的硬件结构。常见的电子钟由振荡器、时钟、存储器、显示器和控制接口组成。其中,振荡器用来处理系统时基;时钟用来计时,提供系统时间;存储器负责存储显示数据和助记代码;显示器用来显示时间和日期;而控制接口则提供交互方式,如按键、通讯口等。 第三步是模块设计。使用VHDL 可以将架构设计分解成 更小的模块,进行编写和测试。这些模块可以包括时钟模块、计数器模块、闹钟模块、数据显示模块等。其中,时钟模块需要使用振荡器生成时钟信号,计数器模块必须进行计时,生成秒数和毫秒数的输出信号;然后,使用数码管显示模块将这些输出信号转换成可读的时间、日期和闹钟信息;再添加按键输入模块,以便用户操作和控制该电子钟系统。

第四步是系统测试。在VHDL 设计结束后,需要对数字电子钟系统进行实际测试。首先,系统测试需要用到仿真软件对整个系统进行验证。同时,需要将程序下载到FPGA 芯片上,并通过硬件测试验证设计的电子钟系统是否符合需求和规范。 综上所述,设计数字电子钟系统需要遵循一定的流程,包括需求分析、架构设计和模块设计,在这个过程中也需要注重各个模块之间的兼容性和整体性。这篇文档给大家介绍了使用VHDL 搭建数字电子钟系统的方法,希望广大读者可以从中获得借鉴。

电子综合设计多功能数字钟报告

电子综合设计多功能数字钟报告 报告内容如下: 一、设计目的和原理 多功能数字钟是一种能够显示时间,并具有闹钟、计时、倒计时等功 能的电子设备。本设计的目的是通过FPGA实现一个多功能数字钟的功能,以实现时间的显示和闹钟的设置功能。 二、设计方案和实现 1.硬件设计方案: 本设计使用FPGA作为主控芯片,使用七段数码管作为显示器,通过 与FPGA的IO口连接来实现时间的显示功能。同时,使用按键作为输入进 行功能的选择和设置。 2.硬件连接: 将FPGA的IO口连接到七段数码管的控制端,通过IO口输出相应的 数字信号来控制数码管的亮灭。将按键连接到FPGA的IO口,通过IO口 输入按键的信号。此外,还需要连接一个晶振电路来提供时钟信号。 3.软件设计方案: 本设计使用VHDL语言进行程序设计,通过状态机来实现多功能数字 钟的功能。具体实现包括时间的显示、闹钟的设置和启动、计时和倒计时 功能的实现。通过按键的输入来切换不同的状态,实现不同功能的切换和 设置。 4.软件实现具体步骤:

(1)定义状态机的状态,包括时间显示、闹钟设置、计时和倒计时等状态。 (2)在时间显示状态下,通过FPGA的IO口输出相应的数字信号来控制七段数码管的亮灭,实现时间的显示。 (3)在闹钟设置状态下,通过按键的输入来设置闹钟时间,并将设置好的时间保存在寄存器中。 (4)在计时和倒计时状态下,通过按键的输入来实现计时和倒计时功能,并通过七段数码管的显示来实时显示计时和倒计时的时间。 以下为本设计的完整程序代码: ```vhdl --时钟频率 --定义状态 signal state : state_type; --定义时钟、按键和数码管信号 signal clk : std_logic; signal key : std_logic_vector(1 downto 0); signal seg : std_logic_vector(6 downto 0); --闹钟时间寄存器 signal alarm_hour_reg : std_logic_vector(5 downto 0); signal alarm_min_reg : std_logic_vector(5 downto 0);

VHDL电子时钟的设计

VHDL电子时钟的设计 VHDL(Very High Speed Integrated Circuit Hardware Description Language)是一种硬件描述语言,用于设计和模拟数字电路和系统。在这篇文章中,我们将探讨VHDL电子时钟的设计。 设计一个VHDL电子时钟需要考虑以下几个方面:时钟的显示方式、时钟的时钟源以及时钟的控制逻辑。 首先,我们需要确定时钟的显示方式。常见的电子时钟显示方式有7段LED显示和LCD显示。在这里,我们选择使用7段LED显示。7段LED 显示由7个LED灯组成,可以显示0到9的数字。此外,还需要考虑到显示小时和分钟的两个时钟。 接下来,我们需要确定时钟的时钟源。时钟源决定了时钟的精度和稳定性。在VHDL设计中,常用的时钟源有晶体振荡器和时钟发生器。晶体振荡器由晶体和振荡电路组成,可以提供非常精确和稳定的时钟信号。时钟发生器则基于计数器和除频器的原理产生时钟信号。根据实际需求选择合适的时钟源。 最后,我们需要设计时钟的控制逻辑。控制逻辑决定了时钟的功能和操作方式。在这里,我们将设计一个简单的时钟,包括设置时间、调节时间、显示时间和闹钟功能。我们可以使用按钮和开关控制时钟的功能。 下面是一个VHDL电子时钟的示例设计代码: ```vhdl --时钟显示模块 entity ClockDisplay is

port clk : in std_logic; reset : in std_logic; hours : in integer range 0 to 23; minutes : in integer range 0 to 59; alarm : in std_logic; seg7 : out std_logic_vector(6 downto 0) end entity ClockDisplay; architecture Behavioral of ClockDisplay is signal count : integer := 0; signal sec : integer := 0; signal disp_hours : integer := 0; signal disp_minutes : integer := 0; begin process (clk, reset) begin if reset = '1' then count <= 0; sec <= 0;

电子钟设计报告(震)

电子钟设计报告 设计摘要 电子钟是一个对周期1秒的信号进行计数,并具有调整校时功能的计数系统。根据设计要求,本系统利用BTGY-EDA实验箱的硬件资源,采用VHDL硬件描述语言,设计了一个简易电子钟。该电子钟除了具有计时、校时功能外,还具有秒表功能。 设计要求 利用BTGY-EDA实验箱的资源,采用VHDL硬件描述语言,设计一个具有校时、秒表功能的 时钟系统。 方案设计 本时钟系统的整体结构图如图-1所示,下面简单介绍一下各个模块的具体设计方法和功能。(一)显示模块 显示器采用BTGY-EDA实验箱上的6个LED七段数码管(静态显示),具有时钟显示和秒表显示两种显示状态,采用一个切换键来切换这两种状态(具体实现见键盘模块)。将6个数码管自左向右两两组合分为三部分,时钟显示状态分别显示时、分、秒,秒表显示状态分别显示分、秒、毫秒(毫秒位的单位为10ms)。 (二)键盘模块 根据设计要求,本时钟系统的键盘模块主要由6个键组成,分别为预置键、方式键、时钟清零键、切换键、秒表清零键和秒表开始/结束键。 方式键:本系统将时钟状态分为校秒、校分、校时、正常工作四种状态,通过方式键可依次选择这四种状态。具体实现是采用一个四进制计数器对方式键进行计数,利用计数器的00、01、10、11分别对应正常工作、校秒、校分、校时四种状态。 预置键:和方式键配合使用对时、分、秒进行预置。具体实现是采用选择器选择对按键计数和对进位脉冲计数,选择器的选择控制端由上面的方式键来控制。考虑到预置时的直观效果,本设计采用闪烁效果来指示相应的预置位。 切换键:通过此键来切换时钟显示和秒表显示。具体实现是采用一个二进制计数器,利用计数器的00、01两种状态来控制一个多路选择器的选择控制端。 时钟清零键、秒表清零键:通过按键产生一个高电平信号给计数器的清零端完成计时和秒表清零。 秒表开始/结束键:按此键触发、结束秒表计时。此键和秒表清零键结合可使秒表从零开始计时。 各键的定义(以BTGY-EDA实验箱为准)如图-2所示。

基于VHDL的数字钟设计及其仿真

基于VHDL的数字钟设计及其仿真 结构化设计元件例化配置原理图 一引言 所谓数字钟是指利用电子电路构成的计时器,相对机械钟而言,数字钟能达到准确计时, 同时能对该种进行调整。当然,在此基础上还能够实现整点报时,定时报闹等功能。 设计过程采用系统设计的方法,先分析任务得到系统要求,然后进行总体设计,划分子 系统,然后进行详细设计,决定各个功能子系统的VHDL程序,最后进行调试仿真。 通过此次设计,对基于VHDL的结构化描述有深刻理解,为今后的集成电路设计打下坚实的基础。 二设计任务和要求 对于时钟,最基本的要求应具有时分秒的计数功能。对于秒必须满足每满60s,分要记 一个数,并且秒重新从零计起;对于分必须满足60min,小时要记一个数,并且分重新从零 计起,对于时满24后也应重新从零计起。此外当数字中走慢或走快时,还应能予以调整。所以要求设计的数字中电路应具有以下功能: 1.具有十分秒计数功能,并进行十进制数字显示。 2.能分别进行时分的手动校正。 三工作原理 时钟信号的频率有振荡器产生,由于技术最小单位为1s,所以时钟信号经分频器后输 出频率为1Hz的秒脉冲elk ;而校准信号的频率应高于1Hz,若取0.5,则时钟信号经另一个分频器后输出频率为2Hz的校准信号脉冲clk1。 当无校准信号作用,即校分信号xf、校时信号xs为高电平,整个电路处于正常计数的 工作状态时分秒计数器采用同步计数方式其时钟脉冲端均接有分频器输出的时钟信号elk.。 en为使能端,高电平有效。三个计数器的复位端elr置入数据控制端Id都接高电平,故其置入端 d[7…0]失效,且各计数器输出端分别接译码显示电路。 当有校准信号时,不妨假设只有校分信号,即xf=O、xf=1,则在二选一数据选择器的控 制下,分计数器的en端将始终接高电平,即分计数器将独立于秒计数器自行独立计数,但其结果仍影响到时计数器,因为此时没有校时信号。同理,当只有校时信号或同时具有校时、校分信号,情况同上述分析一样。

vhdl课程设计(电子钟+闹铃)

v h d l课程设计(电子 钟+闹铃) -CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN

数字钟的设计 一、系统功能概述 (一)、系统实现的功能: 1、具有“时”、“分”、“秒”的十进制数字显示(小时从00 ~ 23)。 2、具有手动校时、校分、校秒的功能。 3、有定时和闹钟功能,能够在设定的时间发出闹铃声。 4、能进行整点报时。从59分50秒起,每隔2秒发一次低音“嘟”的信 号,连续5次,最后一次为高音“嘀”的信号。 (二)、各项设计指标: 1、显示部分采用的6个LED显示器,从高位至低位分别显示时、分、秒。 2、有一个设置调闹钟定时时间、正常时间的按钮,选择调的对象。 3、有三个按钮分别调时、分、秒的时间。 4、有一个按钮用作开启/关闭闹铃。 5、另外需要两个时钟信号来给系统提供脉冲信号,使时钟和闹钟正常工 作,分别为1Hz、1kHz的脉冲。 二、系统组成以及系统各部分的设计 1、系统结构描述

三、课程设计过程中遇到的问题以及解决方法 主要是在“调整时间”和“调整定时”的上面遇到非常大的困难。与开始想象的不一样,一个进程中不能加入时钟信号,没能够将按键脉冲直接与时钟脉冲进行累加。同时,在对VHDL的语法的熟悉上也花费了大量的时间。 最后的解决方法是,通过另一个进程,先将这两个信号进行处理后,分别产生aclk和tclk分别为定时调整部分、和时间调整部分提供时钟信号。调整按键的脉冲信号和正常的时钟信号不是按照简单的或运算来处理的。 1)、如果要调整时间: 1、当时钟信号是高电平,按键信号也是高电平时,则给tclk赋值 0。 2、当时钟信号是高电平,按键信号是低电平时,则给tclk赋值1。 3、当时钟信号是低电平,按键信号是高电平时,则给tclk赋值1。 4、当时钟信号是低电平,按键信号是低电平是,则给tclk赋值0。 这样无论按键脉冲是在高电平还是低电平,或者是在高低电平两种状态下出现,其最终结果都是会多产生一个脉冲信号,导致计数值变化,达到修改时间的目的。期间,aclk始终不变。 2)、如果要调整定时: 1、时钟输入信号赋值给tclk 2、按键输入信号赋值给aclk 这样,当按键脉冲结束时,定时调整信号会出现一个脉冲。而时钟信号不受影响。 另外,在闹铃产生上也遇到了一些小问题,最后,通过在产生周期较长的信号,切换输出值的内容“嘟”还有“嘀”,最后的效果就是“嘟”、“嘀”声音交替发出。

基于VHDL的数字时钟设计

目录 1 概述.........................................................................错误!未定义书签。 1.1数字时钟的工作原理 (1) 1.2设计任务 (1) 2 系统总体方案设计 (2) 3 VHDL模块电路设计 (3) 3.1模块实现 (3) 3.1.1分频模块pinlv (3) 3.1.2按键去抖动模块qudou (5) 3.1.3按键控制模块self1 (6) 3.1.4秒、分六十进制模块cantsixty (7) 3.1.5时计数模块hourtwenty (9) 3.1.6秒、分、时组合后的模块 (9) 3.1.7数码管显示模块 (10) 3.2数字时钟的顶层设计原理图 (13) 3.3系统仿真与调试 (14) 结束语 (16) 参考文献 (17) 致谢 (18) 附录源程序代码 (19)

1 概述 1.1数字时钟的工作原理 数字钟电路的基本结构由两个60进制计数器和一个24进制计数器组成,分别对秒、分、小时进行计时,当计时到23时59分59秒时,再来一个计数脉冲,则计数器清零,重新开始计时。秒计数器的计数时钟CLK为1Hz的标准信号,可以由晶振产生的50MHz信号通过分频得到。当数字钟处于计时状态时,秒计数器的进位输出信号作为分钟计数器的计数信号,分钟计数器的进位输出信号又作为小时计数器的计数信号,每一秒钟发出一个中断给CPU,CPU采用NIOS,它响应中断,并读出小时、分、秒等信息。CPU对读出的数据译码,使之动态显示在数码管上。 1.2 设计任务 设计一个基于VHDL的数字时钟,具体功能要求如下: 1.在七段数码管上具有时--分--秒的依次显示。 2.时、分、秒的个位记满十向高位进一,分、秒的十位记满五向高位进一,小时按24进制计数,分、秒按60进制计数。 3.整点报时,当计数到整点时扬声器发出响声。 4.时间设置:可以通过按键手动调节秒和分的数值。此功能中可通过按键实现整体清零和暂停的功能。 5.LED灯循环显示:在时钟正常计数下,LED灯被依次循环点亮。 2 系统总体方案设计

vhdl数字时钟设计

《EDA》课程设计 设计题目:VHDL数字时钟设计 系部:电子信息与电气工程 年级:12 级 班级:自动化(1)班 姓名:王廷弼 学号:1205033015

VHDL数字时钟设计 1、功能介绍 1)具有时、分、秒计数显示功能,以24小时循环计时. 2)时钟计数显示时有LED灯的花样显示。 3)具有调节小时、分钟及清零的功能. 4)具有整点报时功能. 2、总体方框图 3、性能指标及功能设计 1)时钟计数:完成时、分、秒的正确计时并且显示所计的数字;对秒、分——60进制计数,即从0到59循环计数,时钟——24进制计数,即从0到23循环计数,并且在数码管上显示数值. 2)时间设置:手动调节分钟、小时,可以对所设计的时钟任意调时间,这样使数字钟真正具有使用功能。我们可以通过实验板上的键7和键4进行任意的调整,因为我们用的时钟信号均是1HZ的,所以每LED灯变化一次就来一个脉冲,即计数一次。 3)清零功能:reset为复位键,低电平时实现清零功能,高电平时正常计数。可以根据我们自己任意时间的复位。 4)蜂鸣器在整点时有报时信号产生,蜂鸣器报警。产生“滴答.滴答”的报警声音.

5)LED灯在时钟显示时有花样显示信号产生。即根据进位情况,LED不停的闪烁,从而产生“花样”信号。 4、方案选择 根据总体方框图及各部分分配的功能可知,本系统可以由秒计数器、分钟计数器、小时计数器、整点报时、分的调整以及小时的调整和一个顶层文件构成。采用自顶向下的设计方法,子模块利用VHDL语言设计,顶层文件用原理图的设计方法。显示:小时采用24进制,而分钟和秒均60进制. 5、细化框图 根据自顶向下的方法以及各功能模块的的功能实现上述设计方案应系统细化框图: 6、编写程序、仿真和分析 1、秒计数器 1)VHDL语言描述程序

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

EDA课程设计——基于VHDL 语言的数字时钟设计(可编辑)(文档可以直接使用,也可根据实际需要修改使用,可编辑推荐下载)

一、设计要求 0 二、设计原理及框图 0 1、设计原理 0 2、结构框图 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)显示模块 系统时间输出由六个七段数码管显示。 显示的数据是各计时模块给出的 BCD码。

相关主题
相关文档
最新文档