ionicons-v5-f

基于FPGA的智能计时器的设计与实现

课程名称:电子技术实验2

实验题目:基于FPGA的智能计时器的设计与实现 {#实验题目基于fpga的智能计时器的设计与实现}

课程简要信息

课程名称:电子技术实验2(原《数字逻辑与数字系统》课内实验)

课程学时:24学时

适用专业:信息工程、自动化专业

学生年级:大二、大三本科生

实验内容与任务(限500字)

项目需要完成的任务(如需要观察的现象,分析某种现象的成因、需要解决的问题等);是否设计有不同层次的任务。

组合逻辑电路和时序逻辑电路构成了数字逻辑电路,其中组合逻辑电路是数字逻辑电路的基础,时序逻辑电路是数字逻辑电路的主体,而计时器则是时序逻辑电路中一个最基础、最典型、同时也是最重要的一个部分。本次实验通过设计智能计时器达到锻炼学生进行数字系统设计的目的,具体的实验内容和任务如下:

  1. 课前复习巩固《数字逻辑与数字电路》中“计数器”章节,分析任意数值计数器如何实现,分析基本计时器涉及哪些进制计数器,这些计数器如何构成基础计时器;

  2. 课前复习巩固Quartus II中的原题图设计方法和verilog语言设计方法;

  3. 设计一个能够实现10毫秒计时、秒计时、分计时、时计时的计时器;

  4. 使用6位7段扫描数码管显示3)中设计的计时器

  5. 分析如何使用3)中的计时器设计实现秒表、倒计时、多点控时或多点记时;

  6. 根据步骤5)中的分析,完成秒表、倒计时、多点控时或多点记时中的一个或多个设计;

  7. 总结模块化设计的思想和自底向上设计方法的特点。

设计过程中允许自主选择设计方式,可以为原理图输入或Verilog语言编程或原理图与Verilog语言相结合的方式,具有10毫秒计数、秒计时、分计时和时计时的计时器为最基本的设计,该设计完成后,同学们要至少选择实现秒表、倒计时、多点控时或多点记时中的一个,通过选做内容的难易程度及数量进行层次区分。

实验过程及要求(限300字)

如对学生在实验过程中在需求分析、资料查询、自学预习、思考讨论、方法设计、进程规划、软件仿真、平台构建、器件选择、表格设计、现象观察、数据测试、问题分析、总结报告、验收答辩、演讲交流等各方面的要求。

  1. 课前复习巩固《数字逻辑与数字电路》中“计数器”章节,分析任意数值计数器如何实现,分析基本计时器用到哪些进制计数器,这些计数器如何构成基本计时器;注意:实现任意数值计数器时有同步计时和异步计时,注意两者之间的差别。

  2. 课前复习巩固Quartus II中的原题图设计方法和verilog语言设计方法;

  3. 分析具有10毫秒计时、秒计时、分计时、时计时的计时器需要哪些计数器模块,这些模块如何组成一个计时器;

  4. 思考如何从实验箱上的时钟信号得到所需要的10毫秒计时时钟信号;

  5. 使用原理图或者verilog语言编程实现10毫秒时钟信号、100进制计数器、60进制计数器、24进制计数器,并对设计出的10毫秒时钟信号和各计数器进行仿真验证;

  6. 使用4)中实现的计时时钟信号和5)中实现的计数器设计完成具有10毫秒计时、秒计时、分计时、时计时的计时器,并进行仿真验证;

  7. 将6)中实现的计时器通过动态扫描显示数码管进行显示并下载验证;

  8. 分析如何使用6)中实现的计时器实现秒表、倒计时、多点控时、多点记时等功能;

  9. 选择实现秒表时,需考虑秒表的使能信号和清零信号,在使能信号有效时,秒表开始计时,使能信号无效时,秒表停计时,使能信号再次有效时,秒表计时器接着上次计时的结果继续计时;当清零信号有效时,计时清零,秒表显示为0,当清零信号无效时,秒表正常计时显示;设计完成后进行仿真并下载到开发板通过动态扫描数码管进行显示验证;

  10. 选择实现倒计时,需考虑倒计时的实现方式,选择使用原理图或verilog进行设计,同时考虑倒计时初始时间如何设置,使能信号如何设计,使能有效时,倒计时开始,使能无效时,倒计时暂停;设计完成后进行仿真并下载到开发板通过动态扫描数码管进行显示验证;

  11. 选择实现多点控时,需考虑如何实现多点控时,联系生活中的实际应用场景,如多次闹铃、台灯亮度控制、烤箱温度控制等,模拟多点控时在这些场景中的应用,进行仿真验证;仿真完成后下载到开发板连接对应的外设模块进行下载验证;

  12. 选择实现多点记时时,考虑多点记时的实现方式和显示方式,联系生活中的实际应用场景,如比赛时的结果记录,要求显示记录次序和时间点,可以通过原理图或verilog的方式实现,并进行仿真验证;仿真完成后下载到开发板通过数码管显示验证;

  13. 撰写实验报告,总结实验设计思路、设计实现过程以及遇到的问题及解决方法,总结自底向上设计方法的特点及注意事项,通过实验报告进一步提高学生进行数字系统设计的能力。

