毕业设计(论文)基于VHDL的数字闹钟设计.doc

上传人:laozhun 文档编号:3980002 上传时间:2023-03-30 格式:DOC 页数:20 大小:445.50KB
返回 下载 相关 举报
毕业设计(论文)基于VHDL的数字闹钟设计.doc_第1页
第1页 / 共20页
毕业设计(论文)基于VHDL的数字闹钟设计.doc_第2页
第2页 / 共20页
毕业设计(论文)基于VHDL的数字闹钟设计.doc_第3页
第3页 / 共20页
毕业设计(论文)基于VHDL的数字闹钟设计.doc_第4页
第4页 / 共20页
毕业设计(论文)基于VHDL的数字闹钟设计.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《毕业设计(论文)基于VHDL的数字闹钟设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于VHDL的数字闹钟设计.doc(20页珍藏版)》请在三一办公上搜索。

1、毕 业 设 计(论 文)论文题目: 基于VHDL的数字闹钟设计所属系部: 指导老师: 职 称: 学生姓名: 班级、学号: 专 业: 毕业设计(论文)任务书题目: 基于VHDL的数字闹钟设计任务与要求: 设计一个带闹钟功能的24小时计时器。 完成功能:1.计时功能:每隔1分钟计时1次,并在显示屏上显示当前时间。 2.闹钟功能: 如果当前时间与设置的闹钟时间相同,扬声器发出蜂鸣声。时间: 年 月 日 至 年 月 日 共 周所属系部: 学生姓名: 学 号: 专业: 指导单位或教研室: 指导教师: 职 称: 毕业设计(论文)进度计划表 日 期工 作 内 容执 行 情 况指导教师签 字10月08日至10

2、月09日论文选题完成10月10日至10月17日查找并搜集论文材料完成10月18日至11月08日提交论文大纲给指导老师,并进行修改完成9月10日至10月10日拟定论文提纲及框架,编辑论文正文内容完成10月11日至10月21日对论文进行排版,修正完成10月22日至12月14日提交论文给指导老师,并进行修改完成12月15日打印论文,交论文初稿完成教师对进度计划实施情况总评 签名 年 月 日 本表作评定学生平时成绩的依据之一。基于VHDL的数字闹钟设计【摘要】随着EDA技术的发展和应用领域的扩大与深入,EDA技术在电子信息、通信、自动控制及计算机应用领域的重要性日益突出。EDA技术就是依赖功能强大的计

3、算机,在EDA工具软件平台上,对以硬件描述语言VHDL为系统逻辑描述手段完成的设计文件,自动地完成逻辑优化和仿真测试,直至实现既定的电子线路系统功能。本文介绍了基于VHDL硬件描述语言设计的多功能数字闹钟的思路和技巧。在Quartus 11开发环境中编译和仿真了所设计的程序,并逐一调试验证程序的运行状况。仿真和验证的结果表明,该设计方法切实可行,该数字闹钟可以实现调时定时闹钟功能具有一定的实际应用性。关键词:数字闹钟 FPGA VHDL Quartus IIAbstract: With the EDA technology development and expansion of applic

4、ation fields and in-depth, EDA technology in the electronic information, communication, automatic control and computer applications of growing importance. EDA technology is dependent on a powerful computer, the software platform in the EDA tools for the hardware description language VHDL description

5、 for the system logic means completed design documents, automatically complete the test logic optimization and simulation, electronic circuit set up to achieve the system functionality. This article describes the VHDL hardware description language based on multi-function digital alarm clock design i

6、deas and techniques. In the Quartus 11 compiler and development environment designed to simulate the process, and one by one to debug verification process operating conditions. Simulation and verification results show that the design method is feasible, digital alarm clock can adjust the time when t

7、he alarm clock to play music with some practical application.Key words: Alarm Clock FPGA VHDL Quartus II目 录1 选题背景61.1 选题研究内容61.2 课题研究功能 课题研究功能61.3 课题相关技术应用62 FPGA 简介82.1 FPGA 概述82.2 FPGA 编程原理82.3 FPGA 设计流程93 总体设计思想103.1 基本原理103.2 设计框图104 设计步骤和调试过程114.1 总体设计电路114.2 模块设计和相应模块程序124.3 仿真及仿真结果分析154.4实验调试

