基于CycloneⅢ系列EP3C25F324C8应用QuartusⅡ开发多功能数字钟EDA论文.docx
《基于CycloneⅢ系列EP3C25F324C8应用QuartusⅡ开发多功能数字钟EDA论文.docx》由会员分享,可在线阅读,更多相关《基于CycloneⅢ系列EP3C25F324C8应用QuartusⅡ开发多功能数字钟EDA论文.docx(34页珍藏版)》请在冰豆网上搜索。
基于CycloneⅢ系列EP3C25F324C8应用QuartusⅡ开发多功能数字钟EDA论文
南京理工大学
EDA设计论文
作者:
学号:
学院(系):
专业:
题目:
基于CycloneⅢ系列EP3C25F324C8应用
QuartusⅡ开发多功能数字钟
指导者:
(姓名)(专业技术职务)
评阅者:
(姓名)(专业技术职务)
2010年5月
课程设计论文中文摘要
本实验是基于基于CycloneⅢ系列EP3C25F324C8应用利用QuartusⅡ软件进行多功能数字钟的实现,结合硬件资源和软件资源的分配关系,利用目前已经掌握的知识设计了多功能的数字钟,该数字钟具有能进行正常的时、分、秒计时功能,并且该系统具有计数保持功能,计数清零功能,系统的较分较时功能,整点报时功能,任意设定时间的闹钟功能,还有就是万年历功能。
可以说基本涵盖了数字钟的所有功能。
本论文从数字钟的基本工作原理出发,分析电路的工作原理,通过硬件原理图的绘制,利用QuartusⅡ软件实现了在SmartSOPC实验系统的平台下的设计,仿真和下载调试。
并且本文还给出了在进行设计的过程中容易犯的一些问题及指出了关于软件及电路原理设计过程中的致命的细节问题,对以后的电路设计具有一定的指导意义。
关键词多功能数字钟整点报时闹钟万年历
课程设计论文外文摘要
TitleTheDesignOfMulti-functionDigitalClockBased
onCycloneⅢSeriesEP3C25F324C8UsingQuartusⅡ
Abstract
TheexperimentisbasedonCycloneⅢSeriesEP3C25F324C8usingQuartusⅡtodesignthemulti-functiondigitalclock,consideringhardwareandsoftwareresourcesprovided.WiththehelpoftheknowledgeIgot,thedesignedmulti-functiondigitalclockhasallofthefunctionsofadigitalclock,includingthehours,minutes,secondstimerfunction,andthesystemcanalsobekeepedandclearedatanytime.Moreover,thehourandminutecanbeadjustedtoanywantedtimeandcanbesettoalarmatanytimeifyouwant.Mostofall,thecalendarfunctionisalsodesigned.
Thispaperismainlyconcernedaboutthedetaileddesignprocedurebeginningwiththebasicprincipleofthecircuitworksandthehardwareschematicdrawing,finallyfinishingthesimulationanddebuggingusingQuartusⅡsoftwareinSmartSOPCexperimentalplatform.Inaddition,thedetailsthatmayotherwisebefataltothesystemdesignisalsogivenduringthecourseofcircuitdesignprocess,whichactuallyhasacertainsignificanceinlaterdesign.
KeywordsMulti-functiondigitalclock.Hourlychimefunction.Alarmatanytime.Calendar
1引言………………………………………………………………………………1
2系统的总体设计…………………………………………………………………1
2.1系统总体功能…………………………………………………………………1
2.2系统的工作原理………………………………………………………………2
3系统的详细设计…………………………………………………………………3
3.1总体模块介绍…………………………………………………………………3
3.2各个子模块的详细设计…………………………………………………………3
3.2.148MHz的分频模块……………………………………………………………4
3.2.2基本数字钟计数模块…………………………………………………………6
3.2.3快速校分较时清零与保持模块………………………………………………7
3.2.4整点报时模块…………………………………………………………………8
3.2.5LED动态显示模块……………………………………………………………10
3.2.6闹铃模块……………………………………………………………………12
3.2.7万年历模块…………………………………………………………………15
3.2.8开关复用的逻辑控制………………………………………………………21
3.3各子模块调试及联调设计……………………………………………………23
3.3.1各子模块下载调试…………………………………………………………23
3.3.2各子模块联调思想设计……………………………………………………25
4系统设计及调试中的问题………………………………………………………26
5心得与体会………………………………………………………………………27
结论…………………………………………………………………………………29
致谢…………………………………………………………………………………29
参考文献……………………………………………………………………………29
1引言
随着大规模集成电路技术和计算机技术的不断发展在涉及通信、国防、工业自动化、计算机应用仪器仪表等领域的电子系统设计工作中,现场可编程阵列FPGA技术正以惊人的速度上升.电子类新技术项目的开发也更多地依赖于FPGA技术的应用,电子产品、计算机和CPU的设计进人了一个全新的时代.EDA技术是伴随着计算机、集成电路、电子系统设计的发展而发展起来的,现今电子设计是以大规模可编程逻辑器件为设计载体,硬件描述语言为系统逻辑描述,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,运用自顶而下的层次化设计方法完成用软件方式设计的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化,逻辑布局布线、逻辑仿真、直至对特定芯片的适配编译、逻辑映射编程下载等,最终形成集成电子系统或专用集成芯片的一门新技术.电子工程师们从事电子产品设计时,要求能够充分利用EDA技术,使用计算机仿真软件对电路、信号与系统进行辅助分析,优化电路设计,从而提高开发产品进程及设计人员的工作效率.本数字钟的系统设计采用矚慫润厲钐瘗睞枥庑赖。
自顶而下的层次化设计方法,运用Quartus软件进行系统的设计与调试,提高了设计的效率,缩短了设计时间。
聞創沟燴鐺險爱氇谴净。
2系统的总体设计
2.1系统总体功能
本文采用自顶向下的设计方法,借助于QuartusⅡ软件进行多功能数字钟的设计,系统的设计先从总体方案入手,然后就各个子模块进行系统的详细设计,接着进行系统各个子模块的调试,最后进行各个子模块的联调。
运用SmartSOPC实验系统的资源,最终实现了系统方案。
残骛楼諍锩瀨濟溆塹籟。
该系统所具有的功能如下
◆能进行正常的时、分、秒计时功能
◆分别由六个数码管显示时分秒的计时
◆系统就有保持,清零,校分,校时
◆整点报时
◆任意时间设置闹铃
◆万年历功能
下面给出系统的总体框图
2.2系统的工作原理
该数字钟系统的设计是借助于现有的SmartSOPC实验系统平台进行设计的,系统的时钟是固定的48MHz,所以要进行使用必须进行系统的时钟分频的工作。
从下面的分析可以得知系统工作所需要的所有频率为1Hz,2Hz,2000Hz,4000Hz。
酽锕极額閉镇桧猪訣锥。
要实现上述所说的所有功能,计数模块是基础,涉及到秒的模60,分的模60,小时的模24,万年历的模28,模30,模31,模12。
彈贸摄尔霁毙攬砖卤庑。
具有最基本的分配和计数模块之后,其他的功能只是在这个基础上进行一系列的逻辑控制运算。
为把结果显示出来,考虑用动态显示的技术实现LED管子的点亮。
謀荞抟箧飆鐸怼类蒋薔。
具体的工作过程如下:
1.有具体的分频电路分的所需要的所有频率。
2.计数模块计数
3.两个开关控制在数字钟的计数功能,闹铃界面,万年历界面之间进行切换。
4.若为数字钟的技术功能,则显示现在的计数值,即显示时间。
5.若为闹铃功能,则切换到设定闹铃的界面进行闹铃时间的设定。
6.若为万年历功能,则切换显示日期。
7.在整系统的运行过程中,还必须通过开关来控制系统的时钟保持,时钟清零,时钟快速校分,校时,和整点报时逻辑的设计。
厦礴恳蹒骈時盡继價骚。
下面举给出系统的详细工作框图:
3.系统的详细设计
3.1总体模块介绍
关于该系统的各个模块,从上述的功能介绍可以很清楚的知道,并且系统的详细设计涉及到各个子模块的详细设计,其中涉及到的模块如下:
茕桢广鳓鯡选块网羈泪。
◆48MHz的分频模块
◆基本数字钟计数模块
◆快速校分较时与保持模块
◆整点报时模块
◆LED动态显示模块
◆闹铃模块
◆万年历模块
3.2各个子模块的详细设计
3.2.148MHz的分频模块
该模块的设计是整个系统设计的重中之重,可以说是设计中的核心部分了,因为所有器件的工作时钟都是以这个为标准运行的,所以分频模块设计的好坏关乎到这个系统工作的性能。
下面详细介绍分配的设计过程首先考虑到系统所能提供的固定时钟模块是48MHz,要想得到上述所论述的1Hz,2Hz,2000Hz,4000Hz.就必须将48MHz的时钟频率进行48000000分频,24000000分频,24000分频,12000分频。
所以我们需要进行最多48000000分频,在48000000分频的过程中进行其他要求分频数比较小的功能,这样就能比较好的实现所有频率的获得。
鹅娅尽損鹌惨歷茏鴛賴。
1.4000Hz设计
设计思想就是,最终总共的分频数是48000000次分频,为获得4000Hz的频率,必须首先进行12000的分频,12000的分频用
来实现,同时可以将
分频小子模块进行封装成一个单独的模块,以便后面继续调用。
其中2分频可以用一个T触发器来进行2分频,如下所示:
籟丛妈羥为贍偾蛏练淨。
其中6分频的设计需要注意的是由于48MHz的频率非常的高,所以为保证后面所设计的电路能捕捉到6分频之后所得到的分频脉冲,就必须保证6分频后脉冲有足够的宽带,所有一般来最好设计成输出方波的形式,而不能设计成通常情况下通过计数模6来实现分频的效果。
預頌圣鉉儐歲龈讶骅籴。
最终考虑到如下的设计
通过设计模8计数器,不过在计数器记到010时,直接通过同步置位法将计数的值置成101,这样就少了011和100两个数,模8实际上是模6计数器,是用来实现模6分频的,并且可以看到计数器的计数过程如下渗釤呛俨匀谔鱉调硯錦。
从而可以将
的结果进行输出,就可以实现6分频,并且输出的结果是方波。
具体的电路设计如下:
下面是1000分频的设计,考虑到经过12分频后频率有所下降,并且通过三个模10计数器实现1000分频的最后输出端
的持续高电平的时间也不是很短,计数值从80-99
都是高电平,所以后级电路还是可以捕捉到经过1000分频后的脉冲的。
所设计的1000分频电路如下:
铙誅卧泻噦圣骋贶頂廡。
2.2000Hz的设计
之前已经获得了4000Hz的频率的脉冲,在接一个T触发器就能够获得一个2000Hz的脉冲了。
其实4000Hz频率的脉冲是作为蜂鸣器的高频信号的发生和LED的刷新,2000Hz是用于蜂鸣器的低频发声的。
擁締凤袜备訊顎轮烂蔷。
3.2Hz的设计
2Hz的设计可以将2000Hz进行调用上述1000分频的模块就可以直接获得2Hz的频率。
4.1Hz的设计
将2Hz频率用T触发器2分频就可直接获得1Hz频率的脉冲,并且最后获得的1Hz的脉冲其实本身已经是方波了,因为T触发器是反转触发器,它的输出结果肯定是方波,从而可以借助于T触发器实现最终输出结果是方波的要求,利用后面计数的准确性。
贓熱俣阃歲匱阊邺镓騷。
至此系统所有系统工作所需要的时钟已经全部设计完了。
下面给出总体的时钟设计模块
3.2.2基本数字钟计数模块
这个模块的设计是实现基本数字中的计数功能的关键,涉及到模60的设计和模24的设计,当然还要考虑进位的问题。
坛摶乡囂忏蒌鍥铃氈淚。
1.模60计数器的设计
通用数字芯片一般都达不到模60的进制,所以必须通过芯片的级联来实现模60进制的设计,最终选用74160芯片,该芯片本身是模10的计数器,并且是异步清零和同步置数的。
使用2个74160芯片进行级联,构成模60的计数器,个位本身就是模10计数的,所以无需设计模六十的个位,高位使用异步清零的方式,来实现模6的设计。
蜡變黲癟報伥铉锚鈰赘。
具体的设计电路图如下所示:
这里值得一提的是,计数器进位信号的实现,一般不能单纯从高位的Q位产生,一般情况下是要在整计数器回0的时刻,利用回0的信号来产生进位信号RCO,怎样产生的进位信号的才是可靠的。
買鲷鴯譖昙膚遙闫撷凄。
2.模24计数器的设计
模24计数器的设计其实本质上是和模60一样的。
下面直接给出所设计的电路图:
3.2.3快速校分较时清零与保持模块
在已经做好的时钟和计数模块的基础上其实是非常容易加入快速校分、校时、保持、清零的功能的,这些功能只要在原来电路的基础上做一些简单的处理就能完成,很简单的实现就是快速校分与校时,就是将分的时钟脉冲输入直接接入时钟分频模块的2Hz的频率就可以完成了,非常的简单,当然是直接接入2Hz频率,还是接入正常的频率或是进位信号,这可以通过开关的0和1逻辑来控制。
綾镝鯛駕櫬鹕踪韦辚糴。
清零信号更是非常的简单,只要将每个计数器的清零端在模块封装时,引出来就行了,当开关为0时,计数器正常计数,当开关位于1时,就将开关输出并联的所有计数器清零。
驅踬髏彦浃绥譎饴憂锦。
保持功能的实现想法非常的简单,就是可以在1Hz处和一个开关取反相与,就可以实现时钟保持的功能,当开关位于0时,1Hz是1相与的,这样1Hz就能顺利的输入到后面的电路,从而实现正常的计数功能,当开关位于1时,则1Hz是和0相与的,导致输出结果始终是0,没有正常的计数脉冲输入后面的电路,从而实现了计数器的停止计数,也即实现了数字中的保持功能。
猫虿驢绘燈鮒诛髅貺庑。
这里值得一提的就是上面功能的实现用到了很多的开关,这里就涉及到开关消颤的问题,因为开关是需要连在计数器的时钟输入端的,所有必须进行消颤的处理,否则计数器会认为开关的颤抖是时钟的脉冲的输入,导致错误的产生。
锹籁饗迳琐筆襖鸥娅薔。
鉴于此,采用D触发器进行开关的消颤,因为D触发器可以认为是逻辑的跟随器,它输出的结果的变化速度依赖于输入到D触发器的脉冲,只要实现输入D触发器的时钟CLK比实际开关的抖动脉冲频率低,而又不是太低,不至于延迟太长的时间,这样就实现了消颤的功能,下面给出消颤的电路图:
構氽頑黉碩饨荠龈话骛。
3.2.4整点报时模块
系统要求具有整点报时功能(当时钟计到59’53”时开始报时,在59’53”,59’55”,59’57”时报时频率为2000Hz,59’59”时报时频率为4KHz,)輒峄陽檉簖疖網儂號泶。
这其实涉及到一些简单的逻辑运算而言,首先基本的思想就是必须保证分钟保持在59分处,将基本的关系列出来之后,可以发现必须保证下面的逻辑为1,即可满足分钟保持在59分处的要求。
尧侧閆繭絳闕绚勵蜆贅。
其次必须保证秒的十位是5,这其实只有保证下面的逻辑是1,即可实现
接下来就是秒的各位进行一些简单的逻辑运算而言,首先将各为可能的情况列举如下
通过分析可知,要求个位在0011,0101,0111产生一个逻辑控制信号来控制2000Hz的频率,在个位1001时产生一个逻辑控制信号来控制4000Hz。
识饒鎂錕缢灩筧嚌俨淒。
为保障各位在除3,5,,7,9出蜂鸣器不响,还不行考虑所设计的逻辑必须保证保证在其他数的时候,逻辑控制的输出信号是0。
凍鈹鋨劳臘锴痫婦胫籴。
综合上述的分析过程,下面给出最后2000Hz和4000Hz的控制逻辑式:
下面给出最终的逻辑控制电路:
3.2.5LED动态显示模块
本系统采用LED的动态显示的技术,利用人眼的视觉暂留效应,只要LED管子的刷新频率大于人眼能分辨的最大频率,这人眼就会感觉不出来LED管子是在闪烁的,而后认为LED管子是一直亮的,达到了系统设计的效果。
恥諤銪灭萦欢煬鞏鹜錦。
这里首先值得考虑的就是怎么样将计数器的计数值正确的显示在LED管子上,这其实设计到一个BCD译码电路,选用7447可以将BCD码转换成对应的能取得LED管子的段码,同时考虑到动态显示的复用问题,7447的输出端是与所有的LED管子的段码总线相连的,所有要实现动态显示的功能,就必须通过循环使能对应的LED管子,并且在使能LED管子的同时还必须与所要显示的数字相对应,这就又涉及到一个动态选自数据的电路,并且这种动态选自数据的电路,和使能LED管的74138译码器必须通过同一个计数值循环来控制,这样才能保证对应得LED管子输出对应的数据。
鯊腎鑰诎褳鉀沩懼統庫。
综上所述,首先先用74160构成一个模6计数器,来控制数据的选项和74138译码器,并且模6的计数器的时钟脉冲必须比较大,这里选自4000Hz,然后将选通的数据进行输出值7447进行译码,最后输出至LED管子的段码出进行显示。
下面就这个模块所设计到的小模块进行详细的说明。
硕癘鄴颃诌攆檸攜驤蔹。
1.模6计数器的设计
模6计数器的设计还是非常简单的,和上述的计数器的设计其实是一样的,具体的设计电路如下:
2.动态选通数据电路的设计
该电路的设计可以通过四个数据选择器来实现,选用74151来实现,具体的电路设计如下:
分别将上述两个模块进行封装的到下面该模块的最终电路图:
3.2.6闹铃模块
该模块的设计要求必须能在任意的时刻都能设定所需要闹钟的时间。
这其实就涉及到界面的切换问题,需要将界面切换到闹铃设定界面。
阌擻輳嬪諫迁择楨秘騖。
基本的思想就是,首先通过开关切换到闹铃的设定界面,然后转换到计数模块,该计数模块其实和正常时钟的计数模块是一样的,只不过只有计时和计分模块,秒为始终是0,并且该计数器的计算脉冲采用2Hz的频率为计数脉冲。
该计数模块进行封装后将其最终的计数值连到比较器上,将比较器的另一个输入端进行实际基本时钟计数的输出输入,就实现了实际时钟计数值与闹钟计数值的设定的比较,让比较器的输出的用来控制蜂鸣器,这样就实现了最终闹铃的设置功能。
下面就该闹铃模块涉及到的子模块进行详细的说明。
氬嚕躑竄贸恳彈瀘颔澩。
1.比较器模块设计
比较器的需要设计设计4位的比较器,因为它涉及到分钟和小时的比较,而且比较器的设计需要从低位开始比较,低位比较的结果是高位比较的条件。
釷鹆資贏車贖孙滅獅赘。
2.闹铃界面显示模块
其实该界面的显示和基本的时钟计数功能显示是一样的,下面直接给出该显示电路图。
将上述两个模块进行封装,得出下面的最终电路图
上面的电路进行封装,输入是时钟,开关控制逻辑,和实际基本计数值输入,输出时段码值输出及使能,闹铃控制信号。
怂阐譜鯪迳導嘯畫長凉。
3.2.7万年历模块
万年历的设计主要设计到很多逻辑的设计,其中有一个难点是各个模计数器之间的切换,考虑到各个月所对应的所记的日数是不一样,涉及到模28,模30,模31计数器的设计谚辞調担鈧谄动禪泻類。
再者就是涉及到如何选取哪一个月是模多少的计数器。
这里给出哪些月是28,30,31的计数规则。
28计数规则是2月
31计数规则是1,3,5,7,8,10,12月
30计数规则是4,6,9,11月
所以必须设计一种控制逻辑依据不同的月来选择不同的模计数器,直观的想法就是通过月数判断出来的逻辑来使能各个计数器,使得当是2月的时候,日计数器的计数模数是28,当月数是4,6,9,11时,日计数器的计数模数是30,当月数是1,3,5,7,8,10,12时,日计数的模数是31。
嘰觐詿缧铴嗫偽純铪锩。
首先给出具体的设计思想框图
下面就详细介绍如何根据月数来产生对应的控制逻辑来选择日的不同计数模数。
下面详细介绍设计的过程。
1.模28,30,31,12的设计
首先毫无疑问先将基本的模28,30,31,12实现。
其设计的思想其实和上述所有设计模计数器的实现完全一致。
这里需要注意的是数是从1开始的,所有必须使用同步置1的方法实现,而且为了后面电路的设计,所有的计计数器必须留出使能端,所有计数器的使能端的设计是采用清零端来实现的。
下面给出各个模计数器的电路图。
熒绐譏钲鏌觶鷹緇機库。
模28计数器
模30计数器
模31计数器
模12计数器
将各个计数器封装成一个模块以便后面的电路进行使能控制,具体的电如如下
2.BCD转BINARY电路设计
这里值得注意的是,月的显示是由模12的计数器来实现的,而模12的十位和个位其实都是BCD码的表示形式,为提取出真正的月数,必须将BCD码转换成BINARY二进制表示的形式,为此用BCD-BINARY芯片74184实现,例如12月,实际上的计数的值分为十位和个位,即十位是1,个位是2,表示为0001和0010,通过芯片74184则可以转换为二进制表示的12,为1010,这样就实现了BCD十位数个位数转换成二进制数了,这样就可以用这个二进制数来表示真正的月数。
鶼渍螻偉阅劍鲰腎邏蘞。
电路图如下
3不同模数逻辑控制电路
为了实现不同月数对应不同的日计数模数,必须产生对应的控制逻辑,我采用的是00控制选择模30,01控制选择模31,10或11控制选择模28,将上述转换完的二进制数用数据选择器来实现对应月输出不同的逻辑信号。
纣忧蔣氳頑莶驅藥悯骛。
基本的思想就是让1,3,5,7,8,10,12月选择1输出,让4,6,9,11月选择输出0,即个位是1,3,5,7,8,10,12月选择1输出,4,6,9,11月选择输出0,高位的逻辑通过单独对2月进行比较,就可以实现总共逻辑的控制,当高位为1,即2月的比较的结果是1是,无论低位的结果是多少,都是使能后面的模28计数器,当高位的逻辑是0,即月数不是2月,低位是0时,使能模30计数器,低位是1是,使能模31计数器。
下面给出电路图颖刍莖蛺饽亿顿裊赔泷。
4使能信号的产生