基于FPGA的闹钟系统的设计.docx

上传人:b****7 文档编号:8932618 上传时间:2023-02-02 格式:DOCX 页数:30 大小:337.09KB
下载 相关 举报
基于FPGA的闹钟系统的设计.docx_第1页
第1页 / 共30页
基于FPGA的闹钟系统的设计.docx_第2页
第2页 / 共30页
基于FPGA的闹钟系统的设计.docx_第3页
第3页 / 共30页
基于FPGA的闹钟系统的设计.docx_第4页
第4页 / 共30页
基于FPGA的闹钟系统的设计.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

基于FPGA的闹钟系统的设计.docx

《基于FPGA的闹钟系统的设计.docx》由会员分享,可在线阅读,更多相关《基于FPGA的闹钟系统的设计.docx(30页珍藏版)》请在冰豆网上搜索。

基于FPGA的闹钟系统的设计.docx

基于FPGA的闹钟系统的设计

本科生毕业设计(论文)

基于FPGA的闹钟系统的设计

TheDesignofAlarmClockSystem

BasedonFPGA

总计:

毕业设计(论文)26页

表格:

2个

插图:

18幅

基于FPGA的闹钟系统的设计

[摘要]本设计在对闹钟系统的原理及其功能进行分析的基础上,采纳自顶向下的设计方式,以现场可编程门阵列(FPGA)作为硬件基础,对闹钟系统进行电路设计。

本文的研究目的也是利用EDA技术来实现带闹钟功能的24小时计时器。

别离介绍进展历史、进展动态、设计思路、系统原理、系统功能分析、系统结构、各个模块分析与设计和要紧工作进程,而且经实际电路测试与仿真从而实现了一种基于FPGA的精准靠得住的数字闹钟系统。

关键字:

VHDL,QuartusII,FPGA,闹钟

 

TheDesignofAlarmClockSystem

BasedonFPGA

Abstract:

Thedesignisbasedontheanalysisofthealarmsystemanditsfunctions,usingtop-downdesignapproachtofieldprogrammablegatearray(FPGA)asahardwarefoundation,onthealarmsystemcircuitdesign.PurposeofthispapermakesuseofEDAtechniquestoachievethealarmclockfunctionwiththe24-hourtimer.Introducestheresearchbackground,thedevelopmenthistory,thedevelopmenttendency,theresearchmentality,thesystemprinciplethesystemfunctionanalysis,thesystemstructure,eachmoduleanalysisprinciple,thesystemfunctionanalysis,thesystemstructure,eachmoduleanalysisandthedesignaswellastheprimetaskprocessseparately.andbytheactualcircuittestingandsimulationinordertoachieveanaccurateandreliablebasedonthenumberofFPGAalarmsystem

Keywords:

VHDL,QuartusII,FPGA,Alarmclock

 

 

1绪言

课题的背景及意义

现今社会是数字化的社会,是数字集成电路普遍应用的社会。

数字集成电路本身在不断地进行更新换代。

它由初期的电子管、晶体管、小中规模集成电路,进展到超大规模集成电路(VLSIC,几万门以上)和许多具有特定功能的专用集成电路。

可是,随着微电子技术的进展,设计与制造集成电路的任务已不完全由半导体厂商来独立承担。

系统设计师们更情愿自己设计专用集成电路(ASIC)芯片,而且希望ASIC的设计周期尽可能短,最好是在实验室里就能够设计出适合的ASIC芯片,而且当即投入实际应用当中,因此显现了现场可编程逻辑器件(FPLD),其中应用最普遍的当属现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD)。

在许多仪器仪表中都用到闹钟按时,目前一般是采纳专用的数字闹钟芯片,可是这种芯片功能固定,无益于嵌入式应用.而且,在仪器仪表的许多应用处合已经采纳了FPGA可编程芯片.如此一来,为咱们在利用硬件空间的FPGA器件中在嵌入一个计时闹钟提供了极大的方便,而且可不能增加本钱,并能够使系统结构加倍简单,体积更小,本钱更低,具有更好的嵌入式和可移植特性.

闹钟系统进展概述

六十年代末,七十年代初带闹钟的电子钟表已悄悄在起步,因为客观存在本钱低,精度高,显示直观方便(不用上发条)的优势冲击了传统机械表的统治地位。

到底90年代初大体垄断了钟表市场。

而随着时期的进展,在生产生活中对计时工具的要求也慢慢增高,高效节能理念的深切人心,功耗大开发周期长的传统电子表已经显然不适合时期的要求。

