




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、大连东软信息学院本科毕业设计(论文)论文题目论文题目:基于FPGA的多功能数字钟设计与实现 系 所: 电子工程系 专 业:电子信息工程(集成电路设计与系统方向) 学生姓名: 学生学号: 指导教师: 导师职称: 讲师 完成日期: 2014年4月28日 大连东软信息学院Dalian Neusoft University of Information大连东软信息学院毕业设计(论文) 摘要 V基于FPGA的多功能数字钟设计与实现摘 要随着人类科技文明的发展,人们对于时钟的要求在不断地提高。时钟已不仅仅被看成一种用来显示时间的工具,在很多实际应用中,还需要能够实现更多其它的功能。同时,硬件描述语言和现场
2、可编程门阵列(FPGA ,Field Programmable Gata Array)的使用,可以极大地方便电路的设计,结合电子设计自动化(EDA,Electronic Design Automation)技术已经成为一种主导的设计方法。本设计采用自上而下的设计方法,用Verilog语言描述电路,并在EDA工具下完成综合以及仿真,验证数字钟时序以及功能。本课题要求基于Altera FPGA设计与实现多功能数字钟。根据系统功能划分为五个模块,包括分频模块、控制单元、计数模块、响铃模块和七段数码管显示,五个模块相互作用共同实现系统功能。具有时、分、秒计时功能、通过按键校对时间功能、整点报时功能以及
3、数码管显示功能,此外还可通过按键切换具有开始、暂停功能的秒表以及闹铃使用。根据高级数字系统设计和实现的基本流程,通过对系统功能需求进行分析,对整体流程图进行设计、并提取出数据通道和控制单元。接下来,用可综合的寄存器传输级Verilog语言实现、经过ModelSim做功能仿真、再功能满足要求基础上,用Quartus II进行综合布局布线,并最终下载到FPGA开发板进行实机验证。并在设计过程中不断对电路性能进行优化。关键词:EDA工具,Verilog HDL,数字钟,FPGA大连东软信息学院毕业设计(论文) Abstract Design and Implementation of Digital
4、 Clock Based on FPGAAbstractWith the development of human civilization, the requirement of clock is in constant increase. The clock is not only to be seen as a kind of tool used to display the time, in many practical applications, it needs to be able to achieve other more functions. At the same time
5、, the hardware description language and the use of FPGA programmable device can be greatly convenient for the design of the circuit, combined with EDA technology has become a dominant design method. This design adopts the top-down design method, circuit is described by Verilog HDL, and under the EDA
6、 tools, comprehensive and complete simulation verifies the digital clock timing and function.This topic is based on Altera FPGA design and implementation of the multi-function digital clock. According to the system function it is divided into five modules, including the frequency division module, th
7、e control unit, counting module, alarm module and seven segment digital tube display, five modules interact together to achieve system function. It has functions, such as minutes and seconds counting, time adjusting by key, hour alarming and the digital tube displaying, in addition it can switch bet
8、ween second clock and alarm with start and pause function by buttons. According to the basic process of advanced digital system design and implementation, by analyzing system function demand, the whole flow chart can be designed, and data channel and control unit can be extracted also. Next, it can
9、be described by synthesizable register transfer level Verilog language. for function can be verify by ModelSim, place and route is based on Quartus II, and finally it can be downloaded to the FPGA development board to carry on the real hardware test. Circuit performance is continuously optimized in
10、the design process.Key words: EDA Tools, Verilog HDL, Digital Clock, FPGA 大连东软信息学院毕业设计(论文) 目录 目 录 TOC o 1-3 u 摘 要 PAGEREF _Toc19674 IAbstract PAGEREF _Toc16346 II第1章绪 论 PAGEREF _Toc11744 11.1 课题研究背景与意义 PAGEREF _Toc29295 11.1.1 课题研究的背景 PAGEREF _Toc3536 11.1.2 课题研究的意义 PAGEREF _Toc432 11.2 课题研究内容与方法 PA
11、GEREF _Toc4212 21.3 课题研究现状 PAGEREF _Toc12206 2第2章关键技术介绍 PAGEREF _Toc3930 32.1 关键技术一 PAGEREF _Toc6264 32.1.1 FPGA概述 PAGEREF _Toc9261 32.1.2 FPGA基本结构 PAGEREF _Toc28055 32.1.3 FPGA开发编辑原理 PAGEREF _Toc26282 42.2 关键技术二 PAGEREF _Toc27306 42.2.1 软件开发环境及基本流程 PAGEREF _Toc878 42.2.2 具体设计流程 PAGEREF _Toc13195 5第
12、3章系统需求分析 PAGEREF _Toc14824 73.1 系统设计目标 PAGEREF _Toc4321 73.2 系统功能需求 PAGEREF _Toc827 73.3 系统非功能需求 PAGEREF _Toc26129 73.4 系统开发环境 PAGEREF _Toc28884 73.4.1 硬件环境简介 PAGEREF _Toc21482 73.4.2 软件环境简介 PAGEREF _Toc2298 83.5 系统可行性分析 PAGEREF _Toc21890 93.5.1 技术可行性 PAGEREF _Toc22700 93.5.2 经济可行性 PAGEREF _Toc20762
13、 10第4章系统设计 PAGEREF _Toc28027 114.1 系统设计指导原则 PAGEREF _Toc9478 114.2 体系结构设计 PAGEREF _Toc16208 114.3 硬件设计 PAGEREF _Toc14565 114.4 系统的详细设计 PAGEREF _Toc4407 124.5 各核心模块设计 PAGEREF _Toc7614 134.5.1 小时计数器 PAGEREF _Toc18852 134.5.2 done信号产生器 PAGEREF _Toc23469 134.5.3 整点校对器 PAGEREF _Toc1493 144.5.4 闹钟校对器 PAGE
14、REF _Toc16963 144.5.5 闹钟设置器 PAGEREF _Toc2358 15第5章 系统实现 PAGEREF _Toc30936 165.1 数据通道的实现 PAGEREF _Toc28915 165.2 控制单元的实现 PAGEREF _Toc13904 16第6章系统测试 PAGEREF _Toc5409 176.1 测试概述 PAGEREF _Toc1061 176.2 测试用例 PAGEREF _Toc3106 176.2.1 秒计时器、分计时器与done信号产生器 PAGEREF _Toc20155 176.2.2 分计时器、时计数器与done信号产生器 PAGER
15、EF _Toc10801 176.2.3 整点报时 PAGEREF _Toc21824 186.2.4 闹钟校对器 PAGEREF _Toc26162 186.2.5 状态机 PAGEREF _Toc23978 196.2.6 时间和闹钟的设定 PAGEREF _Toc5703 19第7章结论 PAGEREF _Toc30100 21参考文献 PAGEREF _Toc18865 22致 谢 PAGEREF _Toc3843 23大连东软信息学院毕业设计(论文)- 第1章绪 论本设计是采用正是自上而下的设计方法,依靠强大的EDA工具为手段将电子产品从电路设计到性能分析所生成的文件为设计依据,再由
16、五个模块互相协同作用,构建形成了一个基于FPGA(Field Programmable Gate Array)的数字钟。1.1 课题研究背景与意义现在是一个知识产业爆炸的新世纪。所有新的事物层出不穷,让应接不暇。以此同时数字化产业也在蓬勃发展,日益壮大。不难发现,随处可见数字化技术的产品,和的生活息息相关,的生活环境都被电子产品所包围着,这些巨大的改变正在引领世界观的改变。在这个飞速发展的年代里,时间对每个人来说都是越来越珍贵,俗话说浪费时间就是浪费生命,这也证明了时间的重要。以此同时快节奏的生活也影响对时间的准确判断,如果一旦遇到重要的事情而忽略了时间的重要,那将是一种很大的损失,因此急切需
17、要一个掌控时间的系统来提醒忙碌的自己。数字化的钟表因需求而诞生了,不仅给人们带来了极大的方便,也可以合理的分配时间,成为时间的主人。最近几年,随着科技的发展和社会生活水平的提高,人们对钟表的要求也越来越严格,传统的数字钟已经不能满足人们的需要,多功能数字钟就随之产生了,在性能和样式上都有了质的改变,更强大的功能来满足人们的需求。代表的有电子闹钟、数字闹钟等等。1.1.1 课题研究的背景人类科技文明在日新月异的进步,快的让人始终追赶不上。便于人们生活需要的数字钟在其性能等方面都有了新的需求。此时的数字钟不再是只是一个时间的概念,而是包含了更多生活实际应用需要体现的功能,比如定点报时,选取音乐闹铃
18、等。现代数字钟发展的趋势必定势不可挡,会在精确度、体积、方便性、性能等方面做出更高的要求,在这种趋势下,数时钟的现代化、多功能化、实用化已经成为了一个现在研究的重要设计方向。在本次设计是能把所学的理论知识和实际相结合的最后时机,通过状态机的工作原理,也进一步的清楚时钟的控制单元和时钟的脉冲是如何产生和进行工作的。通过使用EDA技术清楚的感受到了强大,提高了电路设计效率和可操作性,大大减少了人力。最后通过对整个课程项目设计的理解,达到毕业设计的目标。1.1.2 课题研究的意义数字钟已经成为了一个现代的计时器,也可以当作是时间控制的时钟源。数字钟并不陌生,因为看起来很直观、时间走的很准、选择款式又
19、多样,所以受到大家的喜爱。也由于现在电子产业的发展和石英晶体震荡器在生活中的广泛应用,使得以前的老式钟表远远赶不上数字钟的精确。在人们生产生活中数字钟带来了极大的方便,并且很好的扩展了钟表原先的各项功能,例如计时功能、校时功能、整点报时功能、秒表功能等等,所有这些改变,都是依靠钟表的数字化作为原理的。所以要研究出更符合人们需要的数字钟,对方便生活和工作有着深远的意义。1.2 课题研究内容与方法本设计主要是由分频模块、控制单元、计数模块、响铃模块和七段数码管显示这五个模块组成。基本功能:本次设计的数字钟是基于FPGA的纯硬件实现,所以要在FPGA获得准确的初始时间,再经过Verilog编程给时、
20、分、秒获得较为精确的分频信号,这就是分频模块;计数模块的分和秒是通过对60取模实现,时也是通过对24取模实现;设置时钟模块则通过计数器置位端实现;译码模块是通过3-8译码器的译码实现的。显示模块是通过选择器、译码器、码转换器和7段数码管共同进行动态显示的。1.3 课题研究现状现在电子产品的发展趋势是功能多样化,体积最小化,功耗最低化。和传统意义上的电子产品在设计上有着明显的区别,其中最大的区别是现在电子产品大量使用大规模可编程逻辑器件,以提高产品的性能,缩减体积,降低功耗,与此同时还广泛运用最新的计算机技术,带来的好处是提高了产品的自动化程度和竞争能力,大大的缩短研发所用的周期。EDA(Ele
21、ctronic Design Automation的缩写,即HYPERLINK /search?word=电子设计自动化&fr=qb_search_exp&ie=utf8电子设计自动化)技术正是吸取了百家之长而形成的一门新型的技术,的诞生正是时代需求的产物。EDA是自动化完成从逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作,以可编程逻辑器件作为设计载体又把硬件描述语言作为一种描述方式,最终形成了以IC集成电路系统或专用集成芯片为主导的一门新技术。本设计是通过利用Verilog硬件描述语言结合可编程逻辑器件(PLD)进行的,并通过7段
22、数码管的静态读数显示结果。利用不同的技术可以实现不同的数字钟,如用单片机和VHDL设计出的数字钟。那本次设计选用可编程逻辑器件(PLD)来实现主要是因为掌握起来不难、操作起来容易上手、图形界面比较直观、可以进行编程加密、设计出来的成功率高等优点,因而本设计采用可编程逻辑器件来实现数字钟的设计。大连东软信息学院毕业设计(论文)第2章关键技术介绍本设计关键的技术在最后下载到FPGA上的数字显示,因为FPGA更像一个大号的可编程逻辑器件(CPLD/EPLD),首先每个逻辑功能模块会整齐的排成阵列,再由可编程的内部连线连接各个逻辑功能模块来实现设计者想要的各种设计。当然在完成设计中编译环节必不可少,选
23、用Quartus II是因为其提供了一种与结构无关的设计环境,使设计者能方便地进行设计输入、快速处理和器件编程的功能,因而完成代码的成功编译需要依靠Quartus II。2.1 关键技术一2.1.1 FPGA概述现场可编程门阵列(Field Programmable Gate Array)是FPGA的简称,与之相应的是复杂可编程逻辑器件(Complex Programmable Logic Device)CPLD的简称,两者的功能基本上是相同的,只是在实现原理上略些有不同,不过大多数可以忽略这两者的区别,可统称为可编程逻辑器件或CPLD/FPGA。CPLD/FPGA很强大,几乎能完成任何数字电
24、子器件的功能,上到高性能CPU,下到简单的74电路。如同是在孩子面前摆放的一堆零散的积木,设计者可以通过传统的原理图输入或硬件描述语言自由的设计一个想要完成的数字系统。在此之后,可以通过软件仿真事先验证设计的准确性,在PCB完成验证以后,利用CPLD/FPGA的强大在线修改功能,随时随地修改设计而不必改动硬件的各项电路。使用CPLD/FPGA开发数字电路,可以大大缩短设计的周期,减少PCB面积,从而提高系统的可靠性。这些优点使得CPLD/FPGA技术在20世纪90年代以后开始得到飞速的发展,这也大大推动了EDA软件和硬件描述语言HDL的进步。2.1.2 FPGA基本结构FPGA采用了逻辑单元阵
25、列LCA(Logic Cell Array)这样一个新的概念,是由内部电路和一个SRAM(Static RAM)静态随机存储器组成。内部包括的电路依次是:可配置逻辑模块CLB(Configurable Logic Block)、输入或输出模块IOB(Input Output Block)和内部连线IR(Interconnect Resource)。可配置逻辑模块CLB(Configurable Logic Block)是实现各种配置功能的最基本单元,通常是规则的排列成一个队列,在整个芯片中进行分布;可编程输入或输出模块(IOB)是FPGA与外界电路的接口部分,主要用于完成不同电气特性下对输入或
26、输出信号的驱动和匹配要求;可编程内部连线包括了所以长度的连接线段和一些用来编程连接的开关,主要将各个可编程逻辑模块和输入输出模块相互连接起来,形成一定功能的电路设计。2.1.3 FPGA开发编辑原理硬件设计需要根据各种性能指标、成本多少、开发周期长短等因素进行总体分析,最后确定最佳的设计方案,画出系统的框图,选择相应的芯片,设计出PCB并最终形成样机。CPLD/FPGA软件设计可划分为两大模块:第一种是编程语言,编程语言主要有Verilog和VHDL两种硬件描述语言;第二种是编程工具,现在主要是Altera和Xilinx的两大厂家集成综合EDA软件QuartusII和第三方工具。FPGA具体的
27、设计输入方式有以下介绍的两种:(1)HDL语言方式HDL不仅可以描述顶层的设计,也可以描述底层设计,但其也有显著的缺点,就是没有做到有较高的工作速度和芯片利用率。用这种方式描述的设计项目最后所能达到的性能比率和设计人员的水平、经验以及综合软件有着很大的关联。(2)图形方式图形方式具体可以分为电路原理图描述,状态机描述和波形描述3种方式。原理图方式描述看起来更容易清楚,但是自身对综合性的软件要求不敏感。通常都会使用相对成熟的IP核和中小规模IC(集成电路)构建现成的电路,再把电路放到一片可控制逻辑器件的里面去,这样操作一来没有浪费芯片的使用率,再者可以提高硬件部分的工作速度。但是当任务非常大时,
28、该设计方法就会显得有些麻烦;状态机描述是一种设计思想的呈现,主要针对各种时序电路。首先用形象的图形来代表设计中每个所需的工作状态,然后在每个状态边沿上写上状态互相可以转换的条件,然后用的HDL语言描述整个转换的过程和状态条件,最好要送去综合软件那里用可编程逻辑器件进行综合。状态机到HDL语言描述之间有着一种自身默认的描述方法,要想顺利通过综合软件就需要使用这种描述方式,这样关系到最后所能达到的工作效率以及芯片的利用比率;波形描述方式则是基于真值表的一种图形输入方式,然后直接描述输入与输出的波形关系。2.2 关键技术二2.2.1 软件开发环境及基本流程本设计中所使用的软件主要是QuartusII
29、,所以在此对其做一些简介。Altera公司的QuartusII具有显示界面良好、容易操作使用、性能优良,并且自带编译和仿真等功能的开发软件。因为内嵌有VHDL的逻辑综合器和仿真器,所以QuartusII软件可以完全用VHDL设计流程完成。同时QuartusII也是可以利用第三方的综合工具,而且能可以直接调用例如FPGA这样的工具,也可以直接对第三方的工具进行仿真功能,真正做到了两不误。QuartusII拥有自身系统化的编译器。其中分析器、综合器、适配器、装配器、时序分析器、设计辅助模块、EDA网表文件生成器、编辑数据接口等等都属于编译器里面的一部分,其之间的共同合作完成编译功能。在实践操作中如
30、果是单独运行其中的某个模块就通过选择Start,想要运行所以模块就通过选择Start Compilation来操作会很简单,与此同时任意打开操作中的设置文件或者是报告文件,当然也可以打开其它有关的窗口完成编译。在输入当前的设计之后,需要清楚的了解设计错误出现在哪,这时QuartusII的编译器将给出你设计中的错误报告,来确定文本或者图形中出现的错误,这一切都是由于QuartusII内部设置了一个错误定位器,其结果也是很精确可靠的。编译成功后将利用波形编辑器来编辑一个波形激励文件,再进行设计的时序仿真,再确定编译和仿真检测无错后,便可将下载的信息通过QuartusII提供的编程器下载到入目标器件
31、中了。2.2.2 具体设计流程(1)建立工作库和编辑设计文件首先要建立工作库文件夹目录,以方便存储工程所需的项目设计文件。对于任何一项设计都可以看做是一项工程,所以都必须建立一个放置与此工程目录相关的所有设计文件的文件夹,也是为了工作的便捷。此文件夹一但建立就会被EDA软件默认为工作库。具体来说,相对不同的设计项目最好放在不同的文件夹中,为了避免混淆,要求把同一工程的所有文件都放在同一文件夹中。(2)创建工程使用New Project Wizard都可以作为工程指定的工作目录、工程名称的分配以及指定最高层设计实体的名称,当然还可以指定要在工程中使用的设计文件夹、其它源文件、用户库和EDA工具,
32、以及目标具体器件等等。(3)编译前设置在对工程进行编译处理前,必须做好必要的设置。此步骤如下:首先选择FPGA目标芯片,其次选择配置器件的工作方式,接着选择配置器件和所选用的编程方式,然后选择输出设置,最后选择目标器件闲置引脚的状态。(4)时序仿真QuartusII编译器是由一系列处理模块构成的,这些模块主要是对所设计项目的检错、逻辑综合、结构综合、输出结果的编辑配置,还有时序分析。在整个过程中,将设计项目配置到FPGA目标器中,同时产生多种用途的输出文件。首先编译器会检查出工程的设计文件中可能出现的错误信息,以方便设计者进行排除。最后产生一个结构化的以网表文件呈现的电路原理图文件,设计者可以
33、根据产生的网表进行调试。(5)测试在整个工程编译完全通过后,必须建立VWF文件好对其功能性和时序性质进行仿真测试,以了解设计结果是否满足原设计的要求。第3章系统需求分析3.1 系统设计目标本次设计为多功能的数字钟,使用Verilog编程语言完成所有功能的设计,采用自上而下的设计方法,通过数据通道与控制单元之间的配合完成全部功能。其中数据通道主要负责处理和传输数据的功能,控制单元则是负责很好的控制数据通道中各个模块的动作。最后在FPGA开发板上使用七段数码管显示并使用相应的按键控制以展示所有功能。包括钟表功能、闹钟功能、整点报时功能、秒表功能以及选择闹钟音乐功能等。3.2 系统功能需求根据需求调
34、研结果确定本系统主要包括如表3.1功能模块。表3.1 接口其它业务功能功能编号功能名称功能描述优先级1钟表功能准确的记录时间并显示高2闹钟功能现实时间到所设定的时间后响铃高3整点报时功能时间到达整点后响铃中4秒表功能显示从零开始以秒为单位计时中5闹钟音乐选择功能设定闹钟时可选择不同音乐中3.3 系统非功能需求(1)性能精确的显示时、分、秒功能,秒表功能,整点报时功能还有用户手动设定闹钟后在设置时间点可以进行响铃。(2)成本设计中设计人员自身的成本,设计所需要用到的设备成本,以及购买设计开发板的成本。3.4 系统开发环境 3.4.1 硬件环境简介本次系统用到Altera的DE2-115开发板(见
35、图5.1),资源非常丰富,其中包括核心的FPGA芯片Cyclone IV 4CE115F29,从名称可以看出,拥有115个LE。Altera下载控制芯片EPCS64以及USB-Blaster对Jtag和as模式的支持;存储用的芯片有2-Mbyte SRAM,64-Mbyte SDRAM,8-Mbyte Flash memory;拥有4个经典IO配置按钮,拨动开关就有18个,红色发光二极管18个,绿色发光二极管9个,七段数码管8个,液晶显示屏是16*2个字符;由24位CD音质音频芯片WM8731(Mic输入+LineIn+标准音频输出)的超多媒体和视频解码芯片(支持NTSC/PAL制式),还有带
36、有高速DAC视屏输出VGA等模块组成;更多标准接口:通用串行总线USB控制模块以及A、B型接口,SD Card接口,IrDA红外模块,2个10/100/1000M自适应以太网络适配器,RS-232标准串口,PS/2键盘接口;最后有50M晶振,支持外部时钟,80针带保护电路的外接IO,1个hsmc连接器。以下为本次设计中主要运用到的功能:DE2-115控制面板可以用来点亮LED灯,以此来改变显示在7段数码管数值。DE2-115开发板包含一个存储有Cyclone IV E FPGA芯片配置数据的串行配置芯片。每次开发板进行上电的时候,芯片里面的配置数据会自动从配置芯片加载到FPGA芯片上。使用Qu
37、artus II软件,用户可以随时重新配置FPGA,并可以改变存储在非易失性串行存储器芯片(EPCS)里面的数据。(3)DE2-115包含一个生成50MHz频率时钟信号的有源晶体振荡器,另有一个时钟缓冲器用来将缓冲后的低抖动50MHz时钟信号分配给FPGA。这些时钟信号用来驱动FPGA内的用户逻辑电路。如下图5.1开发板正面图所示。图5.1 开发板正面图3.4.2 软件环境简介(1)Quartus II是HYPERLINK /view/3317625.htmAltera公司生产出来的一种具有综合性PLD/FPGA的开发HYPERLINK /view/37.htm软件,支持原理图、VHDL、Ve
38、rilogHDL以及AHDL(Altera Hardware Description Language)等各种编程语言的设计。Quartus II内部嵌有综合器和HYPERLINK /view/557623.htm仿真器,可以完成从设计输入到硬件配置的整个PLD(Programmable Logic Device)的设计过程。Quartus II使用广泛,不仅可以在个人操作系统上使用,还可以再Linux系统和Unix系统上使用,当然除了用TclHYPERLINK /view/54.htm脚本完成设计流程外,还提供了比较完善的用户图形界面。Quartus II具有很多的特点,例如运行速度快,统一
39、化界面,集中性功能,易懂易操作等等。为了让用户使用起来并不觉得陌生,Quartus II充分利用现有的成型模块,从而简化了设计的复杂性,并且加快设计的速度。Quartus II还支持Altera的IP核(包含了LPM/Mega Function宏功能模块库)。几乎在设计的每个阶段都会使用到EDA工具,同时也会接触到第三方EDA工具,就是这样的相互促使使得EDA工具不断向前发展。(2)ModelSim给设计者提供了一个非常良好的仿真环境,为设计者加快调错提供了强有力的技术支持,也是业界唯一一款HYPERLINK /view/2375980.htm单内核支持VHDL和Verilog混合仿真的HYP
40、ERLINK /view/557623.htm仿真器,很强大来自于编译的代码都与使用的平台无关,基本都是采用已经优化好的HYPERLINK /view/553519.htm编译技术、Tcl/Tk技术和单一内核仿真技术。这种技术使得编译的速度加快,个性化的界面和诸多的用户接口,这些优点都吸引着广大设计者的青睐,良好的口碑也促使ModelSim成为了HYPERLINK /view/1667387.htmMentor公司设计出的迄今为止最优秀的HDL语言HYPERLINK /view/561380.htm仿真软件。3.5 系统可行性分析3.5.1 技术可行性传统意义上的数字电路系统设计只能对电路板(
41、全部由器件搭建而成)进行设计,通过电路板构成电子系统来实现系统各项功能。设计方法是自底向上的(bottomtoup),通俗的说就是先选取合适的基础电路,把这些电路构建成你需要的电子系统,为了避免出错,还得进行相应的单元电路测试,然后制作成样本机,最后开始调试电路模块。按照这种过程设计的产品,弊端就是所用元件的种类和数量比较多,一次性成功率很低,开发周期比较长,系统接线多,可靠性差,体积和功耗相对大,成本也会提高。基于前面的弊端本设计选用的是基于EDA设计的,与之前传统的设计方法正好相反,首先是从系统设计入手,从顶层就开始进行功能划分和结构设计,并在系统级采用仿真的手段来验证设计是否正确,然后再
42、逐级设计低层的结构,真正实现了从设计、仿真、测试一体化。诸多项目的验证与设计、电路与PCB设计、专用集成电路(Application Specific Integrated Circuit,简称ASIC)设计等等都由电子系统设计者借用于EDA工具完成的。另外,要对仿真(simulate)重新定义认识,所谓仿真就是把所以原有的初始设计文件加载到计算机中去进行一系列的准确逻辑和时序验证,从而形成最后的以信号关系呈现的波形图,对照波形图可以查找设计的输入/输出关系,以便设计者正好的纠正错误。正是由于EDA给设计者提供的强大的软件测试平台,促使大规模系统电子设计自动化程度。现代数字系统设计的含盖非常广
43、泛,系统功能也在日趋完善和人性化。基于本设计使用的EDA技术,具有标准化的设计方法和设计语言,已经成为信息产业界的共同平台,也会是成为数字系统设计的必然首选。本次设计使用的编程语言是Verilog,这是一种实际电路的不同级别的抽象表现。Verilog模型并不难理解,也就是用Verilog 语言描述的电路设计,众所周知,Verilog语言不仅对行为级描述的语言,也是一种对结构级描述的语言。那就是说,Verilog模型既可以用电路的功能描述,也可以用元器件和电路之间的连接来建立。由此可见Verilog语言是一种用于专门设计数字逻辑电路的语言,所以适合本次的设计需要。Verilog语言的具有以下两大
44、优势。Verilog语言拥有最为广泛的设计群体,成熟的资源也远比VHDL要丰富。Verilog语言和VHDL最大的差别是在语法上,Verilog语言是一种类似C语法的语言,而VHDL是一种ADA(Action Data Automation,行动数据自动化)语言。由于C语言语法简单易用且应用广泛,因此也使得Verilog 语言容易学习,只有你有C语言学习的基础,Verilog语言也就很快能够掌握。3.5.2 经济可行性FPGA相对其它工具最大的特点就是灵活,不仅可以实现设计者想实现的任何数字电路,也可以自己定制各种电路。大大减少受制于专用芯片的束缚。真正做到了为自己的产品代言,在设计的过程中如
45、果发现不满意的地方可以随时进行灵活的更改,而且拥有强大的逻辑资源和寄存器资源,这些可以让设计者随意的去发挥设计理念,进行开放的设计,其中设计者不会担心供不应求,因为硬件实现的方式可以应对设计中大量的高速电子线路来满足设计需求。FPGA工具相比DSP拥有更快的速率,用此可以实现非常复杂的高速逻辑功能,而且FPGA比ASIC(专用芯片)有更短的设计周期和相对的灵活性,免去高昂的开版费用,并且可以对其进行随时裁减,增加设计者想要的功能,缩短了设计风险,回避芯片厂商的有关限制。另外知识产权的概念已经引入生活中,为了防止别人的抄袭,FPGA也相应的仿制功能,使得设计者的智慧得以保护,也让公司的利益有了较
46、长时间得保证。伴随FPGA芯片供应商和第三方公司的重视,现在市场上出现很多免费的软IP核和硬 IP核都是压缩了成本,减少开发周期。第4章系统设计4.1 系统设计指导原则本设计使用EDA技术,采用设计方法是自顶向下,是各个基本模块相互作用共同构建了一个基于FPGA的多功能数字钟。该数字钟可以实现正常时间显示、闹钟的设定和响铃,秒表等功能。根据数字系统设计和实现的基本流程进行设计,包括数据通道和控制单元的设计、并用可综合的VerilogHDL语言实现、在Quartus II进行系统的开发,经过ModelSim做功能仿真、用Quartus II进行综合布局布线,最终下载到FPGA开发板进行实机验证。
47、并在设计过程中不断对电路性能进行优化。4.2 体系结构设计图4.1 系统体系结构图如图4.1系统体系结构图所示,本系统设计主要计划分为4个部分,依次分别是控制单元、数据通道、分频和外围电路。其中的控制单元是较为灵活多样的,要想增强数字钟的各项功能就需要不断的强化。4.3 硬件设计分频系统中分频的作用在于将基准时钟变成供自己电路所使用的时钟,本设计中分频将被分为三个时钟,分别供其他三部分电路使用。把开发板产生稳定的高频脉冲信号作为数字钟的基准时间,然后经过编程进行分频。人为设定秒计数器计满60便向分计数器进位,当分计数器计满60向小时计数器进位,以此类推,计满后全部清零,并开始重新计数。状态机系
48、统中的控制器,控制数据通道中各个模块的如何工作,使各模块之间合理配合完成正确的功能。数据通道系统中的执行单元,在状态机的控制下完成所有数据的传递与处理,是完成各个功能的保障。外围电路系统中的外围电路包括7段数码管的译码电路和蜂鸣器的译码电路,共同完成最后的时间显示和闹铃的响铃功能。4.4 系统的详细设计图4.2 状态转换图这就是本次设计的状态机,五个状态之间都是相互转换,共同完成功能设置。如图4.2状态转换图所示。(1)Idle在此状态下,数据通道内(包括计数器、寄存器等)所有的模块都将进行初始化操作。(2)正常时间显示在此状态下,系统会通过秒、分、时的正常计数再通过FPGA开发板上的7段数码
49、管显示,与此同时还会一直监视当前的时间是否为整点或者是否和用户所设闹钟的时间一致(如果没设置闹钟则按照初始时间进行校对),如果一致则驱动蜂鸣器开始工作。(3)设置闹钟在此状态下,系统会记录用户所设置的时间然后进行对比。(4)设置时间在此状态下,系统会自动更新显示为用户手动所设置的时间并接着此时间继续计时。(5)秒表在此状态下,系统开始进入秒表模式,7段数码管不在正常显示时钟和分钟,只是显示秒的动作。4.5 各核心模块设计4.5.1 小时计数器在本系统中计数器起着非常重要的作用,整个系统都是以此为基准进行计时,如图4.3小时计数器所示。图4.3 小时计数器本模块信号如上图所示,功能为根据使能信号
50、en_24进行计数并输出,输出为数字钟的小时数值,计时器自动逢23清零(本系统是采用24制显示)。当en_24和load同时有效时用户经过手动输入显示到in_24,更改out_24的数值,以此可以实现时间的校对和修改。分钟和秒钟计数器也均为此模型得以建立,只是每逢59清零,秒计时器则不使用置位端。4.5.2 done信号产生器小时根据分钟在变化,分钟根据秒钟在变化,本模块就是根据秒钟计数器和分钟计数器来产生秒钟done信号和分钟done信号,如图4.4 done信号产生器所示。图4.4 done信号产生器本模块的信号如上图所示,输入out_in为秒钟计数器的输出也可以为分钟计数器的输出,当秒钟
51、计数到59时,本模块会产生一个done的信号,done信号会拉高一个时钟周期,使分钟计数器加1,同时秒钟由于计满60了而清零重新开始计数(秒的清零与分的加1发生在同一时钟周期)。此模块复用两个,分别为根据秒产生秒done信号和根据分产生分done信号,本系统的计时功能不需要状态机的配合即可自动完成。4.5.3 整点校对器本系统加入整点报时的功能,也就是整点时会触发蜂鸣器开始工作,本模块根据现时刻时间产生相应的使能信号供蜂鸣器使用,如图4.5整点校对器所示。图4.5 整点校对器本模块的输入分别为分钟计数器输出与小时计数器的输出,本模块是由判断秒计数器和分计数器两个模块的输出来产生蜂鸣器的使能信号
52、,当f_in为任意值并且m_in为0时,代表此刻为一个整点时钟,此时模块的输出integral_done信号会置为1,也就是有效,使蜂鸣器开始工作。4.5.4 闹钟校对器本系统加入闹钟功能,即当前时间等于所设定的时间时,蜂鸣器工作,如图4.6闹钟校对器所示。图4.6 闹钟校对器本系统的闹钟校对功能主要通过本模块实现,本模块主要功能为根据当前时间和设定时间之间的进行对比,只有在两者相同时,产生的done信号即产生蜂鸣器的使能信号才有效。模块信号如上图所示,alarm_en为本模块的使能,也就是闹钟的开关,只有当使能有效时才会产生done信号,其它4个输入从上到下依次分别为原始的分钟、原始的小时、
53、设置的分钟、设置的小时(原始分钟即为当前的分钟)当原始分钟等于设置分钟时,原始小时等于设置小时并且alarm_en有效时,alarm_done信号置1,蜂鸣器正常工作。4.5.5 闹钟设置器图4.7 闹钟设置器如图4.7闹钟设置器所示,本模块功能由用户手动设置数字闹钟的时间,模块信号如上图所示,当en有效时out立即加1,从而实现用户在按按键时自动加数字的过程。本模块在设计中会复用两次,分别是在设置小时和设置分钟中使用,在设置时输出的数据会显示在数码管上,并同时传递给闹钟校对器使用。大连东软信息学院毕业设计(论文)系统实现5.1 数据通道的实现数据通道包含以下几个功能:闹钟功能、整点报时功能、
54、秒表功能以及选择闹钟音乐功能,整体系统设计由各个模块共同连接而成,数据通道各端口如图5.1所示。图5.1 数据通道5.2 控制单元的实现控制单元是整个设计的核心部分,通过不同状态之间的跳转控制数据通道和外围电路有序的工作从而实现预期设定的功能,控制单元如图5.2所示。图5.2 控制单元第6章系统测试本次设计为多功能数字钟,在传统数字钟的基础上添加新的功能,包括整点报时、闹钟等,本次测试仿真选用ModelSim,在设计中测试仿真是最重要的一步,能检查设计的功能实现的正确性,也是调试的重要依据,找出设计中潜在的各种错误和缺陷,冰以此为依据修改设计,完善设计,通过测试可以提前找出错误,为以后带来方便
55、。在通过EDA工具的软件测试后下载到FPGA开发板上检查功能的正确性。6.1 测试概述本次设计中的重点是最基础的传统数字钟的功能,因为其它功能都是依附于时间来做判断实现的。如果数字钟在计时出现错误的话,其它的功能将不能正常实现。设计中的状态机仅通过功能切换提供选择7段数码管显示内容的控制信号,数据通道是自己独立实现所有功能,所以测试的重点是数据通道各个模块,测试结果如下。6.2 测试用例6.2.1 秒计时器、分计时器与done信号产生器秒、分计时器和done信号产生器工作情况如图6.1秒、分时序图所示。图6.1 秒、分时序图秒计数器cnt_m的使能常开,计时到59时即一分钟过去后,自动清零,实
56、现现实中数字钟秒的功能;秒计时到59时,分钟done产生器f内部的sel信号拉低,使输出信号done_out拉高,done_out再拉高分钟计数器的使能en_60,f内部控制done_out信号拉高一个时钟周期,实现每60秒拉高一次,即使分钟每60秒加1,联合起来实现现实中分钟的功能。6.2.2 分计时器、时计数器与done信号产生器秒、分计时器和done信号产生器工作情况如图6.2时、分时序图所示。图6.2 时、分时序图当分计数器输出为59时,自动清零,同时拉高done信号产生器s的输出,持续一个时钟周期后拉低,使小时计数器使能拉高一个时钟周期,小时加1。小时计时到23时会自动清零,实现现实
57、数字钟的小时功能。上述秒、分和小时的变化均是同步进行,即在秒从59变0的同时,分从a变a+1,小时如上所述。6.2.3 整点报时如下图6.3整点报时时序图所示。图6.3 整点报时时序图当分钟与小时计数器的输出均为0时,也就是整点时,inte模块的输出done信号拉高一个时钟周期,与分钟小时同步,无延迟。done信号的拉高会导致响铃模块的使能拉高,开始响铃,完成整点报时功能。6.2.4 闹钟校对器如下图6.4闹钟校对器时序图所示。图6.4 闹钟校对时序图如上图所示:用户手动设置闹钟分显示为48,小时显示为1,即闹钟设置为1点48分,当cnt_s输出为1时,cnt_f输出为48时,即实际时间为1点
58、48分,此时alarm模块输出done信号拉高一个时钟周期,这时响铃模块使能有效,开始响铃从而实现了闹钟功能。6.2.5 状态机如下图6.5状态机时序图所示。图6.5 状态机时序图初始状态为0状态,方便控制各模块清零,在start信号拉高后进入正常计时显示模式1,清零信号无效,输出数码管显示选择控制信号show_sel为00;在time_set信号拉高后,进入设置时间状态2,此时show_sel为10,数码管显示为所设置的时间,time_set信号拉低后回到正常显示时间状态1;在alarm_sel信号拉高后进入设置闹钟状态3,show_sel为11,alarm_sel拉低后回到正常显示时间状态
59、1;在watch信号拉高后,进入秒表状态4,show_sel为01,watch拉低后回到正常显示时间状态1;通过外界输入的time_set、alarm_set以及watch信号控制电路有序的工作。6.2.6 时间和闹钟的设定如下图6.6时间与闹钟设定时序图所示。图6.6 设定时间与闹钟时序图start信号为高系统开始工作,状态机进入1状态即正常显示时间状态,在time_set信号拉高后进入2状态也就是设定时间状态,set_ft_en拉高一个时钟周期代表在外部按键一次,设置时间分钟加1。同理可知,set_st_en代表设置时间小时加1,在此状态下,状态机输出的选择信号会选择数码管显示设置的时间,
60、如上图所示,set_ft_en拉高5个时钟周期,设置时间分钟为5,time_set拉低后,系统进入正常显示状态,分钟由0被设置成了5,正确实现设置功能。alarm_set信号,在拉高后进入3状态也就是闹钟设置状态,在此状态下,set_fr_en拉高5个时钟周期,代表设置时间分钟为5,同理可知,如上图所示设置闹钟时间为1点5分,alarm_set信号拉低后,系统进入5即空状态,在此状态下,状态机输出两个寄存器的ld信号,把3状态下所设置的分钟和小时送给其它模块处理,之后系统进入1即正常显示时间状态。图6.7 设定时间与闹钟时序图如图6.7设定时间与闹钟时序图所示,在设定好1点5分的闹钟后,系统进
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广西玉林市本年度(2025)小学一年级数学统编版期末考试(下学期)试卷及答案
- 旅游地理测试题(含参考答案)
- 食品检验模拟题(附答案)
- 船舶传感与自适应控制考核试卷
- 电子商务创新社交电商与直播购物考核试卷
- 精神康复患者的自我接纳训练考核试卷
- 船舶改装施工过程中的问题与解决方案考核试卷
- 纤维编织技术在医疗辅助设备中的发展考核试卷
- 稀土金属提炼过程中的前沿技术探索与应用考核试卷
- 航运业数字化转型考核试卷
- 2025年广东广业投资集团有限公司招聘笔试参考题库含答案解析
- 家校共育阅读活动课件
- 二零二五年跨境电商运营合伙人协议模板3篇
- 开挖作业安全培训课件
- 产房静脉留置针护理
- 2024-2030年中国硅酸钠行业发展策略分析与投资风险评估报告
- 【MOOC】药物与健康-浙江大学 中国大学慕课MOOC答案
- 新增现浇楼板结构加固施工方案
- 2024年辽宁省第二届职业技能大赛(健康照护赛项)理论参考试题库(含答案)
- 初中主题班会《与不良的行为习惯告别》课件
- 北京工业大学《环境微生物学》2023-2024学年第一学期期末试卷
评论
0/150
提交评论