FPGA多功能电子钟44295.pdf
《FPGA多功能电子钟44295.pdf》由会员分享,可在线阅读,更多相关《FPGA多功能电子钟44295.pdf(76页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 集美大学毕业设计 闭应明:基于 FPGA 的多功能电子钟 I 基于 FPGA的多功能电子钟 集美大学信息工程学院 电子科学与技术专业 2015届 闭应明 学号:2011850057 摘要 本设计在基于以硬件描述语言 VHDL为基础的 EDA设计方法上,设计中根据系统的功能要求合理划分出层次,进行分级设计和仿真验证,将较为复杂的数字系统逻辑简化为基本的模型从而降低实现的难度。通过层次化的设计方法,自顶向下设计,把不同的功能模块组合到一起,使用 quartus II 工具进行设计编译仿真,最终在在 FPGA 的 DE2_70 开发板上中实现具有基本的年月日、时分秒、农历显示、节气提醒、传统节假日
2、提醒、闹铃闰年提醒等多功能的电子钟 关键字 硬件描述语言VHDL EDA FPGA quartus II DE2_70开发板 多功能电子钟 集美大学毕业设计 闭应明:基于 FPGA 的多功能电子钟 II The multi-function electronic clock of FPGA Bi Yingming NO:2011850057,Electronic science and technology major,2015 Information Engineering College of Jimei University Abstract:This design based on V
3、HDL(hardware description language)and EDA design method,so that we can through the function of the system in the design to divide reasonably into layers,hierarchical design and simulation,and to simplify the complex number system logic as a basic model to reduce the difficulty of implementation.Thro
4、ugh the design method of hierarchical,top-down design,the different function modules were moved together by using the quartus II tool design compiled simulation.Finally,the multi-function electronic clock that can show the date and time,and can warn the Solar terms,Traditional festivals,the leap yea
5、r and the alarm,was realized in DE2_70 development board of FPGA Key words:VHDL hardware description language EDA FPGA the quartus II DE2_70 development board multi-function electronic clock 目录 III 目录 引言.1 第一章 FPGA介绍.3 1.1 FPGA简单工作原理.3 1.2 FPGA应用.3 1.2.1 FPGA的硬件描述语言 VHDL简述.3 1.2.2 FPGA的 DE2_70开发板简述.
6、3 第二章 电子时钟设计.5 2.1 电子钟的功能设计指标.5 2.2 电子钟的整体构造.5 2.2.1 分频模块.6 2.2.2 秒模块.6 2.2.3 分模块.7 2.2.4 小时模块.7 2.2.5 天模块.8 2.2.6 月份模块.9 2.2.7年模块.10 2.2.8 阳历转阴历模块.11 2.2.9 闹铃模块.13 2.2.10 译码转换模块.13 2.2.11 七段数码管和 LCD显示模块.15 2.2.12、传统节假日提醒模块.16 2.2.13 24节气提醒模块.17 2.2.14 定时关机模块.18 2.2.15 l602LCD显示驱动模块.19 2.2.16、顶层模块.2
7、0 第三章 时钟验证.24 3.1 管脚绑定.24 3.2 时间参数一.24 3.3 时间参数二.26 3.4 时间参数三.26 3.5 结果分析.27 总结.29 致谢.30 参考文献.31 附录.32 IV 引言 1 引言 FPGA是现场可编程门阵列(FieldProgrammable Gate Array)的缩写,它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA 器件具有标准化,小型化、多功能、低功耗、高密度、系列化、高速率、低成本,可无限反复编程,并可现场模拟调试验证,设计灵活方便等特点。随着 F
8、PGA芯片的更新和发展,使数字系统的设计迈进了 SOPC时代,而各种IP 核的设计和应用是 SOPC设计的重要特征。除了各 FPGA设计厂商,还有许多第三方的 IC 设计公司将各种 IP 核推向市场,用户可以方便地下载试用,将其集成到自己的系统中。本设计是基于以硬件描述语言 VHDL为基础的 EDA设计方法,在 FPGA芯片上实现多功能电子钟。本设计涉及了 EDA设计的完整流程,可以很方便地通过修改增删,应用于各种基于 FPGA的系统中。闭应明 2 第一章 FPGA 介绍 3 第一章 FPGA介绍 1.1 FPGA基本工作原理 FPGA采用了逻辑单元阵列 LCA(Logic Cell Arra
9、y)这样一个概念,内部包括输出输入模块 IOB(Input Output Block),可配置逻辑模块 CLB(Configurable Logic Block)和内部连线(Interconnect)三个部分。FPGA是由存放在片内 RAM中的程序来设置其工作状态的,因此,工作时需要对片内的 RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。加电时,FPGA芯片将 EPROM中数据读入片内编程 RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的 FPGA编程器,只须用通用的 EPROM、P
10、ROM编程器即可。当需要修改 FPGA功能时,只需换一片 EPROM即可。这样,同一片 FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。1.2 FPGA应用 1.2.1 FPGA的硬件描述语言 VHDL简述 VHDL(very High Speed Integrate Circuit Hardware Description Language)是一种标准的硬件描述语言,也可以理解为超高速集成电路硬件描述语言。由于 IEEE标准硬件描述语言,在电子产业中,利用 VHDL进行系统行为级设计已经成为 FPGA和 ASIC的设计主流。一个完整的 VHDL程序,通常包括程
11、序包(package)、库(library)、实体(entity)、结构体(architecture)和配置(configuration)5部分。其中,程序包用于存放各种设计模块的能共赏的数据类型、常数和子程序等;实体用于描述设计实体的外部接口信号(I/O接口);结构体用于描述设计实体的内部电路;配置用于从库中选取所需的元件,并将其安装到设计单元的实体中;库用于存放已经编译的实体、结构体、包集合和配置。1.2.2 FPGA的 DE2_70开发板简述 DE2_70开发板是基于 FPGA应用的一种多功能运用的电子设备,它采用了Altera Cyclone II 2C70 FPGA芯片,给用户提供了
12、方便,且所有的端口都是由FPGA来驱动,其可以利用硬件描述语言,通过软件编程、仿真、编译、最终下载到开发板上,从而实现具有特定功能的电路。以下对 DE2_70开发板的一些驱动管脚及芯片型号做简单是描述 闭应明 4 图 1 DE2_70开发板 DE2平台上提供的资源如下:1、Altera Cyclone II 系列的EP2C35F672C6 FPGA芯片(板上器件标号U11),该芯片内含35 000个逻辑单元(LE)。2、主动串行配置器件EPCS16(板上器件标号U30)。3、板上内置用于编程调试和用户API设计的USB Blaster,支持JTAG模式和AS模式;U25是实现USB Blast
13、er的USB接口芯片FT245B;U26是用于控制和实现JTAG模式和AS模式的CPLD器件EPM3128,可以通过SW19选择配置模式;USB接口为J9。4、512K字节SRAM(U18)。5、8M字节(1Mx4x16)SDRAM(U17)。6、1M字节闪存(可升级至4M字节)(U20)。7、SD卡接口(U19)。8、4 个按键KEY0 KEY3。9、18个拨动开关SW0 SW17。10、9 个绿色LED灯LEDG0 LEDG8。11、18个红色LED灯LEDR0 LEDR17。12、两个板上时钟源(50MHz晶振Y1和27 MHz晶振Y3),也可通过J5使用外部时钟。13、24位CD品质音
14、频编/解码器WM8371(U1),带有麦克风输入插座J1、线路输入插座J2和线路输出插座J3。14、VGA DAC ADV7123(U34,内含3 个10位高速DAC)及VGA输出接口J12。15、支持NTSC和PAL制式的TV解码器ADV7181B(U33)及TV接口J12。第二章 电子时钟设计 5 第二章 电子时钟设计 2.1 电子钟的功能设计指标 A、支持日历和当日事件提醒两种显示模式;B、具有电子钟的基本功能:年月日显示、是否闰年提示、阴阳历显示、中国传统重要节日 提醒、中国 24 节气提示;C、支持定时自动关机功能;D、支持闹铃功能;E、FPGA基于 DE2开发板。2.2 电子钟的整
15、体构造 本电子时钟系统含有分频模块、计时模块、显示模块、节气提醒模块、闹铃提醒模块、传统节假日提醒模块、定时关机模块,阳历转阴历模块、译码转换模块等。分频器通过晶振得到 1HZ的频率时钟信号,加载到秒模块中,通过异步的计数方式,从而实现时钟计数的驱动。通过译码转换模块,可以实现显示模块和提醒模块的功能,具体的框架图如下图所示:图 2 电子钟结构 闭应明 6 2.2.1 分频模块 详细代码描述见附录分频模块 图 3 管脚说明如下 Clk:50MHZ时钟输入 COUT:1HZ时钟输出 图3 50分频结 构 2.2.2 秒模块 秒模块采用 60 进制,分频模块输出的时钟信号作为该模块的时钟信号 cl
16、ks,每当时钟的上升沿来时,就开始计数,即从 0 计数到 59,之后返 0,再开始计数到 59,如此反复,每当计数到 59 后,都会产生一个进位信号 clk1,这个进位信号作为分模块的时钟信号。当需要设置秒的时间时,可以添加一个设置信号sets,之后 30 作为设定值开始计数。主要代码实现如下:if sets=1 then -调制时间使能信号 qs=30;end if;elsif(clksevent and clks=1)then if(qs=59)then qs=0;clk1=1;-输出分模块时钟信号 elsif qs59 then qs=qs+1;clk1=0;-秒计数 end if;详细
17、代码描述见附录。图 4 管脚说明如下:其中 clks:时钟信号 Sets:校时设置信号 Clks1:进位信号 Qts:输出的秒时钟 图 4 秒计数结构 其仿真波形如下:进位信号 第二章 电子时钟设计 7 图 5 秒模块计数仿真 2.2.3 分模块 分模块也是采用 60 进制,其基本的计数原理和秒模块是一样的,其产生的进位信号 clk2作为小时模块的时钟信号,主要功能代码和秒模块一样,其中设置了一个闹铃控制信号 alarmmn,当 alarmmn=1时,内定的时间就会作为闹铃时间。代码描述见附录分模块。图 6 管脚分布如下:clkmn:时钟信号 Setmn:校时设置信号 alarmmn:闹铃校时
18、设置信号 Clks2:进位信号 mnx、mny:输出信号,作为闹铃的对照信号 Qtmn1、Qtmn2、Qtmn3:输出的分时钟 图 6 分计数结构 其仿真波形如下:图 7 分模块计数仿真 2.2.4 小时模块 小时模块采用的是 24 进制计数,当计数到 23 后,输出计数值会回 0,产生进位信号 clk3作为天模块的时钟信号,其主要的功能代码和分模块一样。代码描述见附录小时模块。图 8 管脚说明如下:其中 clkh:时钟信号 Seth:校时设置信号 Alarmh:闹铃校时设置信号 Clks3:进位信号 闭应明 8 hx、hy:输出信号,作为闹铃的对照信号 Qth1、Qth2、Qth3:输出的小
19、时时钟 其仿真波形如下:图 8 小时计数结构 图 9 小时模块计数仿真 2.2.5 天模块 在天模块中,当上一个模块的时钟信号来临时,如果是闰年,并且是 1、3、5、7、8、10、12、月,day模块开始则从 1 计数到 31,而如果是 2 月,则 day模块开始计时从 1 计数到 29,如果其他月份时,则计数从 1 到 30,之后并输出一个控制信号 clk2控制 month模块,此时 clk2=1,计数到最大值时都会回到 1,然后循环计数,此时 clk2=0。如果是非闰年,并且是 1、3、5、7、8、10、12、月,day模块开始则从 1 计数到 31,而如果是 2 月,则 day模块开始计
20、时从 1计数到 29,如果其他月份时,则计数从 1 到 30,之后并输出一个控制信号 clk2控制 month模块,此时 clk2=1,计数到最大值时都会回到 1,然后循环计数,此时 clk2=0。详细代码描述见附录天模块。核心代码:elsif(clkdevent and clkd=1)then if(yearin rem 4=0)then -当前为闰年 if(monthin=1)or(monthin=3)or(monthin=5)or(monthin=7)or(monthin=8)or (monthin=10)or(monthin=12)then-当前为大月31 天 if(qd=31)the
21、n qd=1;clk2=1;elsif qd31 then qd=qd+1;clk2=0;end if;elsif(monthin=2)then-当前为小月 29 天 if(qd=29)then qd=1;clk2=1;elsif qd29 then qd=qd+1;clk2=0;end if;elsif(monthin=4)or(monthin=6)or(monthin=9)or(monthin=11)then if(qd=30)then qd=1;clk2=1;-当前为中月 30 天 elsif qd30 then qd=qd+1;clk2=0;end if;第二章 电子时钟设计 9 en
22、d if;elsif(monthin=1)or(monthin=3)or(monthin=5)or(monthin=7)or(monthin=8)or(monthin=10)or(monthin=12)then -非闰年大月份31 天 if(qd=31)then qd=1;clk2=1;elsif qd31 then qd=qd+1;clk2=0;end if;elsif monthin=2 then-非闰年小月 28 天 if(qd=28)then qd=1;clk2=1;elsif qd28 then qd=qd+1;clk2=0;end if;elsif(monthin=4)or(mon
23、thin=6)or(monthin=9)or(monthin=11)then-非闰年中月 30 天 if(qd=30)then qd=1;clk2=1;elsif qd30 then qd=qd+1;clk2=0;end if;图 10 管脚说明如下:clkd:时钟信号 Setd:校时设置信号 Yearin:闰年检查信号 Monthin:月份检测信号 Clks2:进位信号 Qtd1、Qtd2、Qtd3、Qtd4:输出的天时钟 图 10 天计数结构 其仿真波形如下:图 11 天模块计数仿真 根据以上图 11 波形图可以知道闰年二月为 29 天,4 月为 30 天,由于条件限制,还有其他月份没有显
24、示出来,这里只截取了部分仿真波形,总的来说,天模块是符合设计要求的。2.2.6 月份模块 在月份模块中,采用 12 进制,计数到 12 后返回 1,并且产生一个进位信号闰年 2 月 29 4 月 30 天 闭应明 10 clk4作为年模块的时钟信号,核心代码和秒模块相似,这里省略,详细代码描述见附录月模块。图 12 管脚说明如下:其中 clkm:时钟信号 Setm:校时设置信号 Alarmm:闹铃校时设置信号 Clks4:进位信号 Qtm1、Qtm2、Qtm3、Qtm4、Qtm5:输出的月份时钟 其仿真波形如下:图 12 月计数结构 图 13 月模块计数仿真 由以上图 13 波形图可以知道,初
25、始设置是 5 月份,当计数到 12 后返回 1,符合月份的规律要求,并且计数到 12 后,产生一个进位作为年模块的时钟输入。2.2.7年模块 当前模块中的时钟信号来临时,年的计数就开始从预定的值开始计数,一直计数到 2099,核心代码和秒模块相似,这里省略,详细代码代码描述见附录年模块。图 14 管脚说明如下:clky:时钟信号 Sety:校时设置信号 Alarmy:闹铃校时设置信号 Qty1、Qty2、Qty3、Qty4、Qty5:输出的年时钟 图 14 年计数结构 其仿真波形如下:第二章 电子时钟设计 11 图 15 年模块计数仿真 根据以上图 15 波形,由于我们只设置了 2015到 2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- FPGA 多功能 电子钟 44295
限制150内