20世纪末数字电子技术取得飞速进展,数字电子技术的应用已经渗透到人类生活的方方面面。

从运算机得电话,从数字电视到数字,从家用电器到军用设备,从自动化到航天技术都普遍的采纳了数字电子技术。

现代电子设计技术的核心是EDA技术。

EDA技术确实是领先功能壮大的电子运算机,在EDA工具软件平台上,对硬件描述语言HDL(HardwareDescriptionLanguage)为系统逻辑描述手腕完成的设计文件,自动的逻辑编译、化简、分割、综合、优化和仿真直到下载到可编程逻辑器件CPLD/FPGA或专用集成电路ASIC芯片中,实现既定的电子电路设计功能。

EDA技术使得电子闹钟设计工作仅限于利用硬件描述语言和EDA软件平台完成对系统硬件功能的实现,极大地提高设计效率,缩短了设计周期,节省设计本钱。

本设计确实是运用EDA技术,依照闹钟要实现的功能:

计时功能、闹钟功能、设置新的计时器时刻、设置新的闹钟时刻、显示所设置的闹钟。

采纳高层硬件描述语言VHDL进行设计。

第一程序文本输入,处置(编译、检查、逻辑优化与综合。

适配、分割、布局、布线、生成编程数据文件),然后进行功能仿真和时序仿真,最后下载到FPGA器件中并进行功能测试,进行输入操作、查处输入结果验证设计电路。

本章末节

本章第一对所研究课题的背景做以论述,简要介绍了FPGA的进展历程,进而从闹钟的进展历史到今天的普遍应用,进一步说明了当前社会闹钟系统设计的意义。

2FPGA概述

FPGA简介

FPGA是英文FieldProgrammableGateArry的缩写,即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步进展的产物。

它是作为专用集成电路(ASIC)领域中的一种半定制电路而显现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

1.FPGA采纳了逻辑单元阵列(LOA,LogicCellArry)如此一个新概念,内部包括可配置逻辑模块(CLB,ConfigurableLogicBlock)、输入输出模块(IOB,InputOutputBlock)和内部连线(Interconnect)三个部份。

其中CLB结构如图1所示。

FPGA的大体特点要紧有:

(1)采纳FPGA设计ASIC电路,用户不需要投片生产就能够取得合用的芯片;

(2)FPGA可做其他全定制或半定制ASIC电路的试样片:

(3)FPGA内部有丰硕的触发器和I/O引脚;

