数字钟的设计.docx_第1页
数字钟的设计.docx_第2页
数字钟的设计.docx_第3页
数字钟的设计.docx_第4页
数字钟的设计.docx_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

设 计 报 告课程名称 在系统编程技术 任课教师 周泽华 设计题目 数字钟的设计 班级 级电子(1)班 姓名 学号 日期 2013.12.27 摘要数字钟是现代计时器,也可用作时间控制的时钟源。数字钟具有走时准,显示直观,款式新颖,附加功能多等优点深受大家喜欢。设计一个可以走时的数字钟。由于数字集成电路的发展和广泛应用,使得数字钟的精度远远超过老式钟表,钟表的数字化给人们生产生活带来了极大方便,而且大大扩展了钟表原来的功能。如自动报时,定时广播等,所有这些都是以钟表数字化为基础的。因此研究数字钟及扩大其应用,有着非常现实的积极意义。实现这种进步的主要原因就是电子设计技术和电子制造技术的发展,其核心就是电子设计自动化(eda,electronicsdesignautomation)技术,eda技术的发展和推广应用又极大地推动了电子信息产业的发展。eda技术在电子系统设计领域越来越普及,本设计主要利用vhdl语言在eda平台上设计一个电子数字钟,它的计时周期为24小时,显示满刻度为24时59分59秒,另外还具有校时功能和闹钟功能。总的程序由几个各具不同功能的单元模块程序拼接而成,其中包括分频程序模块、时分秒计数和设置程序模块、比较器程序模块、三输入数据选择器程序模块、译码显示程序模块和拼接程序模块。并且使用quartus ii软件进行电路波形仿真,下载到eda实验箱进行验证。关键词:数字钟 eda vhdl语言一、 题目分析21、功能要求22、总体方框图23、设计原理3二、设计方案31、子模块3三、设计步骤5四、实验总结11五、附录12一、 题目分析 1、功能要求(1) 具有时、分、秒计数显示功能,以24小时循环计时。 (2) 时钟计数显示时有led 灯的花样显示。 (3) 具有调节小时、分钟、秒及清零的功能。 (4) 具有整点报时功能。 2、总体方框图本系统可以由秒计数器、分钟计数器、小时计数器、整点报时、分的调整以及小时的调整和一个顶层文件构成。采用自顶向下的设计方法,子模块利用vhdl 语言设计,顶层文件用原理图的设计方法。显示则小时采用24进制,而分钟和秒是采用6 进制和10进制的组合。3、设计原理(1)时钟计数:完成时、分、秒的正确计时并且显示所计的数字;对秒、分60进制计数,即从0到59循环计数,时钟24进制计数,即从0到23循环计数,并且在数码管上显示数值。(2)时间设置:手动调节分钟、小时,可以对所设计的时钟任意调时间,这样使数字钟真正具有使用功能。我们可以通过实验板上的键7和键4进行任意的调整,因为我们用的时钟信号均是1hz的,所以每led灯变化一次就来一个脉冲,即计数一次。(3)清零功能:reset为复位键,低电平时实现清零功能,高电平时正常计数。可以根据我们自己任意时间的复位。(4)蜂鸣器在整点时有报时信号产生,蜂鸣器报警。产生“滴答.滴答”的报警声音。(5)led灯在时钟显示时有花样显示信号产生。即根据进位情况,led不停的闪烁,从而产生“花样”信号。二、设计方案根据总体方框图及各部分分配的功能可知,本系统可以由四个子模块和一个顶层文件构成。采用自顶向下的设计方法,子模块利用vhdl语言设计,顶层文件用原理图的设计方法。1、子模块(1)秒计数器(second)模块它是由一个60进制的计数器构成的,具有清0、置数和计数功能。其中reset为清0信号,当reset为0时,秒计时器清0;clk为系统时钟信号;setmin是分钟的设置信号;enmin为秒计时器的进位信号,作为下一级的输入信号;daout是秒计数值。(2)分钟计数器(minute)模块它是由一个60进制的计数器构成的,具有清0、置数和计数功能。其中reset为清0信号,当reset为0时,分计时器清0;clk为系统时钟信号;clk1为设置时钟信号;sethour时设置信号;enhour为分计时器的进位信号,作为下一级的输入信号。(3)小时计数器(hour)模块是由一个24进制的计数器构成的,具有清0、置数和计数功能。其中reset为清0信号,当reset为0时,时计时器清0;clk为时计数时钟信号;daout为时计数值。(4)整点报时器(alarm)模块它的功能是整点时,报时持续1分钟,dain为分计数值;speak为蜂鸣器报警;lamp为花样显示灯。 2、数字钟设计的电路原理图三、设计步骤1、打开quartusii9.0,单击“file”菜单,将鼠标移到new project wizard 选项单击则显示如下图内容,在其中建立项目名和实体名,项目名和实体必须保持一致,最后点击finish完成。2、在其中点击filenew,选择原理图编辑器,在这里我们建立vhdl文件,点击确定则显示下图情况,可以在里面键入程序,如下图。3、选择目标器件并编译(1)在assignments选项的下拉菜单中选择器件选择项device,如图所示。在device family(器件序列栏)中选定目标器件对应的序列名,ep1c6对应的是cyclone系列。为了选择ep1c6q240c8器件,应将此栏下方标有show only fastest speed grades的勾消去,以便显示出所有速度级别的器件。完成器件选择后,按ok键。 (2)编译工程项目。单机水平工具条上的编译按钮开始编译,编译完全正确后的屏幕如下图所示。4、时序仿真(1)建立波形文件:选择file-new,选择vector waveform file,单击ok。 (2)双击name下的空白处,弹出insert nod or bus对话框,单击node finder。(3)在filter中选择all,单击list,再单击“”,最后单击ok。(4)加上输入信号后波形文件存盘,运行仿真器,在processing菜单下选择startsimulation项,直到simulator was successful出现,仿真结束。5、引脚锁定选择assignassignment editor,在跳出的窗口中的category中选择pin。在to中选择端口,location中进行锁定,锁定如图。6、编程下载(1)首先将下载线把计算机的打印机口与目标板(如开发板或实验板)连接好,打开电源,选择模式7。 (2)打开编辑窗和配置文件。选择,弹出一个编辑窗。在mode栏中选择jtag,并在选项下的小方框打勾。注意核对下载文件路径与文件名。如果文件没有出现或者出错,单击左add file侧按钮,手动选择配置文件 clocksof。 (3)最后设置编程器,再下载标符start,即进入对目标器件 fpga 的配置下载操作。当 progress 显示100%,以及在底部的处理栏中出现 configuration succeeded 时,表示编程成功,如图所示。注意,如果必要时,可再次单击 start ,直至编程成功。7、实验现象实验箱使用模式7,键8为复位按键,键8为1时正常工作。键4设置小时,键7设置分钟。下载成功后,按下键8,及使六个led复位清零,显示数秒的自动计时,可以通过4键设置小时数,7键设置分钟数。当秒数满60则进一位,分钟数满60进一位,当显示为23:59:59时,秒数在加一则显示00:00:00,之后从新计时。四、实验总结通过这次设计实验,使得我对层次化结构化设计有了更深的了解。在设计中将设计任务分成了几个子模块,完成各子模块的设计功能,然后再将各模块合起来联试,加深了层次化设计概念。在设计的过程中,我遇到许多问题,毕竟是第一次应用vhdl进行硬件电路系统的设计,许多eda的知识还没有充分的掌握,遇到困难也是在所难免的,同时发现了自己的不足之处:学习知识表面化,没有深入了解它们的原理。只有理论知识无法实现相关的设计和实际操作,当把所学的理论知识与实践相结合起来,从理论中得出结论,这样才能把所学的理论知识更加巩固至掌握住,才能提高自己的实际动手能力和独立思考能力。在此,也感谢周老师的悉心指导,让我学到很多。参考文献1、潘松 黄继业主编,eda技术实用教程-vhdl版(第四版)北京:科学出版社,20102、崔建明主编,电工电子eda仿真技术北京:高等教育出版社,20043、李衍编著,eda技术入门与提高王行西安:西安电子科技大学出版社4、侯继红,李向东主编,eda实用技术教程北京:中国电力出版社5、侯伯亨等,vhdl硬件描述语言与数字逻辑电路设计西安:西安电子科技大学出版五、附录秒钟计数器vhdl语言源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity second isport( clk,reset,setmin:std_logic; enmin:out std_logic; daout:out std_logic_vector(6 downto 0);end entity second;architecture fun of second issignal count:std_logic_vector(6 downto 0);signal enmin_1,enmin_2:std_logic; begin daout=count; enmin_2=(setmin and clk); enmin=(enmin_1 or enmin_2); process(clk,reset,setmin) begin if(reset=0)then count=0000000; elsif(clk event and clk=1)then if(count(3 downto 0)=1001)then if(count16#60#)then if(count=1011001)then enmin_1=1;count=0000000; else count=count+7; end if; else count=0000000; end if; elsif(count16#60#)then count=count+1; enmin_1=0after 100 ns; else count=0000000; end if; end if; end process;end fun;分钟计数器vhdl语言源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity minute is port(clk,clk1,reset,sethour:in std_logic; enhour:out std_logic; daout:out std_logic_vector(6 downto 0);end entity minute ;architecture fun of minute is signal count :std_logic_vector (6 downto 0); signal enhour_1, enhour_2: std_logic; begin daout=count; enhour_2= (sethour and clk1); enhour= (enhour_1 or enhour_2); process(clk,reset,sethour) begin if(reset=0) then count=0000000; elsif(clkevent and clk=1)then if(count (3 downto 0) =1001)then if(count 16#60#) then if(count=1011001) then enhour_1=1; count=0000000; else count=count+7; end if; else count=0000000; end if; elsif (count 16#60#) then count=count+1; enhour_1=0 after 100 ns; else count=0000000; end if; end if; end process;end fun; 小时计数器vhdl语言源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity hour is port(clk,reset:in std_logic; daout:out std_logic_vector(5 downto 0);end entity hour;architecture fun of hour issignal count:std_logic_vector(5 downto 0); begin daout=count; process(clk,reset) begin if(reset=0)then count=000000; elsif(clkevent and clk=1)then if(count(3 downto 0)=1001)then if(count16#23#)then count=count+7; else count=000000; end if; elsif (count16#23#)then count=count+1; else count=000000; end if; end if; end process;end fun;整点报时模块vhdl语言源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论