1、大学毕业论文基于 FPGA 的数字钟设计(VHDL 语言实现)摘要本设计为一个多功能的数字钟,具有年、月、日、时、分、秒计数显示功能,以 24 小时循环计数;具有校对功能以及整点报时功能。本设计采用 EDA 技术,以硬件描述语言 VHDL 为系统逻辑描述手段设计文件,在 MaxplusII 工具软件环境下,采用自顶向下的设计方法,由各个基本模块共同构建了一个基于 FPGA 的数字钟。系统主芯片采用 EP1K100QC208-3,由时钟模块、控制模块、计时模块、数据译码模块、显示以及报时模块组成。经编译和仿真所设计的程序,在可编程逻辑器件上下载验证,本系统能够完成年、月、日和时、分、秒的分别显示
2、,由按键输入进行数字钟的校时、清零、启停功能。关键词 数字钟;硬件描述语言;VHDL;FPGA;键盘接口IAbstractThe design for a multi-functional digital clock, with a year, month, day, hours, minutes and seconds count display to a 24-hour cycle count; have proof functions and the whole point timekeeping function. The use of EDA design technology, h
3、ardware-description language VHDL description logic means for the system design documents, in MaxplusII tools environment, a top-down design, by the various modules together build a FPGA-based digital clock.The main system chips used EP1K100QC208-3, make up of the clock module, control module, time
4、module, data decoding module, display and broadcast module. After compiling the design and simulation procedures, the programmable logic device to download verification, the system can complete the year, month, day and the hours, minutes and seconds respectively, using keys to modify, cleared , star
5、t and stop the digital clock. Keywords digital clock; hardware description language; VHDL; FPGA; keyboard interfaceII目录1 绪论 .11.1 选题背景 .11.1.1 课题相关技术的发展 .21.1.2 课题研究的必要性 .21.2 课题研究的内容 .32 FPGA 简介 .42.1 FPGA 概述 .42.2 FPGA 基本结构 .42.3 FPGA 系统设计流程 .72.4 FPGA 开发编程原理 .83 数字钟总体设计方案 .103.1 数字钟的构成 .103.2 数字钟
6、的工作原理 .114 单元电路设计 .134.1 分频模块电路设计与实现 .134.2 校时控制模块电路设计与实现 .144.2.1 键盘接口电路原理 .144.2.2 键盘接口的 VHDL 描述 .154.3 计数模块设计与实现 .234.3.1 秒计数模块 .234.3.2 日计数模块 .254.3.3 月计数和年计数模块 .284.4 动态扫描及显示电路设计与实现 .304.4.1 动态扫描模块 .304.4.2 显示模块 .315 实验结论与研究展望 .325.1 实验结论 .325.2 研究展望 .33I致谢 .34附录 .35参考文献 .410基于 FPGA 的数字钟设计1 绪论现
7、代社会的标志之一就是信息产品的广泛使用,而且是产品的性能越来越强,复杂程度越来越高,更新步伐越来越快。支撑信息电子产品高速发展的基础就是微电子制造工艺水平的提高和电子产品设计开发技术的发展。前者以微细加工技术为代表,而后者的代表就是电子设计自动化(electronic design automatic,EDA)技术。本设计采用的VHDL是一种全方位的硬件描述语言,具有极强的描述能力,能支持系统行为级、寄存器传输级和逻辑门级三个不同层次的设计;支持结构、数据流、行为三种描述形式的混合描述、覆盖面广、抽象能力强,因此在实际应用中越来越广泛。ASIC是专用的系统集成电路,是一种带有逻辑处理的加速处理
8、器。而FPGA是特殊的ASIC芯片,与其他的ASIC芯片相比,它具有设计开发周期短、设计制造成本低、开发工具先进、标准产品无需测试、质量稳定以及可实时在线检测等优点。在控制系统中,键盘是常用的人机交换接口,当所设置的功能键或数字键按下的时候,系统应该完成该键所设置的功能。因此,键信息输入是与软件结构密切相关的过程。根据键盘的结构不同,采用不同的编码方法。但无论有无编码以及采用什么样的编码,最后都要转换成为相应的键值,以实现按键功能程序的转移。钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、定时启闭电路、定时开关烘箱、通断动力设备,甚至各种定时电
9、气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用,有着非常现实的意义。1.1 选题背景本节将从 FPGA 嵌入式应用开发技术与数字钟技术发展的客观实际出1发,通过对该技术发展状况的了解,以及课题本身的需要,指出研究基于FPGA 的芯片系统与设计数字钟的设计与实现的必要性。1.1.1 课题相关技术的发展当今电子产品正向功能多元化,体积最小化,功耗最低化的方向发展。它与传统的电子产品在设计上的显著区别师大量使用大规模可编程逻辑器件,使产品的性能提高,体积缩小,功耗降低.同时广泛运用现代计算机技术,提高产品的自动化程度和竞争力,缩短研发周期。EDA 技术正是为了适应现
10、代电子技术的要求,吸收众多学科最新科技成果而形成的一门新技术。美国 ALTERA 公司的可编程逻辑器件采用全新的结构和先进的技术,加上 MaxplusII(或最新的 QUARTUS)开发环境,更具有高性能,开发周期短等特点,十分方便进行电子产品的开发和设计。EDA 技术,技术以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计的电子系统到硬件系统的逻辑编译,逻辑化简,逻辑分割,逻辑映射,编程下载等工作。最终形成集成电子系统或专用集成芯片的一门新技术。本设计利用
11、VHDL 硬件描述语言结合可编程逻辑器件进行的,并通过数码管动态显示计时结果。数字钟可以由各种技术实现,如单片机等.利用可编程逻辑器件具有其他方式没有的特点,它具有易学,方便,新颖,有趣,直观,设计与实验项目成功率高,理论与实践结合紧密,体积小,容量大,I/O 口丰富,易编程和加密等特点,并且它还具有开放的界面,丰富的设计库,模块化的工具以及 LPM 定制等优良性能,应用非常方便。因此,本设计采用可编程逻辑器件实现。1.1.2 课题研究的必要性现在是一个知识爆炸的新时代。新产品、新技术层出不穷,电子技术的发展更是日新月异。可以毫不夸张的说,电子技术的应用无处不在,电子技术正在不断地改变我们的生
12、活,改变着我们的世界。在这快速发展的年代,时间对人们来说是越来越宝贵,在快节奏的生活时,人们往往忘记2了时间,一旦遇到重要的事情而忘记了时间,这将会带来很大的损失。因此我们需要一个定时系统来提醒这些忙碌的人。数字化的钟表给人们带来了极大的方便。近些年,随着科技的发展和社会的进步,人们对数字钟的要求也越来越高,传统的时钟已不能满足人们的需求。多功能数字钟不管在性能还是在样式上都发生了质的变化,有电子闹钟、数字闹钟等等。1.2 课题研究的内容本设计主要研究基于 FPGA 的数字钟,要求时间以 24 小时为一个周期,显示年、月、日、时、分、秒。具有校时以及报时功能,可以对年、月、日、时、分及秒进行单
13、独校对,使其校正到标准时间。校对时间由 44 矩形键盘进行控制,为了保证计时的稳定及准确须由晶体振荡器提供时间基准信号。本设计小组成员共有三人:其他两人分别采用原理图设计和 Verilog HDL 语言设计。32 FPGA 简介2.1 FPGA 概述FPGA是现场可编程门阵列(Field Programmable Gate Array)的简称,与之相应的CPLD 是复杂可编程逻辑器件( Complex Programmable Logic Device)的简称,两者的功能基本相同,只是实现原理略有不同,所以有时可以忽略这两者的区别,统称为可编程逻辑器件或CPLD/PGFA。CPLD/PGFA几
14、乎能完成任何数字器件的功能,上至高性能CPU,下至简单的74电路。它如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入或硬件描述语言自由的设计一个数字系统。通过软件仿真可以事先验证设计的正确性,在PCB完成以后,利用CPLD/FPGA的在线修改功能,随时修改设计而不必改动硬件电路。使用CPLA/FPGA开发数字电路,可以大大缩短设计时间,减少PCB面积,提高系统的可靠性。这些优点使得CPLA/FPGA技术在20世纪90年代以后得到飞速的发展,同时也大大推动了EDA软件和硬件描述语言HDL的进步。2.2 FPGA 基本结构FPGA具有掩膜可编程门阵列的通用结构,它由逻辑功能块排成阵列,并由
15、可编程的互连资源连接这些逻辑功能块来实现不同的设计。FPGA一般由3种可编程电路和一个用于存放编程数据的静态存储器SRAM组成。这3种可编程电路是:可编程逻辑模块(CLB-Configurable Logic Block)、输入/输出模块( IOB-I/O Block)和互连资源(IRInterconnect Resource)。可编程逻辑模块CLB是实现逻辑功能的基本单元,它们通常规则的排列成一个阵列,散布于整个芯片;可编程输入/输出模块(IOB)主要完成芯片上的逻辑与外部封装脚的接口,它通常排列在芯片的四周;可编程互连资源包括各种长度的连接线段和一些可编程连接开关,它们将各个CLB之间或C
16、LB、IOB之间以及IOB之间连接起来,构成特定功能的电路。1.CLB是FPGA 的主要组成部分。图2-1是CLB基本结构框图,它主要由逻辑函数发生器、触发器、数据选择器等电路组成。CLB中3个逻辑函4数发生器分别是G、F和H,相应的输出是G 、F和H。G 有4个输入变量G1、G2、G3和G4;F也有4个输入变量F1、F2 、F3 和F4。这两个函数发生器是完全独立的,均可以实现4输入变量的任意组合逻辑函数。逻辑函数发生器H有3个输入信号;前两个是函数发生器的输出 G和F ,而另一个输入信号是来自信号变换电路的输出H1。这个函数发生器能实现 3输入变量的各种组合函数。这3个函数发生器结合起来,
17、可实现多达9变量的逻辑函数。CLB中有许多不同规格的数据选择器(四选一、二选一等),通过对CLB内部数据选择器的编程,逻辑函数发生器G、F 和H的输出可以连接到CLB输出端 X或Y,并用来选择触发器的激励输入信号、时钟有效边沿、时钟使能信号以及输出信号。这些数据选择器的地址控制信号均由编程信息提供,从而实现所需的电路结构。CLB中的逻辑函数发生器F和G均为查找表结构,其工作原理类似于ROM。F和G的输入等效于 ROM的地址码,通过查找 ROM中的地址表可以得到相应的组合逻辑函数输出。另一方面,逻辑函数发生器F和G 还可以作为器件内高速RAM或小的可读写存储器使用,它由信号变换电路控制。2.输入/输出模块IOB。IOB提供了器件引脚和内部逻辑阵列之间的连接。它主要由输入触发器、输入缓冲器和输出触发/ 锁存器、输出缓冲器组成。每个IOB控制一个引脚,它们可被配置为输入、输出或双向 I/O功能。当IOB控制的引脚被定义为输入时,通过该引脚的输入信号先送入输入缓冲器。缓冲器的输出分成两路:一路可以直接送到MUX,另一路经延