(4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一;

(5)FPGA采纳高速CHMOS工艺,功耗低,能够与CMOS、TTL电平兼容。

能够说,FPGA芯片是小批量系统提高系统集成度和靠得住性的最正确选择之一。

2.目前FPGA的品种很多,有XILINX的XC系列、TI公司的TPC系列、ALTERA公司的FIEX系列等。

FPGA是由寄存在片内RAM中的程序来设置其工作状态的。

因此,工作时需要对片内的RAM进行编程。

用户能够依照不同的配置模式采纳不同的编程方式。

加电时,FPGA芯片将EPROM中的数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。

掉电后,FPGA恢复成白片,内部逻辑关系消失。

因此,FPGA能够反复利用。

FPGA的编程不需专用的FPGA编程器,只需用通用的EPROM、PROM编程器即可。

当需要修改FPGA功能时,只需换一片EPROM即可。

如此,同一片FPGA、不同的编程数据,能够产生不同的电路功能。

因此,FPGA的利用超级灵活。

本次设计中采纳的是Altera公司推出的CycloneII系列FPGA中的EP2C70。

CycloneII系列FPGA从全然上针对低本钱进行设计,为本钱灵敏的大量量应用提供用户定制特性。

CycloneIIFPGA以低于ASIC的本钱实现了高性能和低功耗。

图1CLB大体结构

CycloneII系列FPGA采纳了90nm工艺,相关于130nm工艺的Cyclone系列FPGA来讲,片内逻辑单元的数量大幅增加,最多能够在到68416个逻辑单元。

除此之外,片内的存储器容量最多增加至,用户可用引脚最多增加至622个。

CycloneII系列FPGA内部带有乘法器,这些乘法器能用于完成高速乘法操作,使得CycloneII系列FPGA的数字信号处置能力取得增强。

CycloneII系列FPGA还支持NIOSII嵌入式处置器,在一片FPGA芯片内部能够嵌入1个或多个NIOSII处置器。

嵌入处置器的益处是能够更灵活地知足设计需求,缩短开发周期。

表1CycloneII系列FPGA逻辑资源一览

逻辑单元

(LE)数

EP2C5

4608

EP2C8

8256

EP2C20

18752

EP2C35

33216

EP2C50

50582

EP2C70

68416

M4K存储器块数

26

36

52

105

129

250

总计存储器容量bits

119808

165888

239616

483840

594432

1152000

乘法器数

13

18

26

35

86

150

锁相环数

2

2

4

4

4

4

用户可用

引脚数

158

182

315

475

450

622

FPGA系统设计流程

一样说来,一个比较大的完整的项目应该采纳层次化的描述方式:

分为几个较大的模块,概念好各功能模块之间的接口,然后各个模块再细分去具体实现,这确实是TOPDOWN(自顶向下)的设计方式。

目前这种高层次的设计方式已被普遍采纳。

高层次设计只是概念系统的行为特点,能够不涉及实现工艺,因此还能够在厂家综合库的支持下,利用综合优化工具将高层次描述转换成针对某种工艺优化的网络表,使工艺转换变得轻而易举。

CPLD/FPGA系统的工作流程如图2所示。

系统划分①

VHDL代码或图形方式输入②

编译器③

代码级功能仿真④

综合器⑤

适配前时序仿真⑥

适配器⑦

适配仿真模型⑧

适配后时序仿真

器件编程文件⑧

CPLD/FPGA实现

适配报告⑧

ASIC实现

图2FPGA设计流程

VHDL简介

VHDL语言是一种用于电路设计的高级语言。

它在80年代的后期显现。

最初是由美国国防部开发出来供美军用来提高设计的靠得住性和缩减开发周期的一种利用范围较小的设计语言。

  VHDL的英文全写是:

VHSIC(VeryHighSpeedIntegratedCircuit)HardwareDescriptionLanguage.翻译成中文确实是超高速集成电路硬件描述语言。

因此它的应用主若是应用在数字电路的设计中。

目前,它在中国的应用多数是用在FPGA/CPLD/EPLD的设计中。

固然在一些实力较为雄厚的单位,它也被用来设计ASIC。

  VHDL要紧用于描述数字系统的结构,行为,功能和接口。

除含有许多具有硬件特点的语句外,VHDL的语言形式和描述风格与句法是十分类似于一样的运算机高级语言。

VHDL的程序结构特点是将一项工程设计,或称设计实体(能够是一个元件,一个电路模块或一个系统)分成外部(或称可视部份,及端口)和内部(或称不可视部份),既涉及实体的内部功能和算法完成部份。

在对一个设计实体概念了外部界面后,一旦其内部开发完成后,其他的设计就能够够直接挪用那个实体。

这种将设计实体分成内外部份的概念是VHDL系统设计的大体点与其他硬件描述语言相较,VHDL具有以下特点:

  1.功能壮大、设计灵活。

VHDL具有功能壮大的语言结构,能够用简练明确的源代码来描述复杂的逻辑操纵。

它具有多层次的设计描述功能,层层细化,最后可直接生成电路级描述。

VHDL支持同步电路、异步电路和随机电路的设计,这是其他硬件描述语言所不能比拟的。

VHDL还支持各类设计方式,既支持自底向上的设计,又支持自顶向下的设计;既支持模块化设计,又支持层次化设计。

  2.支持普遍、易于修改。

由于VHDL已经成为IEEE标准所标准的硬件描述语言,目前大多数EDA工具几乎都支持VHDL,这为VHDL的进一步推行和普遍应用奠定了基础。

在硬件电路设计进程中,要紧的设计文件是用VHDL编写的源代码,因为VHDL易读和结构化,因此易于修改设计。

  3.壮大的系统硬件描述能力。

VHDL具有多层次的设计描述功能,既能够描述系统级电路,又能够描述门级电路。

而描述既能够采纳行为描述、寄放器传输描述或结构描述,也能够采纳三者混合的混合级描述。

另外,VHDL支持惯性延迟和传输延迟,还能够准确地成立硬件电路模型。

VHDL支持预概念的和自概念的数据类型,给硬件描述带来较大的自由度,使设计人员能够方便地创建高层次的系统模型。

  4.独立于器件的设计、与工艺无关。

设计人员用VHDL进行设计时,不需要第一考虑选择完成设计的器件,就能够够集中精力进行设计的优化。

当设计描述完成后,能够用多种不同的器件结构来实现其功能。

  5.很强的移植能力。

VHDL是一种标准化的硬件描述语言,同一个设计描述能够被不同的工具所支持,使得设计描述的移植成为可能。

易于共享和复用。

VHDL采纳基于库(Library)的设计方式,能够成立各类可再次利用的模块。

这些模块能够预先设计或利用以前设计中的存档模块,将这些模块寄存到库中,就能够够在以后的设计中进行复用,能够使设计功效在设计人员之间进行交流和共享,减少硬件电路设计。

VHDL系统优势:

(1)与其他的硬件描述语言相较,VHDL具有更强的行为描述能力,从而决定了他成为系统设计领域最正确的硬件描述语言。

壮大的行为描述能力是躲开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。

(2)VHDL丰硕的仿真语句和库函数,使得在任何大系统的设计初期就能够查验设计系统的功能可行性,随时可对设计进行仿真模拟。

  (3)VHDL语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能。

符合市场需求的大规模系统高效,高速的完成必需有多人乃最多个代发组一起并行工作才能实现。

  (4)关于用VHDL完成的一个确信的设计,能够利用EDA工具进行逻辑综合和优化,并自动的把VHDL描述设计转变成门级网表。

(5)VHDL对设计的描述具有相对独立性,设计者能够不懂硬件的结构,也没必要治理最终设计实现的目标器件是什么,而进行独立的设计。

QuartusII开发环境

QuartusII是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL和AHDL(AlteraHardwareDescriptionLanguage)等多种设计输入形式,内嵌自有的综合器和仿真器,能够完成从设计输入到硬件配置的完整PLD设计流程。

QuartusII能够在XP、Linux和Unix上利用,除能够利用TC1脚本完成设计流程外,提供了完善的用户图形界面设计方式。

具有运行速度快,界面统一,功能集中,易学易用等特点。

QuartusII支持Altera的IP核,包括了LPM/MegaFunction宏功能模块库,利用户能够充分利用成熟的模块,简化了设计的复杂性、加速了设计速度。

对第三方EDA工具的良好支持也利用户能够在设计流程的各个时期利用熟悉的第三方EDA工具。

另外,QuartusII通过和DSPBuilder工具与Matlab/Simulink相结合,能够方便地实现各类DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。

MaxplusII作为Altera的上一代PLD设计软件,由于其超卓的易用性而取得了普遍的应用。

目前Altera已经停止了对MaxplusII的更新支持,QuartusII与之相较不单单是支持器件类型的丰硕和图形界面的改变。

Altera在QuartusII中包括了许多诸如SignalTapII、ChipEditor和RTLViewer的设计辅助工具,集成了SOPC和HardCopy设计流程,而且继承了MaxplusII友好的图形界面及简便的利用方式。

AlteraQuartusII作为一种可编程逻辑的设计环境,由于其壮大的设计能力和直观易用的接口,愈来愈受到数字系统设计者的欢迎。

Altera的QuartusII可编程逻辑软件属于第四代PLD开发平台。

该平台支持一个工作组环境下的设计要求,其中包括支持基于Internet的协作设计。

Quartus平台与Cadence、ExemplarLogic、MentorGraphics、Synopsys和Synplicity等EDA供给商的开发工具相兼容。

改良了软件的LogicLock模块设计功能,增添了FastFit编译选项,推动了网络编辑性能,而且提升了调试能力。

支持MAX7000/MAX3000等乘积项器件。

本章小结

本章第一对现场可编程门阵列(FPGA)做了简要介绍,然后深切了讲述了FPGA内部结构及其特点,重点介绍了本设计要用到的CycloneII系列FPGA,然后详细说明了FPGA的设计流程。

最后对FPAG的开发语言及开发软件平台QuartusII简单的介绍了一下,从而说明了FPGA整个设计流程的设计条件。

3.闹钟系统的设计

本文设计一个带闹钟功能的24小时计时器,要求能够利用按键实现对闹钟时刻的设定并在所设计闹钟时刻到时进行闹钟提示,能够利用按键实现“较时“较分”功能,随时对数码管的显示进行调整和较对。

闹钟系统的外部设计

针对系统需求进行硬件设计:

硬件部份要紧包括综合计时电路、显示操纵电路和调整操纵电路。

它包括以下几个组成部份:

①显示屏,由4个七段数码管组成,用于显示当前时刻(时:

分)或设置的闹钟时刻;②数字键‘0’~‘9’,用于输入新的时刻或新的闹钟时刻;③TIME(时刻)键,用于确信新的时刻设置;④ALARM(闹钟)键,用于确信新的闹钟时刻设置,或显示已设置的闹钟时刻;⑤扬声器,在当前时钟时刻与闹钟时刻相同时,发出蜂鸣声。

键盘输入设计

下面简要介绍一下系统的输入界面:

系统的输入界面是有0~9十个数字按键和TIME键和ALARM键组成。

由于系统输入校不时刻和闹钟时刻时候必需输入0~9这些数字,因此按键0~9专门用于输入数字。

TIME键和ALARM键用于辅助设定当前时刻和闹钟时刻。

各操作流程如下:

a)校时操作:

在正常计时状态下直接按下0~9键,即可进入校时状态,利用键0~9输入新的时刻,然后按TIME键,即可使新的时刻设置生效,系统自动回到计时状态。

在输入进程中,输入数字在显示屏上从右到左依次显示。

例如,用户要设置12:

34,那么按顺序输入“1”,“2”,“3”,“4”,与之对应,显示屏上依次显示的信息为:

“1”,“12”,“123”,“1234”。

在校时状态下,假设有输入错误或要取消校时,停止输入,稍待5s,不按任何键,即可回到计时状态。

b)设置闹铃时刻:

在计时状态下按下设置闹铃键(ALARM键),即可显示当前所设定的闹钟时刻。

在计时状态下,用数字键0~9键输入新的时刻,然后按“ALARM”确认,即可使新设置的闹钟生效。

其他操作与校时操作流程一样。

系统输出部份

系统输出部份主若是显示电路模块,由4个七段数码管组成,用于显示当前时刻(时:

分)或设置的闹钟时刻。

FPGA内部部份模块设计与仿真

闹钟系统的操纵器的设计

1.设计思路

操纵器命名为ALARM_CONTROLLER,其外部端口如图3所示。

图3操纵器外部端口

各端口的作用如下:

CLK为外部时钟信号,RESET为复位信号。

