完整版崔战军毕业论文0522.docx
- 文档编号:24241608
- 上传时间:2023-05-25
- 格式:DOCX
- 页数:42
- 大小:128.17KB
完整版崔战军毕业论文0522.docx
《完整版崔战军毕业论文0522.docx》由会员分享,可在线阅读,更多相关《完整版崔战军毕业论文0522.docx(42页珍藏版)》请在冰豆网上搜索。
完整版崔战军毕业论文0522
本科生毕业论文(设计)
题目:
基于FPGA的多功能数字钟设计
学院电子信息工程学院
学科门类工学
专业电子科学与技术
姓名崔战军
指导教师唐予军
2008年5月19日
基于FPGA的多功能数字钟设计
摘要
当前基于各种数字器件的数字钟种类繁多,对于不同的数字器件的设计方式有所不同,例如基于单片机的数字钟设计和基于CPLD的数字钟设计以及基于FPGA的数字钟设计等等。
可以根据不同的设计要求如响应灵敏度等选择不同的数字器件进行合理设计。
本文介绍基于FPGA的多功能数字钟设计,FPGA具有硬件实现数据处理具有实时性高,可靠稳定的优点。
在硬件方面主要由控制开关、消抖电路、APEX20KEFPGA和LED显示等几部分组成。
在编程方面采用VerilogHDL语言实现编程,仿真环境采用MAX+PLUSⅡ软件,以实现数字计时,闹铃和定点报时等功能设计。
该系统具有体积小、功耗低、价格便宜、安全可靠,维护和升级方便的优点,具有较好的应用前景。
关键词:
数字钟FPGAVerilogHDLMAX+PLUSⅡ
TheDigital(多功能)ClockBasedonFPGA
ABSTRACT
Therearemanyoflogicdeviceswhicharebasedonthedigitalclockatpresent.ThemethodsaredifferentForadifferentlogicdevicedesign.Forexample,ThedigitalclockbasedonSCN(SwitchedCircuitNetwork),ThedigitalclockbasedonCPLD(ComplexProgramableLogicDevice)andThedigitalclockbasedonFPGA(FieldProgrammableGateArray),andsoon.Wecanchoosingadifferentlogicdevicesreasonabletodesignbasedondifferentdesignrequirementssuchassensitivity.ThisarticleintroducesthedigitalclockbasedonFPGA.FPGAwithdata-processingtermsofcontrolswitches,circuitConsumersbuffeting,APEX20KEFPGAandtheLEDdisplay,WeusingProgrammingVerilogHDLthedigitaltime,alarmandfixed-pointdesignfeaturessuchastimekeeping
Keywords:
TheDigitalClockFieldProgrammableGateArrayVerilogHDLMAX+PLUSⅡ
目录
一概述…………………………………………………………………1
1.1课题的来源、意义…………………………………………………1
1.2课题的研究目标、内容及方法手段……………………………………1
1.2.1课题的研究目标、内容………………………………………………1
1.2.2课题的研究方法及手段………………………………………………1
二数字钟的原理及软硬件的选择…………………………………3
2.1系统原理………………………………………………………………3
2.2数字钟硬件的选择和设计………………………………………………4
2.2.1消抖电路的设计………………………………………………………5
2.2.2FPGA的选择……………………………………………………………5
2.2.3LED显示模块的设计…………………………………………………6
2.2.4数字钟编译仿真软件的选择…………………………………………6
2.2.5数字钟编程语言的选择…………………………………………7
三程序设计部分………………………………………………………8
3.1编译仿真波形及分析……………………………………………………8
3.1.1主控模块………………………………………………………………8
3.1.2时间模块………………………………………………………………8
3.1.3时间数据与时间设置………………………………………………10
3.1.4时间及其设置模块…………………………………………………11
3.1.5显示模块……………………………………………………………12
3.1.6秒表模块……………………………………………………………13
3.1.7日期自动工作模块…………………………………………………14
3.1.8日期设置模块………………………………………………………15
3.1.9日期设置与自动工作模块…………………………………………16
3.1.10闹钟模块…………………………………………………………17
3.1.11分频模块…………………………………………………………18
3.1.12多功能数字钟电路图……………………………………………19
四验证……………………………………………………………………21
五结论…………………………………………………………………22
谢辞……………………………………………………………………23
参考文献………………………………………………………………24
附录……………………………………………………………………25
一概述
1.1课题的来源、意义
20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。
计算机技术带来了科研和生产的许多重大飞跃,微型计算机的应用已渗透到生产、生活的各个方面。
当今时代数字定时设计已经不是一件简单的事情,它广泛的应用于军事,工业现场控制,以及航天,农业等各个方面,因此研究高稳定性和高灵度的数字定时设备具有很重要的意义。
为了精确控制必须有精确的定时控制设备,我们有必要进行数字定时的研究。
1.2课题的研究目标、内容及方法手段
1.2.1课题的研究目标、内容
本课题的研究目标是用FPGA等来实现数字钟的设计,并将测量结果用4位LED数码管显示出来。
研究内容主要有熟悉FPGA的编程方法,掌握基于FPGA的动态数码管显示技术,以及VerilogHDL语言的编程方法。
该数字钟的秒计数器的计数时钟SEC为1Hz的标准信号,可以由晶振产生的4MHz信号通过分频得到。
当数字钟处于计时状态时,秒计数器的进位输出信号CYM作为分钟计数器的计数信号,分钟计数器的进位输出信号CYM又作为小时计数器的计数信号。
时、分、秒的计时结果通过6个数码管来动态显示。
数字钟除了能够正常计时外,还应能够对时间进行调整。
因此,通过模式选择信号MODE控制数字钟的工作状态,即控制数字钟分别工作于正常计时、调整秒、分、时4个状态。
当数字钟工作于计时状态时,3个计数器的使能控制信号ENS,ENM,ENH均有效,即允许计数,且秒、分、时计数器的计数时钟信号分别为SEC,CYS,CYM;当数字钟处于调整时间状态时,被调整的时间数字会产生闪烁,表示处于被调整状态,其余的时间数字不受调整影响,调整信号KADJ使相应的计数器的使能信号有效,且调整计数时钟为SEC,使被调整时间数字按1s的速率递增。
这样,可分别调整秒、分、时。
1.2.2课题的研究方法及手段
使用VerilogHDL语言进行数字钟进行编程,并使用MAX+plusII软件进行程序并且编译仿真。
本文主要研究了采用FPGA和VerilogHDL,运用自顶向下设计思想设计多功能数字钟的问题自顶而下(TOPTODOWN)的层次化设计方法在现代EDA设计中有着明显的优势,越来越受到设计者的欢迎。
对于一个复杂的设计系统,运用层次化设计方法,使设计课题进一步细化,分块设计,条理清晰。
另外,在调试时可采用逆向调试方式,即从模块调试向总体调试方向开展调试工作,使设计中出现的问题在模块级就能发现,及时处理,这样就会使一个复杂的设计变得容易调试,缩短了设计时间。
层次化设计方法:
开始设计时,先设计出一个顶层总框图(一般称之为顶层图),该框图是由若干个具有特定功能的源模块组成。
下一步是对这些不同功能的模块进行设计,产生这些模块的原理图文件或ABEL源文件。
对于有些功能复杂的模块,全部使用元件库中的元器件设计仍显复杂,因此还可以将该模块继续化分为若干个功能子模块,这样就形成模块套模块的层次化设计方法。
这种方法也称之为自顶向下的系统设计方法。
二数字钟的原理及软硬件的选择
2.1系统原理
数字钟的设计是由软件和硬件相配合使用而实现的,通过FPGA控制实现时间显示与设置、秒表、闹钟、日期显示与设置诸多功能。
其主要功能模块如图2-1所示:
图2-1数字钟功能模块图
1.数字钟工作原理:
数字钟电路的基本结构由两个60进制计数器和一个24进制计数器组成分别对秒、分、小时进行计时,当计时到23时59分59秒时,再来一个计数脉冲,则计数器清零,重新开始计时。
秒计数器的计数时钟为1Hz的标准信号,可以由晶振产生的4MHz信号通过分频得到。
当数字钟处于计时状态时,秒计数器的进位输出信号作为分钟计数器的计数信号,分钟计数器的进位输出信号又作为小时计数器的计数信号。
时、分、秒的计时结果通过数码管来动态显示。
数字钟除了能够正常计时外,还应能对时间进行调整。
因此,通过模式选择信号控制数字钟的工作状态,即控制数字钟分别工作于正常计时、调整秒、分、时四个个状态。
当数字钟工作于计时状态时,3个计数器的使能控制信号均有效,即允许计数;当数字钟处于调整时间状态时,被调整的时间数字会产生闪烁,表示处于被调整状态,其余的时间数字不受调整影响,调整信号使相应的计数器的使能信号有效,使被调整时间数字按1s的速率递增。
这样,可分别调整秒、分、时。
2.工作模块组成:
(1)生成1Hz时钟信号模块秒计数器的计数时钟为1Hz的信号,而晶振产生的时钟信号为4MHz,因此需要将4MHz信号通过分频以得到1Hz时钟信号。
(2)24进制计数器和60进制计数器24进制计数器和60进制计数器受使能控制信号控制应当允许计数,通过调用这两个元件可以实现计时。
(3)工作状态控制模块模式选择信号控制数字钟的工作状态,即控制数字钟分别工作于正常计时、调整秒表、日期设置等。
3.多功能数字钟的功能:
多功能数字钟的功能包括时间的显示与设计,秒表,闹钟,日期显示和设置。
多功能数字钟的控制面板如图2-2所示:
时间,状态显示
功能键调整键1调整键2
图2-2数字钟外表功能模块图
数字钟控制面板构成:
1.时间、状态的显示
用数码管显示时间,在控制按钮的配合下,可以显示日期、设置时间与调整的闪烁显示、日期设置与调整的闪烁显示、设置闹钟和显示秒表。
2.功能键
功能键用来选择不同的功能模式:
功能1:
时间的正常显示功能。
功能2:
时间的设置与调整。
功能3:
秒表的功能。
功能4闹钟的设置。
功能5日期显示。
功能6:
日期的调整与设置。
3.调整健1
调整健1用于闹钟设置,日期的显示﹑调整秒表与时间调整等的位置选择,它是与功能键配合使用。
用于在特定的位置上进行时间,闹钟和日期的调整。
4.调整健2
调整健2用于闹钟设置,日期显示﹑调整秒表等调整的加减操作。
2.2数字钟硬件的选择和设计
对于硬件方面的研究本课题采用FPGA。
它是在GAL、EPLD等可编程器件的基础上进一步发展的产物。
它是作为专用集成电路领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
2.2.1消抖电路的设计
消抖电路分为积分法和比较法,比较法用于消除由电平抖动引起的毛刺,通过一个标准电平来比较实现消抖。
而积分法适合用于按键引起的电路电平抖动,鉴于本设计主要消除由按键引起的抖动,因此采用积分消抖电路。
2.2.2FPGA的选择
FPGA(现场可编程门阵列)是专用集成电路(ASIC)中集成度最高的一种,用户可根据不同的需求对FPGA内部的逻辑模块和IO模块重新配置,以实现用户的逻辑,通过上电加载到FPGA中,对其进行初始化。
也可在线对其编程,实现系统在线重构。
使用上具有很大的灵活性。
FPGA采用了逻辑单元阵列的设计理念,内部由可配置逻辑模块CLB、输出输入模块IOB和内部连线三个部分组成。
FPGA的主要特点主要有:
1.采用FPGA设计ASIC电路,具有广泛的应用性。
2.FPGA内部有大量的触发器和IO引脚。
3.FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL等电路的电平兼容。
因此采用FPGA可以实现高效率,低功耗的设计要求。
本设计采用Altera公司生产的APEX20KEFPGA针对最佳性能和漏失功率控制进行了要求。
APEX20K是Altera公司生产首款带有多核架构可编程逻辑器件,时钟速度高达822MHz。
由于APEX20K具有功耗低、体积小、集成度高、速度快、费用低、用户可定义功能及可重复编程和擦写等许多优点,因此,可广泛应用于系统板级设计领域
APEX20KEFPGA芯片引脚如图2-3所示:
图2-3APEX20KEFPGA芯片引脚图
2.2.3LED显示模块的设计
发光二极管(LED)是采用半导体材料制成的能将电信号转换成光信号的结型电致发光器件。
其优点是耗电量少﹑亮度高﹑工作电压低﹑驱动简单﹑寿命长﹑性能稳定。
LED数码管显示器分为共阴极和共阳极,共阳极是发光二极管的阳极接高电平,当数码管的笔划发光二极管的阴极为低电平时,该管对应部分将发光。
与之相对的,共阴极是发光二极管的阴极接地,当数码管的阳极为高电平时,该管相对应的部分将会发光。
数码管显示又可分为动态显示和静态显示,动态驱动显示接口与静态驱动显示接口的区别是:
动态驱动法将多位LED同名段的选择线都并联在一起,这样只需要一个8位的锁存器,另外再用一个锁存器来控制点亮的位,因此需要2个8位的IO端口;而静态驱动法则是每个LED的8位都要用一个8位的IO端口,所以位数越多则需要的IO端口资源越多。
因此,本设计多位数码管显示适合用动态显示。
扫描显示电路如图2-4所示。
图2-4并行LED数码管动态扫描显示电路(共阴)
2.2.4数字钟编译仿真软件的选择
编译环境采用MAX+plusII软件,它是Altera公司推出的的第三代PLD开发系统。
A1tera的可编程逻辑器件设计工具,随着A1tera公司在推出各种可编程逻辑器件的同时也在不断的发展。
从早期的A+plus、MAX+PLUS发展到目前的MAX+PLUSⅡ、Quartus、QuartusⅡ。
MAX+PLUSⅡ都具有可视化的设计环境,具有工业标准EDA工具接口,可以运行在多种操作平台上。
由于本设计选用Altera公司生产的FLEX系列芯片,所以选用与其相对应的MAX+PLUSⅡ软件进行编辑、编译、仿真、芯片编程等设计工作。
MAX+PLUSⅡ(MultipleArrayMatrixandProgrammableLogicUserSystems)全称是全集成化可编程逻辑设计环境。
该工具配备有编辑、编译、仿真、中和、芯片编程等功能,该软件设计具有很大的自由度,设计者可以根据自己熟悉的设计方式进行设计,MAX+PLUSII最终把这些设计转自动换成最终所需的格式。
它的设计速度很快。
使用MAX+PLUSII,从设计输入到器件编程完毕大约只需几小时。
设计处理一般在很短的时间就能完成。
其设计步骤由下列几步完成:
1.设计输入。
包括程序源代码或者电路图,
2.编译。
它是指对设计好的程序进行语法上的初步调试。
3.仿真。
它是对设计功能的初步模拟检测其功能实现情况。
4.下载。
在进行布线和引脚分配后将程序下载至硬件电路上检测功能。
2.2.5数字钟编程语言的选择
硬件描述语言HDL是一种用形式化的方法来描述数字电路和系统语言,数字电路设计可以运用从上而下逐层描述的设计方法。
由分立的模块组成复杂的电子电路系统,然后进行方针和调试将文字描述语句转换成门级电路网表,然后再把网表转换成具体的电路结构实现逻辑功能。
硬件描述语言种类繁多。
有VHDL、VerilogHDL等等。
同为硬件描述语言,VHDL不直观,并且要求有Ada编程基础,作为军用描述语言VHDL描述严谨但是相对比较繁琐,而且VHDL适合系统级描述而VerilogHDL在门级电路描述中则更具有优势。
本设计采用VerilogHDL进行程序设计。
VerilogHDL是硬件描述语言的一种,yong于数字电子系统的设计。
它可以进行各种级别的逻辑设计。
可以进行编译,仿真等。
目前VerilogHDL是全世界使用最广泛的硬件描述语言之一。
VerilogHDL编译程序具有很高的灵活性,它的模块化程序便于多人分工编译大型程序,提高了效率,并且由于分模块编译便于查错并进行改正。
除此之外,我们还可以使用现有的成熟的模块化程序块从而节省了开发资源。
此外VerilogHDL设计数字电路具有很高的优点,由于VerilogHDL的标准化,可以很容易的把完成的设计移植到不同的芯片中并在不同应用时做不同的调整。
而且语言的输入法具有与工艺无关的巨大优势,在功能设计和逻辑验证阶段不需要考虑工艺影响。
三程序设计部分
3.1编译仿真波形及分析
3.1.1主控模块
主控模块如图3-1所示:
图3-1主控模块图
Timepiece_EN:
输出使能时间并保持显示。
Timeset_EN:
输出时间的设置与调整。
Stopwatch_EN:
输出秒表功能。
Alarmclock:
闹钟设置功能。
Date_EN:
输出日期显示功能。
DateSet_EN:
输出日期调整与设置。
该模块实现数字钟各个功能的控制,例如秒表,时间显示,日期显示,闹钟等。
仿真波形如图3-2所示:
图3-2主控模块仿真波形
3.1.2时间模块
时间模块如图3-3所示:
图3-3时间模块图
Timeset_EN:
时间设置,当输入为高电平时,时间设置有效。
SW1,SW2:
输入信号,分别为调整键1和调整键2。
:
日期设置输入。
date_disp_select:
日期显示的位选信号。
month1,month0:
需要显示的月份。
day1,day0:
需要显示的天树。
disp_select:
输出显示的位选信号。
disp_date:
数据显示输出。
时间显示模块用来实现时间、日期等数据用数码管显示的控制与传输模块,包括数据的传输以及BCD码等功能。
仿真波形如图3-10所示:
图3-10显示模块波形
3.1.6秒表模块
秒表模块如图3-11所示:
图3-11秒表模块
clk1:
时钟信号。
clk2:
选择秒表工作模式的时钟信号。
EN:
秒表控制,当为高电平时,工作在秒表状态,否则在自动模式。
该模块实现的是秒表功能,在工作中通过改变自动工作模式下的时间的记数时钟的频率来实现秒表的功能。
仿真波形如图3-12所示:
图3-12秒表模块仿真波形
3.1.7日期自动工作模块
日期自动工作模块如图3-13所示:
图3-13日期自动工作模块
EN1:
手动模式下的递增输入信号,是时间模块的进位。
EN2:
手动设置或调整日期控制输入信号。
month1,month0:
显示当前的月分
day1,day0:
显示当前的日期。
EO1:
显示当前的工作模式。
该模块是在时间的自动工作模式下,日期中的天数会在小时记数到24后自动加1,与时间一起自动正常工作。
仿真波形如图3-14所示:
图3-14日期自动工作模块仿真波形
3.1.8日期设置模块
日期设置模块如图3-15所示:
图3-15日期设置模块
EN2:
设置或调整日期控制输入信号。
SW1,SW2:
输入信号,分别为调整键1和调整键2。
disp_drive:
显示驱动信号。
month_set1,month_sey0:
月份设置。
day_set1,day_set0:
日期设置。
该模块实现的是在手动情况下进行日期的设置。
仿真波形如图3-16所示:
图3-16日期设置模块仿真波形
3.1.9日期设置与自动工作模块
日期设置与自动工作模块如图所示:
图3-17日期设置与自动工作模块
clk1:
时钟信号。
Date_EN:
日期显示输入。
EN1:
自动工作使能信号。
auto_month1,auto_month0,auto_day1,auto_day0:
自动工作模式的日期。
EN2:
日期的调整与设置使能信号。
set_month1,set_month0,set_day1,set_day0:
日期设置。
disp_drive:
设置过程中显示驱动。
month1,month0,day1,day0:
日期显示。
disp_select:
位选信号显示。
该模块实现的是日期的自动工作模式与设置模式的控制。
仿真波形如图3-18所示:
图3-18日期设置与自动工作模块仿真波形
3.1.10闹钟模块
闹钟模块如图3-19所示:
图3-19闹钟模块
clk_200Hz:
设置中闪烁显示的时钟。
EN:
闹钟设置使能端。
SW1,SW2:
输入信号,分别为调整键1和调整键2。
(SW3,SW2,SW1,Clock,alarm,disp_data,disp_select);
inputSW3;
inputSW2;
inputSW1;
inputClock;
outputalarm;
output[6:
0]disp_data;
output[65:
0]disp_select;
wireSYNTHSIZED_WIRE_0;
wireSYNTHSIZED_WIRE_41;
wireSYNTHSIZED_WIRE_42;
wireSYNTHSIZED_WIRE_43;
wireSYNTHSIZED_WIRE_44;
wire[3:
0]SYNTHSIZED_WIRE_45;
wire[3:
0]SYNTHSIZED_WIRE_46;
wire[3:
0]SYNTHSIZED_WIRE_47;
wire[3:
0]SYNTHSIZED_WIRE_48;
wire[3:
0]SYNTHSIZED_WIRE_49;
wire[3:
0]SYNTHSIZED_WIRE_50;
wireSYNTHSIZED_WIRE_51;
wireSYNTHSIZED_WIRE_12;
wireSYNTHSIZED_WIRE_13;
wireSYNTHSIZED_WIRE_52;
wireSYNTHSIZED_WIRE_16;
wireSYNTHSIZED_WIR
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整版 崔战军 毕业论文 0522