8、结果17结束语19文 献201 选题背景1.1 选题研究内容设计一个 24 小时的闹钟,该闹钟由显示屏、数字键、TIME 键、ALARM 键、 扬声器组成。 闹钟总体系统包括如下几步分组成:用于键盘输入预置数字的键盘缓冲器;用于时钟计数的计数器;用于保存闹钟时间的闹钟寄存器;用于显示的七段数码 显示器及控制以上各个部分协同工作的闹钟控制器。1.2 课题研究功能 课题研究功能(1)显示屏,由4 个七段数码管组成,用于显示当前时间(时:分)或设置的闹钟时间;(1)数字键,实现09的输入,用于输入新的时间或新的闹钟时间;(2)TIME(时间)键,用于确定新的时间设置;(3)ALARM(闹钟)键,用于

9、确定新的闹钟时间设置,或显示已设置的闹钟时间;(4)扬声器,在当前时钟时间与闹钟时间相同时,发出蜂鸣声完成功能(1)计时功能:这是本计时器设计的基本功能,每隔一分钟计时一次,并在显示屏上显示当前时间。(2)闹钟功能:如果当前时间与设置的闹钟时间相同,则扬声器发出蜂鸣声。(3)设置新的计时器时间:用户用数字键输入新的时间,然后按TIME键确认。在输入过程中,输入数字在显示屏上从右到左依次显示。1.3 课题相关技术应用EDA 技术和硬件描述语言 VHDL 的基础知识,通过对工程实例的系统分析、程 序设计和仿真,深入细致地讨论了它们在数字系统设计中的广泛应用。电子设计 自动化(Electronic

10、Design Automation,即 EDA)技术是指包括电路系统设计、 系统仿真、设计综合、PCB 版图设计和制版的一整套自动化流程。随着计算机、 集成电路和电子设计技术的高速发展, 技术已经渗透到百姓生活的各个角落, EDA 日益成为电子信息类产品的支柱产业。 秒表、彩灯控制器、抢答器、电梯控制器、出租车计费器、微波炉控制器、 FIR 滤波器、I2C 控制器、DDS、序列检测器、自动售货机、函数发生器、调制解 调器和 UART 等 15 个数字系统的 VHDL 设计范例,给用户演示了数字电路的设计 方法和思路。 当今电子产品正向功能多元化,体积最小化,功耗最低化的方向发展。它与传 统的电

11、子产品在设计上的显著区别师大量使用大规模可编程逻辑器件,使产品的 性能提高,体积缩小,功耗降低.同时广泛运用现代计算机技术,提高产品的自 动化程度和竞争力,缩短研发周期。EDA 技术正是为了适应现代电子技术的要求, 吸收众多学科最新科技成果而形成的一门新技术。2 FPGA 简介2.1 FPGA 概述FPGA 是现场可编程门阵列(Field Programmable Gate Array)的简称, 与之相应的 CPLD 是复杂可编程逻辑器件(Complex Programmable Logic Device) 的简称,两者的功能基本相同,只是实现原理略有不同,所以有时可以忽略这两 者的区别,统称

12、为可编程逻辑器件或 CPLD/PGFA。CPLD/PGFA 几乎能完成任何数 字器件的功能,上至高性能 CPU,下至简单的 74 电路。它如同一张白纸或是一堆 积木,工程师可以通过传统的原理图输入或硬件描述语言自由的设计一个数字系 统。 通过软件仿真可以事先验证设计的正确性, PCB 完成以后, 在 利用 CPLD/FPGA 的在线修改功能,随时修改设计而不必改动硬件电路。使用 CPLA/FPGA 开发数字 电路,可以大大缩短设计时间,减少 PCB 面积,提高系统的可靠性。这些优点使 得 CPLA/FPGA 技术在 20 世纪 90 年代以后得到飞速的发展, 同时也大大推动了 EDA 软件和硬