相关知识及背景(限150字)

项目涉及的知识方法、实践技能、应用背景、工程案例。

计数器是数字电路中的一个最典型、最重要的部分,用计数器设计出的智能计时器与我们的生活息息相关,我们无时无刻不在使用计时器,如早上起床需要多点控时的闹铃,上下课需要用到普通时钟,体育考试时间需要秒表和多点记时,答辩需要用到倒计时等等,再比如多点控时可以用来控制台灯的亮灭及光强、电烤箱的温度,多点记时可以用来记录比赛名次及用时,总之智能计时器是我们生活中不可或缺的东西之一。

实验中运用自底向上方法进行数字系统设计,设计过程中需要运用模块化分析方法,将数字系统划分为各个小模块分别进行实现,在验证了各个小模块的功能后,将这些小模块互相连接组成一个完整的数字系统,在普通时钟的基础上通过添加额外的功能模块进一步实现有特殊功能的计时器如秒表、倒计时、多点控时、多点记时等等,通过该数字系统设计能够让学生理解自底向上进行数字系统设计的思想方法,掌握模块化的设计思路,掌握分析数字系统设计的思想和方法。

教学目标与目的(限100字)

如学习、运用知识、技术、方法;培养、提升能力、素质。

本次实验是使用Quartus II软件进行完整的数字系统设计的一个案例,通过一个完整的数字系统设计案例引导学生分析数字系统的设计步骤、设计方法,培养学生的模块化设计思想,让学生掌握使用自底向上的设计思路进行系统设计,引导学生根据需求分析数字系统的模块构成,引导学生选择合适的方式实现功能模块及运用由特殊到一般的方式逐步完善模块功能,并通过实际测试验证,此外通过附加设计进行层次区分并引导学生进一步思考如何完善设计。

通过该实验案例让学生了解了数字系统设计的一般步骤,学习自底向上的设计方法,掌握模块化设计思想,锻炼学生自主分析、自主设计的能力,提高了学生的工程实践能力,达到培养学生自主学习、自主分析、自主设计、不断思考并完善设计的目的。

教学设计与引导

如预习要求及检查;课堂知识讲解、方法引导、背景解释;实验中的方法指导,问题设置、思路引导等。研讨主题、观察节点、验收重点、质询问题的设计等。