当KEY为高电平(KEY=‘1’)时,表示用户按下数字键(“0”~“9”)。

当ALARM_BUTTON为高电平常,表示用户按下“ALARM”键。

当TIME_BUTTON为高电平常,表示用户按下“TIME”键。

当LOAD_NEW_A为高电平常,操纵闹钟时刻寄放器加载新的闹钟时刻值。

当LOAD_NEW_C为高电平常,操纵时钟计数器设置新的时刻值。

当SHOW_NEW_TIME为高电平常,操纵七段数码显示电路显示新的时刻值,即用户通过数字键输入的时刻;不然,当SHOW_NEW_TIME为低电平常,依照SHOW_A信号的值操纵显示当前的时刻或闹钟时刻。

现在,当SHOW_A为高电平常,操纵显示闹钟时刻,不然,显示当前时刻。

操纵器的功能能够通过有限状态自动机(FSM)的方式来实现。

依照设计要求及端口设置,需要5个状态来实现:

S0:

表示电路初态即正常时钟计数状态。

S1:

接收键盘输入状态。

在状态S0时用户按下数字键后进入此状态。

在此状态下,显示屏上显示的是用户键入的数字。

S2:

设置新的闹钟时刻。

在状态S1时用用户按下ALARM键后进入此状态。

S3:

设置新的计时器时刻。

在状态S1时用户按下TIME键后进入此状态。

S4:

显示闹钟时刻。

在状态S0时用户直接按下ALARM键后进入此状态。

在此状态下,显示屏上显示的是所设置的闹钟时刻。

请注意,在那个状态下,用户按下ALARM键盘后,显示屏上维持显示闹钟时刻,通过一段时刻以后,再返回状态S0显示计时器时刻。

操纵器状态转换及操纵输出表如下表2所示:

表2操纵器状态转换及操纵输出表

当前状态

控制输入(条件)

下一状态

控制输出(动作)

S0

KEY=‘1’

S1

SHOW_NEW_TIME<=‘1’

ALARM_BUTTON=‘1’

S4

SHOW_A<=‘1’

否则

S0

--

 

S1

KEY=‘1’

S1

SHOW_NEW_TIME<=‘1’

ALARM_BUTTON=‘1’

S2

LOAD_NEW_A<=‘1’

TIME_BUTTON=‘1’

S3

LOAD_NEW_C<=‘1’

否则(超时)

S1

SHOW_NEW_TIME<=‘1’

S0

--

S2

ALARM_BUTTON=‘1’

S2

LOAD_NEW_A<=‘1’

否则

S0

--

S3

TIME_BUTTON=‘1’

S3

LOAD_NEW_C<=‘1’

否则

S0

--

S4

ALARM_BUTTON=‘1’

S4

SHOW_A<=‘1’

否则(超时)

S4

SHOW_A<=‘1’

S0

--

表2中没有显示说明的操纵信号

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

当前位置:首页 > 高等教育 > 工学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1