13、件描述语言 HDL 的进步。 2.1.1 FPGA 基本结构 FPGA 一般由 3 种可编程电路和一个用于存放编程数据的静态存储器 SRAM 组 成。这 3 种可编程电路是:可编程逻辑模块(CLB-Configurable Logic Block)、 输入/输出模块(IOB-I/O Block)和互连资源(IRInterconnect Resource)。 可编程逻辑模块 CLB 是实现逻辑功能的基本单元,它们通常规则的排列成一个阵 列,散布于整个芯片;可编程输入/输出模块(IOB)主要完成芯片上的逻辑与外 部封装脚的接口,它通常排列在芯片的四周;可编程互连资源包括各种长度的连 接线段和一些可

14、编程连接开关,它们将各个 CLB 之间或 CLB、IOB 之间以及 IOB 之间连接起来,构成特定功能的电路。2.2 FPGA 编程原理硬件设计需要根据各种性能指标、成本、开发周期等因素,确定最佳的实现 方案,画出系统框图,选择芯片,设计 PCB 并最终形成样机。 CPLD/FPGA 软件设计可分为两大块:编程语言和编程工具。编程语言主要有 VHDL 和 Verilog 两种硬件描述语言;编程工具主要是两大厂家 Altera 和 Xilinx 的集成综合 EDA 软件(如 MAX+plusII、QuartusII、Foundation、ISE)以及第三 方工具(如 FPGA Express、M

15、odelsim、Synposys SVS 等)。具体的设计输入方 式有以下几种: 1.HDL 语言方式。HDL 既可以描述底层设计,也可以描述顶层的设计,但它 不容易做到较高的工作速度和芯片利用率。用这种方式描述的项目最后所能达到 的性能与设计人员的水平、经验以及综合软件有很大的关系。 2.图形方式。可以分为电路原理图描述,状态机描述和波形描述 3 种形式。 有的软件 3 种输入方法都支持,如 Active-HDL。MAX+plusII 图形输入方式只支持电路原理图描述和波形描述两种。电路原理图方式描述比较直观和高效,对综 合软件的要求不高。一般大都使用成熟的 IP 核和中小规模集成电路所搭成

16、的现 成电路,整体放到一片可编程逻辑器件的内部去,所以硬件工作速度和芯片利用 率很高,但是但项目很大的时候,该方法就显得有些繁琐;状态机描述主要用来 设计基于状态机思想的时序电路。在图形的方式下定义好各个工作状态,然后在 各个状态上输入转换条件以及相应的输入输出,最后生成 HDL 语言描述,送去综 合软件综合到可编程逻辑器件的内部。由于状态机到 HDL 语言有一种标准的对应 描述方式,所以这种输入方式最后所能达到的工作速度和芯片利用率主要取决于 综合软件;波形描述方式是基于真值表的一种图形输入方式,直接描述输入与输 出的波形关系。这种输入方式最后所能达到的工作速度和芯片利用率也是主要取 决于综

17、合软件。2.3 FPGA 设计流程一般说来,一个比较大的完整的项目应该采用层次化的描述方法:分为几个 较大的模块,定义好各功能模块之间的接口,然后各个模块再细分去具体实现, 这就是 TOP DOWN(自顶向下)的设计方法。目前这种高层次的设计方法已被广泛 采用。高层次设计只是定义系统的行为特征,可以不涉及实现工艺,因此还可以 在厂家综合库的支持下,利用综合优化工具将高层次描述转换成针对某种工艺优 化的网络表, 使工艺转化变得轻而易举。3 总体设计思想3.1 基本原理数字闹钟电路的基本结构由两个60进制计数和一个24进制计数器组成,分别对秒、分、小时进行计时,当计时到23时59分59秒时,再来一