本实验是一个较为完整的数字系统设计实验,需要经历功能分析、模块拆分、模块设计实现、模块互联、下载验证、设计总结等过程。整个实验过程中分为三个部分,第一部分为设计基本计时器,第二部分为设计智能计时器,第三部分为交流讨论,整个过程中要不断挖掘学生自主学习、自主分析、自主设计、自主查错和排错的能力,并在以下几个方面加强对学生的引导:

  1. 要求学生课前复习巩固《数字逻辑与数字电路》中“计数器”章节,分析任意数值计算器如何实现。根据要实现的计时器功能,分析需要哪几种计数器,这些计数器要采用什么计数方式,计数器的时钟信号如何获得,根据实验箱上的时钟频率提前设计好分频电路;

  2. 要求学生课前复习Quartus II中的输入设计方法,如原理图和Verilog,根据自己的实际情况选择适合自己的设计方式,可以单独采用原理图输入方式或Verilog输入方式,也可以采用混合输入方式;

  3. 要求学生课前自行查阅秒表、倒计时、多点控时和多点记时的原理,分析这些智能计时器如何通过普通计时器实现;

  4. 在实验阶段1中,教师带领学生简单分析“计时器”的功能并将其划分为不同的计时模块,引导学生思考毫秒计数器的时钟输入信号如何得到,秒计数器时钟信号、分计数器的时钟信号、时计数器时钟信号如何获取;

  5. 教师讲解如何将设计的计时器通过以前课程中设计好的扫描显示电路进行显示;

  6. 在实验阶段1,实验过程中强调一些注意事项,如工程路径的选择、芯片的选择、设计文件的存放路径等,完成一个功能模块后要注意通过仿真验证设计的正确性;

  7. 计时器各功能模块完成后,通过模块互联组成完整的计时器,强调各段数值如何转换为十进制并显示到对应的数码管上;

  8. 分配管脚下载验证时强调分配管脚后要重新编译,注意引线如何连接,强调接线规范;

  9. 实验阶段2中,教师讲解秒表、倒计时、多点控时、多点记时的原理及设计时的注意事项,强调各智能计时器模块需要完成的功能;

  10. 在实验阶段2,学生根据自己的情况选择自己喜欢的智能计时器并进行设计,提醒学生设计过程中复用实验阶段1中的结果,可以考虑完成一个或多个设计;

  11. 实验过程中,提醒大家对编译出现的问题通过查看error message信息自行改正,遇到无法解决的问题,向老师寻求解决方案;

  12. 在实验过程中,鼓励大家相互讨论但禁止抄袭,通过设计思考题引导引导学生进行正确的设计;鼓励提前完成实验的同学帮助其他同学排查错误;

  13. 实验验收分为两个部分,实验阶段1基本计时器的验收和实验阶段2智能计时器的设计验收,在实验阶段1的验收中关注设计的计时器模块划分是否清晰,功能是否正确,显示是否合理,文件管理是否整齐,通过提问同步计数、异步计数让学生思考其区别;实验阶段2的验收中关注设计的智能计时器功能是否完备,显示是否合理,驱动外设是否成功等,通过提问异步清零、同步清零让学生思考其区别。

  14. 实验阶段3中,组织学生分享自己的设计方案,大家交流讨论设计过程中遇到的问题及解决方案。

在设计中,要注意学生设计的关键步骤,如系统功能的模块化分解,系统各模块的测试,模块间的互联,在验证时,要注意管脚分配到合适的管脚(输入用拨位接开关表示,接拨位开关附近的芯片管脚,输出用动态扫描数码管显示,分配与该数码管临近的引脚,特殊的时钟信号管脚不能使用),并且注意分配完管脚后一定要重新编译将制定的管脚适配到电路中去,在整个设计过程中要时刻思考系统的功能及如何完善系统。

实验原理及方案

实验的基本原理、完成实验任务的思路方法,可能采用的方法、技术、电路、器件。

  1. 基本计时器原理 (实验阶段1)

为了实验阶段2中设计智能计时器时可以复用该基本计时器,要求基本计时器包含毫秒计时、秒计时、分计时和时计时四个部分,毫秒部分显示两位数字,即最低位为10ms计时,10ms计时100次向秒进位,秒计时60次向分进位,分计时60次向时进位,由毫秒、秒、分、时共同构成基本计时器。

  1. 基本计时器的设计 (实验阶段1)

基本计时器由毫秒、秒、分、时三部分构成,因此需要使用100进制计数器模块完毫秒计数和从10ms到秒的进位,使用60进制计数器完成秒计数和从秒到分的进位,使用60进制计数器完成分计数和从分到时的进位,使用24进制计数器完成时计数。实验板上的时钟信号是24MHz,为了得到周期为10ms(频率为100Hz)的时钟信号,需要设计一个240000的分频器。

分频器的实现可以使用verilog编写程序实现也可以使用原理图方式实现,分频模块实现后通过仿真确定功能正确,然后将其发布为一个分频器符号,如图1所示

图1 10ms分频器符号

