1、 课程设计(论文)任务书 信息工程学院 学院通信工程专业 .2 班 一、课程设计(论文)题目电子钟设计 二、课程设计(论文)工作自1月 3 日起至 年 1月 6 日止。三、课程设计(论文) 地点: 华东交通大学4-410,图书馆 四、课程设计(论文)内容要求:1本课程设计目标(1)掌握EDA技术及CPLD/FPGA开发步骤; (2)掌握自顶向下设计思想;(3)掌握实用电子钟设计原理;(4)掌握系统设计分析方法;(5)提升学生科技论文写作能力。 2课程设计任务及要求1)基础要求:(1)用HDL设计一个多功效数字钟,包含以下关键功效:正确计时,时间能够二十四小时制或12小时制显示; (2)日历:显
2、示年月日星期;(3)能把设计文件进行仿真并下载到试验箱实现功效验证。2)创新要求: 在基础要求达成后,可进行创新设计,如增加报时等、秒表功效模块。 3)课程设计论文编写要求(1)要根据书稿规格打印誊写论文(2)论文包含目录、绪论、正文、小结、参考文件、谢辞、附录等(3)论文装订按学校统一要求完成4)答辩和评分标准: (1)完成系统分析:20分; (2)完成设计过程:20分; (3)完成仿真:10分;(4)完成下载:10分(5)回复问题:10分。5)参考文件:(1)潘松,黄继业编著 .EDA技术实用教程 , ,科学出版社(2)徐志军,徐光辉编著 . CPLD/FPGA开发和应用 ,电子工业出版社
3、,.1(3)6)课程设计进度安排内容 天数地点构思及搜集资料 1图书馆设计和调试 3试验室撰写论文 1图书馆、试验室学生署名: 年 月 日课程设计(论文)评审意见(1)设计程序(40分):优()、良()、中()、通常()、差(); (2)仿真结果(10分):优()、良()、中()、通常()、差();(3)下载结果(10分):优()、良()、中()、通常()、差();(4)回复问题(10分):优()、良()、中()、通常()、差();(5)汇报成绩 (30分):优()、良()、中()、通常()、差();(6)格式规范性及考勤是否降等级:是()、否()评阅人: 职称:年 月 日 电子钟设计 摘要
4、基于FPGA电子钟设计,关键完成任务是使用Verilog语音,在Quartise2上完成电路设计,程序开发,基础功效是能够显示、修改年月日时分秒。电路设计模块分为多个模块:分频、控制、时间显示调整、时分、年月日、译码器。各个模块完成不一样任务,合在一起就组成了电子钟。至于程序编写,使用Verilog语言,依据各个模块不一样功效和它们之间控制关系进行编写。软件模块直接在Quartis2上进行。进入信息时代,时间观念越来越强,不过老是钟表和日历等时间显示工具已经不太适宜。如钟表易坏,需常常维修,日历天天全部需要翻页等。对此,数字钟表设计就用了用武之地。基于FPGA电子钟设计,采取软件开发模块,开发
5、成本底,而且功效设计上有很大灵活度,需要在软件上进行简单修该就能实现不一样功效要求,能够满足不一样环境要求。同时,该设计在精度上远远超出钟表,而且不需要维修,也不用没天翻页,极其方便。且能够添加多种不一样功效要求。比如:在其上加闹钟,同时显示阴阳历等。总而言之本设计含有设计方便、功效多样、电路简练成本低廉等优点,符合社会发展趋势,前景宽广。关键字:电子钟;FPGA;仿真;verilog;QuartusII目录摘 要.3 第一章 绪论.5 1.1电子钟发展51.2 FPGA介绍5第二章 电子钟设计原理62.1组成模块62.2电子钟工作原理图6第三章 电子钟系统部分程序设计和仿真83.1时分秒模块
6、代码和仿真83.2年月日模块代码和仿真113.3具体电路图13谢 辞. 15参考文件16附录17第一章 绪论1.1电子钟发展 钟表数字化给大家生产生活带来了极大方便,而且大大地扩展了钟表原先报时功效,诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、定时启闭路灯等。全部这些,全部是以钟表数字化为基础。所以,研究电子万年历及扩大其应用,有很现实意义。数字钟是一个用数字电路技术实现时、分、秒计时装置,和机械式时钟相比含有更高正确性和直观性,且无机械装置,含有更长使用寿命,所以得到了广泛使用。电子万年历从原理上讲是一个经典数字电路,其中包含了组合逻辑电路和时序电路。所以,我们此次设计和制做
7、电子万年历就是为了了解数字钟原理,从而学会制作数字钟。而且经过万年历制作深入了解多种在制作中用到中小规模集成电路作用及使用方法,且因为电子万年历包含组合逻辑电路和时序电路,经过它能够深入学习和掌握多种组合逻辑电路和时序电路原理和使用方法。1.2 FPGA介绍 FPGA是现场可编程门阵列(Field programmable gates array)英文简称。是有可编程逻辑模块组成数字集成电路(IC)。这些逻辑模块之间用可配置互联资源。设计者能够对这些器件进行编程来完成多种多样任务 PLD/FPGA是近几年集成电路中发展最快产品。因为PLD性能高速发展和设计人员本身能力提升,可编程逻辑器件供给商
8、将深入扩大可编程芯片领地,将复杂专用芯片挤向高端和超复杂应用。据IC Insights数据显示,PLD市场从1999年29亿美元增加到去年56亿美元,几乎翻了一番。Matas估计这种高速增加局面以后极难出现,但可编程逻辑器件仍然是集成电路中最具活力和前途产业。复杂可编程逻辑器件。可编程逻辑器件两种关键类型是现场可编程门阵列(FPGA)和复杂可编程逻辑(CPLD)。 在这两类可编程逻辑器件中,FPGA提供了最高逻辑密度、最丰富特征和最高性能。 现在最新FPGA器件,如Xilinx Virtex系列中部分器件,可提供八百万系统门(相对逻辑密度)。 这些优异器件还提供诸如内建硬连线处理器(如IBM
9、Power PC)、大容量存放器、时钟管理系统等特征,并支持多个最新超快速器件至器件(device-to-device)信号技术。 FPGA被应用于范围广泛应用中,从数据处理和存放,和到仪器仪表、电信和数字信号处理等。 第二章 电子钟设计原理2.1组成模块此电子钟系统关键由一下多个模块组成:1. 控制模块 :该模块实现对各个功效模块整体控制,对时间显示和调整、日期显示和调整,由使用者决定是显示日期还是时间,当使用者不参与控制时,时间和日期每隔一段时间会自动轮番显示。2. 时间及其调整模块 :顾名思义就是对时间进行调整。3. 时间显示动态位选模块 4. 显示控制模块:显示控制模块功效是控制显示日
10、期还是时间,在设计过程中因为没有足够数码管,把日期和时间分成了两个模块,至于显示那一个这由该模块完成任务。5. 日期显示和设置模块6. 译码器模块:在数码管上显示目前时间和日期。7. 分频模块:是为了得到一个周期为秒脉冲,该脉冲关键用于秒走到。2.2电子钟工作原理图图1 步骤图 在电脑上经过软件Max+plus2对万年历电路图引脚进行绑定,编译, 然后和EDA试验箱连接,把文件配置经过JTAG口载入FPGA中,选择试验电路模式进行硬件测试。经过学习,理论上学习了EDA试验箱原理,对试验箱内部组件,和组件之间链接有了更深了解.从开始分析电子钟原理,在定义底层文件名称,编写底层文件程序,生成模块分
11、频模块,秒模块,分模块,时模块,年月日模块,控制模块,显示模块,然后链接各个模块组成顶层,到最终完成测试,即使辛劳不过当画出功效图时,还是很快乐,以下为各模块组成功效图图2 功效设计图 第三章 电子钟系统部分程序设计和仿真 3.1时分秒模块代码和仿真 时间及其设置模块关键完成时间自动正常运行和显示,和在对应功效号下,实现时间调整和设置。计数器秒脉冲信号经过6级计数器,分别得到“秒”个位、十位、“分”个位、十位和“时”个位、十位计时。“秒”“分”计数器为六十进制,小时为二十四进制。六十进制计数由分频器来秒脉冲信号,首先送到“秒”计数器进行累加计数,秒计数器应完成一分钟之内秒数目标累加,并达成60
12、秒时产生一个进位信号,所以,选择两片cc40192和一片cc4011组成六十进制计数器,来实现六十进制计数。其中,“秒”十位是六进制,“秒”个位是十进制。二十四进制计数利用异步清零端实现起从2300翻转,其中“24”为过渡状态不显示。其中,“时”十位是3进制,“时”个位是十进制。以下为其具体代码。 /秒module second(clrn,clk,jf,qm,enmin);input clrn,clk,jf;output7:0 qm;output enmin;reg7:0 qm;reg3:0 qml;reg7:4 qmh;reg carry1; always(posedge clk or ne
13、gedge clrn)begin if(clrn) beginqmh,qml=0;endelse if(qmh=5)&qml=9)beginqmh,qml=0;carry1=1;endelse if (qmh=5)&(qml9)begin qmh=qmh;qml=qml+1;carry1=0;endelse if(qmh5)&(qml=9)begin qmh=qmh+1;qml=0;carry1=0;endelse if(qmh5)&(qml9)begin qmh=qmh;qml=qml+1;carry1=0;endqm=qmh,qml;endassign enmin=carry1|jf;En
14、dmodule图3 秒仿真图/分module minute(clrn,clk,jh,qf,enhour);input clrn,clk,jh;output7:0 qf;output enhour;reg7:0 qf;reg3:0 qfl;reg7:4 qfh;reg carry1;always (posedge clk or negedge clrn)beginif(clrn) beginqfh,qfl=8h00;carry1=0;endelse if(qfh=5)&(qfl=9)begin qfh,qfl=8h00;carry1=1;endelse if(qfh5)&(qfl9) begin
15、 qfh=qfh;qfl=qfl+1;carry1=0;endelse if(qfh5)&(qfl=9)begin qfh=qfh+1;qfl=0;carry1=0;endelse begin qfh=qfh;qfl=qfl+1;carry1=0;endqf=qfh,qfl;endassign enhour=carry1|jh;endmodule图4 分仿真图 /时module hour(clrn,clk,qs,cout);input clrn,clk;output 7:0 qs;output cout;reg7:0 qs;reg3:0 qsl;reg7:4 qsh;reg carry1;al
16、ways(posedge clk or negedge clrn)/miao begin if (clrn) begin qsh,qsl=8h00;carry1=0; end else if(qsh=1)&(qsl=7)begin qsh,qsl=8h00;carry1=1;endelse if(qsh=2)&(qsl3) begin qsh=qsh;qsl=qsl+1;carry1=0;endelse if(qsl=9)begin qsh=qsh+1;qsl=0;carry1=0;end else begin qsh=qsh;qsl=qsl+1;carry1=0;endqs=qsh,qsl;
17、endassign cout=carry1; endmodule 图5 时仿真图3.2年月日模块代码和仿真 该模块实现是日期自动工作功效,/年月日module nyr(clrn,clk,jn,jy,jr,qn,qy,qr);input clrn,clk,jn,jy,jr;output 15:0 qn;output7:0 qy,qr;reg 15:0 qn;reg7:0 qy,qr;reg clkn,clky;reg7:0 date;reg clkn1,clkn2,clkn3;initial begin clkn1=1;clkn2=1;clkn3=1;endinitial begin qn=h;
18、qy=1;qr=1;endalways(posedge (clkjr) or negedge clrn)/日计数begin if(clrn) qr=1;else begin if(qr=date)begin qr=1;clky=1;endelse if(qr7:4=date7:4&qr3:0=date3:0)Begin qr7:4=qr7:4;qr3:0=qr3:0;clky=1;endelse if(qr3:0=9)begin qr7:4=qr7:4+1;qr3:0=0;endelse if(qr7:4date7:4&qr3:0date3:0)Begin qr7:4=qr7:4;qr3:0=
19、qr3:0+1;clky=0;endelse begin qr7:4=qr7:4;qr3:0=qr3:0+1;clky=0;endendendalways (posedge (clkyjy) or negedge clrn )/月计数begin if(clrn) qy=1; else begin if(qy=h12)qy=1;else qy=qy+1;if(qy3:0=ha)Begin qy3:0=0;qy7:4=qr7:4+1;endif(qy=h12)clkn=1;else clkn=0;Endendalways/每个月天数 Begin case(qy)h01:date=h31;h02:
20、if(qn%4=0)&(qn%100!=0)|(qn%400=0) date=h29; else date=h28;h03:date=h31;h04:date=h30;h05:date=h31;h06:date=h31;h07:date=h31;h08:date=h31;h09:date=h30;h10:date=h31;h11:date=h30;h12:date=h31;default:date=h30;endcase endalways(posedge (clknjn) or negedge clrn )/年计数beginif(clrn) qn3:0=0;else begin if(qn3
21、:0=9) qn3:0=0;else qn3:0=qn3:0+1;if(qn3:0=9) clkn1=0;else clkn1=1;endendalways(posedge (clkn1) or negedge clrn)Beginif(clrn) qn7:4=0;else beginif(qn7:4=9) qn7:4=0;else qn7:4=qn7:4+1;if(qn7:4=9)clkn2=0;else clkn2=1;endendalways(posedge (clkn2) or negedge clrn)beginif(clrn) qn11:8=0;else beginif(qn11:
22、8=9) qn11:8=0;else qn11:8=qn11:8+1;if(qn11:8=9) clkn3=0;else clkn3=1;end endalways(posedge (clkn3) or negedge clrn)Begin if(clrn) qn15:12=2;else begin if(qn15:12=9) qn15:12=0;else qn15:12=qn15:12+1;endendendmodule图5 年月日仿真图 3.3具体电路图 将时间和日期两个模块连接起来以后,便可得到大致框架图了。时间和日期两个模块生成封装。用画图形式将其连接,就组成了顶层模块。其电子钟模块也
23、就弄好了,其它控制模块只要在这上面加就能够了。时间和日期顶层模块以下图。图6 时间和日期连接图图7 时间和日期仿真图第四章 小结 经过这次课设实训,在硬件方面,使我们对EDA试验箱有了很多了解,填补了我们知识缺点,同时对EDA试验箱内部工作原理,和EDA试验箱各个试验模式功效很作用有了一定了解,学习了硬件引脚绑定过程,和绑定部分基础常识,并动手完成了绑定,这么不仅拓宽我们知识面,增强动手能力和实践能力,同时还培养我们分析和处理实际问题能力。在软件方面,我们经过分组在软件Max+plus2上独立完成老师给我们实训题目电子钟。从开始分析点钟原理,在定义底层文件名称,编写底层文件程序,然后链接各个模
24、块,到最终完成测试,并运行成功,这些加强了我们分析问题能力,提升了我们编程能力,同时还培养了我们独立完成任务和查阅资料删选资料能力,即使完成软件在实际利用中还有很多不足,比如软件运行环境有限,程序效率不高,在老师要求上也不能全部抵达预期最好效果,等等部分问题,这全部需要我们以后更深层次加以修改,使其愈加简单愈加方便愈加通俗易懂。电子日历一路编来可谓是坎坎坷坷,但大家全部没有放弃,主动主动找老师、找同学帮忙处理难题。以后,又重新分析原理,反复操作,碰到困难立即向老师提问,立即处理问题,这么效果很显著。在这次实训中,我深深感受到上课听讲关键性,课设中碰到很多问题全部是老师上课讲解部分难点,自己没有
25、很好领悟地方。每个学生对老师课堂上讲内容接收全部是不一样,经过向老师请教,同学讨论,最终才得以处理问题,实训才能得以成功。从整体看这次实训是很成功,让我们全部有很大收获,同时也很感谢在实训过程中给我们很大帮助朱老师和黄老师,在老师耐心细心指导下,我才能很好完成实训认务。 谢 辞 在这里我要感谢我老师朱路,朱老师上课思绪很清楚,很有调理。这么也吸引我对EDA爱好,朱老师在上课讲内容很生动,举例子也很符合题意,这么更有利于我学习。当自己有不懂问朱老师时,朱老师很热情分析给我听,这么有利于我了解,总而言之很感谢朱老师。参考文件1 潘松,黄继业.EDA技术实用教程,科学出版社,2 侯伯亨,顾新. VHDL硬件描述语言修订版,西安技大学出版社,.3 赵曙光,郭万有. 可编程逻辑器件原理,西安电子科技大学出版社,.4 徐志军,徐光辉. CPLD/FPGA开发和应用,电子工业出版社,.5 夏宇闻. Verilog HDL数字系统设计教程,北京航空航天大学出版社,.6 黄智伟. FPGA系统设计和实践,电子工业出版社,.7 王金明等.数字系统设计和verilog HDL,电子工业出版社, 附录附录一 时间实拍图