18、个计数脉冲,则计数器清零,重新开始计时。秒计数器的技术时钟CLK为HZ的标准信号。当数字闹钟处于计时状态时,秒计数器的进位输出信号作为分钟计数器的计数信号,分钟计数器的进位输出信号又作为小时计数器的计数信号时、分、秒得计时结果通过6个数码管来动态显示。因此,通过模式选择信号KEY1、KEY2控制数字钟的工作状态,使其分别工作于正常计时,调整分、时和设定闹钟分、时5个状态。当数字闹钟处于计时状态时,3个计数器允许计数,且秒、分、时计数器的计数时钟信号分别为CLK,秒的进位,分的进位;当数字闹钟处于闹钟定时状态时,可以设定小时和分;当计时到所设定的时刻时,驱动扬声器,持续1分钟。3.2 设计框图系

19、统框图主要分为三部分:第一部分为精准秒脉冲产生电路,这里我们采用频率为32.768KHz的标准晶振搭成精准的秒脉冲产生电路,为电子钟提供精准的秒脉冲输入。第二部分为FPGA核心控制电路,主要由型号为EP3C25E144C8N的芯片经过编程以后,向译码显示电路提供控制信号。第三部分为译码显示电路,由4片74LS47驱动4个7段数码管,在核心控制电路输出的控制信号的控制下,显示相应的时、分、秒。具体框图如下图3-1所示。精 准 秒 脉 冲产 生 电 路FPGA 核 心控 制 电 路译 码 显 示 电路图3-1 系统框图4 设计步骤和调试过程4.1 总体设计电路该数字钟可以实现3个功能:计时功能、定

20、点报时功能和重置时间功能,因此有3个子模块:计时、报时(speak)、重置时间(sd1,sd2)。其中计时模块有4部分构成:秒计时器(s1)、分计时器(m1)、时计时器(h1)。秒计时器(s1)是由一个60进制的计数器构成的。clk为驱动秒计时器的时钟,s1为秒计时器的输出。分计时器(m1)是由一个60进制的计数器构成的,s1为驱动分计时器工作的时钟;m1为分计时器的输出;时计时器(h1)是由一个24进制的计数器构成的, m1为驱动时计时器工作的时钟,h1为时计时器的输出;报时模块(speak)的功能是定时到时,speak输出高电平,并且持续一段时间。(1) 秒脉冲产生电路 如下图4-1所示,