100进制计数器模块、60进制计数器模块、24进制的计数器模块都可以通过verilog编程实现或通过原理图使用74系列芯片实现,计数器实现后通过仿真确定功能正确,然后将其发布为相应进制计数器符号,如图2所示

图2-1 100进制计数器符号 图2-2 60进制计数器符号 图2-3 24进制计数器符号

将分频器得到的10ms计数时钟作为100进制计数器的时钟信号可以计数得到毫秒时间值,将分频器再100分频后的信号作为60进制计数器的时钟信号可以计数得到秒时间值,并得到60分频时钟,将该60分频时钟信号作为另一个60进制计数器的时钟信号可以计数得到分时间值,将该60分频时钟信号作为24进制计数器的时钟信号可以计数得到小时时间值,至此基本的计时功能设计完成,如图3所示,仿真确认功能正确后,将其发布为一个计时器符号。

图3 基本计时器计时模块

计时器设计完成后,与前次实验设计的扫描数码管电路连接,通过6位扫描秒数码管和2位普通数码管进行计时器显示。

  1. 智能计时器之秒表设计(实验阶段2)

秒表的设计要求为:使用10毫秒计时时钟,完成加10毫秒计时,要求有10毫秒、秒、分共6位数字显示。设计秒表时可使用实验阶段1完成的基本计时器中的10毫秒计时模块、秒计时模块和分计时模块,但一个完善的秒表必须包含使能信号保证秒表计时的开始与暂停,使能有效时,秒表正常工作,使能无效时,秒表暂停计时。

此外需要包含清零信号,清零信号用来清除秒表上次的计时信息,清零有效时所有位的信号均为0,清零信号无效时,根据使能信号有效与否判断是否正常计时。所以清零信号要同时作用于计时器的各位,此时要注意计时器是同步清零。

带有使能和同步清零信号的秒表计时器电路框图如图4所示。

图4 带使能和清零信号的秒表计时器电路框图

电路设计完成进行编译仿真,然后分配管脚并重新编译,按照分配的管脚连线,如果使用了使能信号和清零信号,则将使能信号连接至一个播位开关,清零信号连接至另一个播位开关,然后下载到实验板上验证。图5为秒表的计时信号,图6为清零后的计时器显示。

图5 秒表显示 图6 秒表清零后显示

  1. 智能计时器之倒计时设计(实验阶段2)

倒计时的设计要求为给定一个时间值,在倒计时使能有效时对该时间值进行减一秒计时,使能无效时停止计时,倒计时设定的时间值为包括时、分、秒的数值,共6位数字显示,当计时为0时,停止计数,蜂鸣器响起(可以用led指示灯表示)。设计倒计时时可使用实验阶段1完成的秒计时时钟、分计时时钟和时计时时钟,在开始按键按下,倒计时时钟显示初始值,使能信号有效时,开始并减一计数,倒计时电路模块如图7所示。

图7 倒计时电路模块框图

电路设计完成进行编译仿真,然后分配管脚并重新编译,按照分配的管脚连线,下载到实验板上验证。图8为倒计时的计时信号,图9为倒计时完成时的信号显示。

图8 倒计时显示 图9 倒计时完成显示

  1. 智能计时器之多点控时设计(实验阶段2)

设计多点控时要求自行选取是精确控时还是粗略控时,精确控时时,时钟可以为10毫秒时钟信号或秒时钟信号,根据需求选择显示的时间精度,粗略控时时,时钟为分时钟信号,根据需求选择显示的时间精度,要求至少有两个可控时间,并根据多点控时的输出驱动台灯控制模块。设计多点控时时可以使用实验阶段1完成的计时时钟信号、100进制计时器模块、60进制计时器模块、24进制的计时器模块。以多次闹铃为比照对象,多点控时的电路模块如图10所示。

图10 多点控时电路模块

电路设计完成进行编译仿真,然后分配管脚并重新编译,按照分配的管脚连线,下载到实验板上验证。图10为第一次输入满足设定时间时输出显示,图11为第二次满足设定时间时输出显示。

图11第一次控时输出显示 图12 第二次控时输出显示

  1. 智能计时器之多点记时设计(实验阶段2)