21、由32.768KHz的晶振产生经过CD4060分频产生精准的秒脉冲。图4-1秒脉冲产生电路(2) FPGA核心控制电路 对EP1K30TC144-3进行编程,输出控制信号。 FPGA 控 制 芯片EP1K30TC144-3图4-2 FPGA核心控制电路(3) 译码显示电路如图4-3,由CD4511驱动7段数码管进行显示。图4-3 译码显示电路4.2 模块设计和相应模块程序(1)分计时器(second1)-分钟十位m110:process(clk,min2,sec1,sec2,md1,md2) beginif clkevent and clk=1 thenif (min1=0101 and mi

22、n2=1001) and (sec1=0101 and sec2=1001) then min1=0000;elsif min1=0101and min2=1001and (md1=0 and md2=00)thenmin1=0000;elsif (min2=1001and (sec1=0101 and sec2=1001) or (min2=1001and md1=0 and md2=00) then min1=min1+1;end if;end if;-end if;end process m110;-分钟个位m220:process(clk,sec1,sec2,md1,md2)begin

23、if clkevent and clk=1 thenif min2=1001and (sec1=0101 and sec2=1001) then min2=0000;elsif min2=1001and (md1=0 and md2=00) then min2=0000;else if (sec1=0101 and sec2=1001) or(md1=0 and md2=00)thenmin2=min2+1;end if;end if;end if;end process m220;(2) 时计时器(hour1)-小时十位h110:process(clk,hou2,min1,min2,sec1

24、,sec2,md1,md2)beginif clkevent and clk=1 thenif (hou1=00010 and hou2=00011)and(min1=0101 and min2=1001) and (sec1=0101 and sec2=1001) then hou1=00000;elsif hou1=00010and hou2=00011and md1=0 and md2=01 then-当时间为23点且处于校时状态时hou1=00000;elsif (hou2=01001and(min1=0101 and min2=1001) and (sec1=0101 and sec

25、2=1001)or (hou2=01001and md1=0 and md2=01) then hou1=hou1+1;end if;end if;end process h110;-小时个位h220:process(clk,min1,min2,sec1,sec2,md1,md2,hou1)beginif clkevent and clk=1 thenif (hou1=00010 and hou2=00011)and(min1=0101 and min2=1001) and (sec1=0101 and sec2=1001) then hou2=00000;elsif hou2=01001an

26、d(min1=0101 and min2=1001) and (sec1=0101 and sec2=1001) then hou2=0000;elsif (hou2=01001and md1=0 and md2=01) or (hou1=00010and hou2=00011) then hou2=00000;-md=1;elsif (min1=0101 and min2=1001) and (sec1=0101 and sec2=1001)or (md1=0 and md2=01) then hou2=hou2+1;-speak=clk;end if;end if;end process

27、h220;(3) 报时模块(speak)-闹铃speaker:process(clk,hou1,hou2,min1,min2)beginif clkevent and clk=1thenif seth1=hou1 and seth2=hou2 and setm1=min1 and setm2=min2 then speak=clk;else speak=0;end if;end if;end process speaker;disp:process(md1,hou1,hou2,min1,min2,sec1,sec2,seth1,seth2,setm1,setm2)beginif md1=0 t

28、hen h1=hou1;h2=hou2; -计时时间显示和设置模式m1=min1;m2=min2; s1=sec1;s2=sec2;else -闹铃时间现实和设置模式h1=seth1;h2=seth2; m1=setm1;m2=setm2;s1=1111;s2=1111;end if;end process disp;end one;4.3 仿真及仿真结果分析(1) 秒时钟仿真 如图4-4,s2满10进1,s1满6进一,即完成60进制秒钟计时。图4-4 秒时钟仿真(2) 分时钟仿真 如图4-5,m2满10进1,m1满6进一,即完成60进制分钟计时。图4-5 分时钟仿真(3) 报时仿真 为了便于

29、观察,此处定时为18秒,如图4-6speak在18秒结束后被置高。图4-6报时仿真(4) 功能仿真RTL图图4-7 功能仿真RTL图4.4实验调试结果在首次波形仿真时,遇到了一些困难,想要的结果不能在波形上得到正确的显示:在设定输入的时钟信号后,数字钟开始计数,但是始终看不到小时、星期的循环计数。后来,在同学的帮助下和数十次的调试之后,才发现之所以错误是因为输入的时钟信号对于小时、星期来说太短了。经过屡次调试,终于找到了比较合适的输入数值:分钟的初始值可以设为57(58、59都可以),小时的初始值可以设为23,这样,仿真之后,就能清楚的看出分钟、小时的循环计数。另外,Endtime的值需要设置

30、的长一点:10us左右,输入的时钟周期值要设置的短一点:5ns左右。结束语通过这次设计使我懂得了理论与实际联合是很重要的,只有把所学的理论与实践相结合起来,从理论中得出结论才能提高自己的实际动手能力,进一步加深了对EDA的了解,让我对它有了更加浓厚的兴趣。同时也遇到了不少困难,特别是各元件之间的连接,以及信号的定义,总是出现错误,不过在细心的检查下,终于找出了错误和警告。总的来说,这次设计的数字钟还是让我学到不少东西,有点小小的成就感,终于觉得平时所学的知识有了实用的价值,达到了理论与实际相结合的目的,不仅学到了不少知识,而且锻炼了自己的能力,对今后的学习有了更充满了信心。文 献1 潘松著.EDA技术实用教程(第二版). 北京:科学出版社,2005.2 康华光主编.电子技术基础 模拟部分. 北京:高教出版社,2006.3 阎石主编.数字电子技术基础. 北京:高教出版社,2003.4 阎石主编. 数字电子技术基础(第五版).高等教等育出版社.2006.5,168-175页 ;5李国丽、朱维勇、何剑春主编 EDA与数字系统设计(第2版).机械工业出版社.2009.3,105-146页

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号