设计多点计时要求自行选取是精确记时还是粗略记时,据此选择相应的时钟信号,同时选择显示的时间精度。设计多点记时时可以使用实验阶段1完成的计时时钟信号、100进制计时器模块、60进制计时器模块、24进制的计时器模块。多点记时电路要求显示每次按下的次序和按下时刻的时间值,设计完成的电路模块如图13所示。

图13 多点记时电路模块

电路设计完成进行编译仿真,然后分配管脚并重新编译,按照分配的管脚连线,下载到实验板上验证。图14为初始记时状态显示,图15为第三次记时显示。

图14 多点计时初始状态显示 图15 多点计时第三次计时显示

教学实施进程

简要介绍实验实施进程的各个环节(如任务安排、预习自学、现场教学、分组研讨、现场操作、结果验收、总结演讲、报告批改等)中,教学设计的思路、目的,教师、学生各自需要完成的工作任务,需要关注的重点与细节。

该数字系统设计实验为“电子技术实验2”的最后一次实验,占据4个学时,课前预习时间不限制。实验实施过程包括任务安排、预习自学、现场教学、现场操作、结果验收、总结提问、报告批改7个环节。时间安排如下:

  1. 任务安排

在上一次实验结束后发给学生一个关于本次实验的详细文档,文档中描述了本次实验的实验准备、实验内容、实验任务、实验报告要求。

  1. 预习自学

学生根据下发的本次实验的任务安排预习实验,并自行查阅实验中所需的理论知识,如本次实验中要求学生巩固学习任意进制计数器的实现、计时器的分模块设计、秒表、倒计时、多点控时、多点记时的原理等,并思考实验方案。

  1. 实验第一阶段:基本计时器设计现场教学

实验课程开始后,教师首先简单梳理本次实验涉及到的理论知识,以及操作中的注意事项,确保所有同学都能明确本次实验内容,根据讲授的理论知识确定实验方案。

  1. 实验第一阶段:基本计时器设计现场操作

实验第一阶段的现场操作要求学生设计完成基本计时器,基本计时器包括毫秒计时、秒计时、分计时、时计时模块,首先对这些模块进行设计并仿真,仿真完成后,将这些模块互联组成一个计时器系统,并再次仿真验证设计结果。确保设计正确后,进行管脚分配并重新编译,然后连线进行下载验证。

在现场操作过程中,教师在现场巡视,帮助学生确定设计方案,并解答中间出现的问题,在解答问题时以引导为主,尽可能让学生自己找到问题的答案,提高学生解决问题的成就感和满足感。

  1. 实验第一阶段:基本计时器设计结果验收

实验第一阶段的现场操作完成后,对基本计时器进行验收。学生实验完成后可以申请验收,在验收的过程总可以配合提问,检验学生对相关知识的掌握程度。如果第一阶段时间结束后,还有同学的结果未验收到,可以推迟到实验第二阶段进行验收。

  1. 实验第二阶段:智能计时器设计现场教学

在实验第二阶段,教师先介绍下智能计时器的知识,分析实验中可能涉及到的智能计时器如何实现,为学生讲解智能计时器的实现要求,并估计大家尽可能使用第一阶段设计好的计时器模块来实现第二阶段中智能计时器的设计。

  1. 实验第二阶段:智能计时器设计现场操作

设计智能计时器时,由于可选题目比较多,学生可以充分发挥自己的能动性进行设计,所以中间出现的问题也会比较多,这对教师有一定的考验,教师要能够及时解答学生提出的问题。在此过程中,如果有能力很强的同学,完成一个智能计时器并验收通过后,鼓励其思考并完成额外的智能计时器设计。

  1. 实验第二阶段:智能计时器设计结果验收

实验第二阶段开始后,可以接着验收实验阶段一中未完成验收的部分,当第二阶段有同学设计完成后,则可以申请验收,验收过程中提问其设计思路和设计方案,思考有没有更优的设计,并鼓励其思考其他智能计时器的设计思路和方案。

  1. 实验第三阶段:总结讨论

第二阶段验收完成后,进入总结讨论阶段,抽取几个同学讲解其设计思路和方案选取,鼓励同学们现场讨论提问,最后由教师对该实验进行总结,提出报告要求,鼓励大家把报告作为设计的总结,是进一步提升设计能力的一个途径。

  1. 报告批改

实验后批改学生的报告,注明错误的地方并标明修改提示,将有错误的报告下发给学生,学生纠正后再提交。

实验报告要求

需要学生在实验报告中反映的工作(如:实验需求分析、实现方案论证、理论推导计算、设计仿真分析、电路参数选择、实验过程设计、数据测量记录、数据处理分析、实验结果总结等等)

本次实验报告应包括:

  1. 基本计时器原理分析

  2. 10ms计数时钟的实现方案,附设计原理图(verilog程序或bdf原理图)和仿真结果图

  3. 基本计时器的实现方案,包括具体的模块设计原理图和仿真图

  4. 智能计时器的方案选取和电路实现,包括具体的模块设计原理图和仿真图

  5. 总结自底向上的设计方法

  6. 实验中遇到的问题和解决方法总结

  7. 回答思考题

考核要求与方法(限300字)

考核的节点、时间、标准及考核方法。

  1. 提前预习:在实验过程中准确回答老师问题,并准备了实验方案的同学,给予适当课前预习分(5%~10%)

  2. 实验验收:实验验收占实验成绩的60%,如果完成实验阶段一和实验阶段二中的验收,可以获得百分制中60分的成绩;

  3. 实验质量和效率:实验方案设计完善;率先完成实验任务并验收通过的同学给予适当加分(5%~10%);

  4. 自主创新:实验电路设计的新颖,或者添加了要求以外的功能给予适当加分(5%~10%);

  5. 实验任务量:在实验阶段二中,设计完成多个智能计时器的同学,给予适当加分(5%~10%);

  6. 实验报告:要求实验报告要根据实验报告要求书写,实验报告占整个实验成绩中20%;

  7. 总分:整个实验按百分制来算,基本所有同学可以完成实验阶段一和实验阶段二的验收,并提交实验报告,可以得到80分左右,有一些同学在实验过程中表现突出,在实验阶段二中完成了多个智能计时器设计,可以得到90分以上,对于少数表现差和实验验收未完成的同学得到75分以下,最后再将这些成绩换算成优秀、良好、中等、及格、不及格五等。

项目特色或创新(可空缺,限150字)

项目的特色在于:项目背景的工程性,知识应用的综合性,实现方法的多样性。

项目背景的实用性:本实验是设计智能计时器,所设计的智能计时器在实际生活中时常见到,并运用到生活中的方方面面,如比赛计时时使用的秒表和多点记时,台灯控制和闹铃使用的多点控时,答辩环节使用的倒计时等等;

知识综合性:本实验的知识范围涵盖分频器、任意进制计数器、二进制到十进制的转换、组合电路设计、七段数码管的显示原理等,知识涉及面广、综合性强;

实现方法的多样性:本实验的实现方法多种多样,可以采用自底向上的方法设计,也可以采用自顶向下设计;任意模块的实现既可以采用原理图输入方式也可以采用verilog编程方式,使用原理图方式实现时可以采用不同的74系列芯片实现。

参赛选手信息表

案例提供单位 西安交通大学 相关专业 信息工程
设计者姓名 张世娇 电子邮箱 zhshijiao@mail.xjtu.edu.cn
移动电话 15332399126

通讯地址

(含邮编)

陕西省西安市碑林区咸宁西路28号西安交通大学电信学院710049
设计者姓名 张翠翠 电子邮箱 zhangcuicui@mail.xjtu.edu.cn
移动电话 13772160954

通讯地址

(含邮编)

陕西西安碑林区咸宁西路28号西安交通大学电信学院
设计者姓名 张鹏辉 电子邮箱 zhangph@mail.xjtu.edu.cn
移动电话 15529569223

通讯地址

(含邮编)

陕西省西安市碑林区咸宁西路28号西安交通大学电信学院710049
相关x课程名称 《电子技术实验2》 学生年级 大二、大三 学时(课内+课外) 24

支撑

条件

仪器设备 数电实验箱、示波器、PC机
软件工具 QuartusII
主要器件

获奖信息

获奖等级 一等奖
年份 2018

作品信息

作者信息

作者
张世娇,张翠翠,张鹏辉
学校
西安交通大学

电工电子实验教学资源平台 苏ICP备09069895号-19