1、 本 科 毕 业 论 文 ( 设 计 )题目基于 FPGA 的数字秒表的 设计学生姓名 庞建铿 学 号 2008110241系 名 物理与电子信息工程系专业年级 2008 级(1)班指导教师 许发翔 职 称 助教单 位 百色学院辅导教师 职 称单 位完成日期 2012 年 05 月 20 日目录百色学院本科毕业论文(设计)任务书 .I百色学院本科毕业论文(设计)开题报告 II百色学院本科毕业论文(设计)中期自查表 V摘要 1关键字 1Abstract 1第一章 绪论 .21.1 课题背景 21.2 硬件描述语言 VHDL 31.2.1 VHDL 的简介 .31.2.2 VHDL 语言的特点 .
2、41.2.3 VHDL 的设计流程 .41.3 数字秒表设计的要求 51.4 数字秒表设计的目的 5第二章 设计思想与方法论证 .52.1 设计思想 .52.1.1 方案一:采用 74LS163 和 CD4046 设计秒表 62.1.2 方案二:基于单片机的数字秒表的设计 .62.1.3 方案三:基于 FPGA 的数字秒表的设计 62.2 论证分析 .7第三章 系统设计 73.1 系统的总体设计 .83.2 FPGA 内部各单元模块设计与仿真 93.2.1 分频电路模块 .93.2.2 去抖电路模块 103.2.3 计数电路模块 123.2.4 译码显示电路模块 13第四章 硬件模块介绍 14
3、4.1 FPGA 的简介 .144.2 CD4511 的简介 .15第五章 硬件调试 165.1 Quartus II 的简介 .165.2 硬件电路的设计与调试 175.2.1 手工检测 185.2.2 程序检测 185.2.3 电路组装与调试 195.3 软件调试 195.4 注意事项 195.4.1 在 FPGA 芯片上调试过程 .195.4.2 程序检测 195.5 系统性能测试 205.5.1 测试内容 205.5.2 实现功能 205.6 调试过程发现的问题与解决方法 20结论 .21致谢 .22参考文献 .23附录一:数字秒表实物图 .24附录二:数字秒表源程序 .25百色学院本
4、科毕业论文(设计)诚信保证书 .30百色学院本科毕业论文(设计)任务书题目名称 基于 FPGA 的数字秒表的设计学生姓名 庞建铿 所学专业 电子信息工程 班 级 电本 08 级 1 班指导教师姓名 许发翔 所学专业 电子科学与技术 职 称 助教完成期限 15 周1.毕业论文(设计)主要内容或主要技术指标本题目要求学生使用 FPGA 芯片设计的数字秒表。FPGA 是一种新兴的高密度大规模可编程逻辑器件,它具有门阵列的高密度和 PLD 器件的灵活性和易用性,目前已成为一类主要的可编程器件。FPGA 器件作为系统控制的核心,其灵活的现场可更改性,可再配置能力,对系统的各种改进非常方便,在不更改硬件电
5、路的基础上还可以进一步提高系统的性能。基本要求:在 PC 机上以 Quartus II 软件为设计平台,运用 VHDL 硬件描述语言在实验开发板上实现秒表的整体设计。计数字秒表计时范围为 0. 1 秒12 小时,首先需要获得一个比较精确的计时基准信号,这里是周期为 1/10 s 的计时脉冲。其次,除了对每一计数器需设置清零信号输入外,还需在 6 个计数器设置时钟使能信号,即计时允许信号,以便作为秒表的计时起停控制开关。因此秒表可由 1 个分频器、4 个十进制计数器 (1/10 秒、1 秒、1 分、1 时)以及 3 个六进制计数器(10 秒、10 分、10 时)组成,(注意:制作实物,元件费及论
6、文打印费个人自理)2.毕业论文(设计)基本要求(1)认真做好文献查阅工作;(2)认真学习相关电子设计软件,并熟 练操作;(3)文章应用多用图形、图表、公式、数据、 过程等来体现内容;(4)认真撰写论文。要按学科标 准和论文写作要求规范地撰写 论文,要独立自主的完成,坚决杜绝弄虚作假、抄袭剽窃等现象;(5)认真填写百色学院本科毕业论文(论文)进展情况记录表(学生用)、 百色学院本科毕业论文(设计)中期自查表(学生用)、 百色学院本科毕业论文( 设计)答辩提纲(学生用)等文件。3.毕业论文(设计)进度安排(1)2011 年 12 月下旬:做好课题调研工作, 查阅相关文献,初步制定实验方案,撰写开题
7、报告,进行开题答辩;(2)2012-01 至 2012-03 实验阶段。围绕所研究课题,对实验方案进行论证和修改, 进行实验,并于3 月底撰写出毕业论文初稿。(3)2012-4 至 2012-05 补充必要的实验, 对论文进行修改。(4)2012-05 至 2012-06 修改论文,答 辩。答辩后根据答辩专家组意见再修改,提交最终版。指导教师签名:许发翔 2011 年 12 月 12 日百色学院本科毕业论文(设计)开题报告学号 2008110241 学生姓名 庞建铿 系 名 物理与电信工程系专业年级 电子信息工程 08 级 指导教师 许发翔 职称 助教论文(设计)题目 基于 FPGA 的数字秒
8、表的设计一、本论题课题背景及研究意义:课题背景:当前电子系统的设计正朝着速度快,容量大,体积小,质量轻,用电省的方向发展。推动该潮流迅速发展的决定性因素就是使用了现代化的 EDA 设计工具。EDA 是电子设计自动化(Electronic Design Automation)的缩写,是 90 年代初,从 CAD(计算机辅助没计)、CAM(算机辅助制造)、CAT(计算机辅助测试)和 CAE(计算机辅助工程)的概念发展而来的。EDA 技术就是以计算机为工具,在 EDA 软件平台上,对以硬件描述语言 VHDL 为系统逻辑描述手段完成的设计文件自动地完成逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑
9、行局布线、逻辑仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。设计者的工作仅限于利用软件的方式,即利用硬件描述语言来完成对系统硬件功能的描述,在 EDA 工具的帮助下就可以得到最后的设计结果。尽管目标系统是硬件,但整个设计和修改过程如同完成软件设计一样方便和高效。EDA技术中最为瞩目的功能,即最具现代电子设计技术特征的功能就是日益强大的逻辑设计仿真测试技术。EDA 仿真测试技术只需通过计算机就能对所设计的电子系统从各种不同层次的系统性能特点完成一系列准确的测试与仿真操作,在完成实际系统的安装后还能对系统上的目标器件进行所谓边界扫锚测试。这一切都极大地提高了大规模系统电子设计的自
10、动化程度。另一方面,高速发展的 CPLD/FPGA 器件又为 EDA 技术的不断进步奠定可坚实的物质基础。CPLD/FPGA 器件更广泛的应用及厂商间的竞争,使得普通的设计人员获得廉价的器件和 EDA 软件成为可能。现代的 EDA 工具软件已突破了早期仅能进行 PCB 版图设计,或类似某些仅限于电路功能模拟的、纯软件范围的局限,以最终实现可靠的硬件系统为目标,配备了系统设计自动化的全部工具。如配置了各种常用的硬件描叙平台 VHDL、Verilog HDL、 ABEL HDL 等;配置了多种能兼用和混合使用的逻辑描述输入工具,如硬件描述语言文本输入法(其中包括布尔方程描述方式、原理图描述方式、状
11、态图描述方式等)以及原理图输入法、波形输入法等;同时还配置了高性能的逻辑综合、优化和仿真模拟工具。研究意义:理论意义:随着人们生活水平的日益提高,社会体系日益完善,人们对于工作应用器材的要求也越来越高。秒表做完日常生活中,应用特别广泛,精确且方便的秒表就成为越来越多的人的选择。本次设计的数字秒表是基于 FPGA 芯片,利用 VHDL 语言来编译的,具有开关、时钟和显示功能,其体积小,携带方便。其理论意义在于通过该课题的学习,理解 FPGA 的概念、数字秒表的组成结构、设计步骤、实现方法、应用领域,理解 FPGA 的应用、编程方法和 VHDL 的学习。现实意义:秒表是一种常见的计时工具,种类比较
12、多。这里用 EDA 技术设计一种基于FPGA 的数字秒表。它可以为用户提供了传统的 PLD 技术无法达到的灵活性,带来了巨大的时间效益和经济效益,是可编程技术的实质性飞跃。FPGA 还是有其具大的优势比如它的高速性。同时通过本课题的研究,掌握数字秒表用 FPGA 实现得理论设计方法,学会分析。掌握在 FPGA 开发环境和实现数字秒表的方法和步骤,有利于我更好地掌握数字秒表在 FPGA 上的实现方法,提高我学习 FPGA 和应用 FPGA 的兴趣与水平。二、毕业论文(设计)研究内容、拟解决的主要问题:研究内容:设计一款基于 VHDL 的数字秒表,设计师在开发软件 Quartus II 进行输入编
13、译、仿真,运用 VHDL 硬件描述语言在实验开发板上实现秒表的整体设计,实现了闹钟系统计时、报警等功能。数字秒表计时范围为 0. 01 秒12 小时,首先需要获得一个比较精确的计时基准信号,这里是周期为 1/100s 的计时脉冲。其次,除了对每一计数器需设置清零信号输入外,还需在 6 个计数器设置时钟使能信号,即计时允许信号,以便作为秒表的计时起停控制开关。因此秒表可由 1 个分频器、4 个十进制计数器 (1/10 秒、1 秒、1 分、1 时) 以及 3 个六进制计数器(10 秒、10 分、10 时)组成解决的问题 :1.计算器的设计功能:(1)计时器能显示 1/100s 的时间,时钟脉冲频率
14、是 1KHz;(2) 计时器计时长度是 0.01 秒到 12 小时;(3)设置有复位和启/停开关,可以进行复位和控制计时进程。2、设计基于 VHDL 的 1/100s 计时器,要求:(1)阅读 EDA,FPGA,VHDL 数字登录的相关的论文,系统地了解用 VHDL 设计数字秒表的相关知识、原理、步骤、目的、意义。(2)掌握数字秒表设计的步骤,系统逻辑功能的确定系统的描述算法的设计电路结构的选择电路的实现。(3)掌握 Quartus II 软件平台的应用和操作,学会用软件设计并模拟仿真电路,按照要求实现的功能去设计数字秒表。3.拟采用的研究方法用 VHDL 设计 1/100s 计时器,采用以下
15、研究方法:(1) 确定系统的逻辑功能,建立算法流程,选择电路结构,确定设计电路所需要的数据处理和控制模块。(2) 在 Quartus II 软件平台采用图形输入和文本输入混合方式建立描述文件,图形输入表明系统的组成,并给出各模块的连线关系,文本输入确定各个模块的端口和功能。(3)用编译器将顶层图形输入文件和 VHDL 输入文件结合并编译,模拟仿真校验设计后,生成设计文件。三、毕业论文(设计)研究方法、步骤及措施:1、 做好毕业设计的准备工作,网上查阅有关设计所需资料,图书馆查阅有关书籍,请教指导老师做好毕业设计的初步准备工作。2、 明确毕业设计的制作流程,清楚毕业设计的工作原理,如:系统逻辑功
16、能,算法流程,数据处理与控制,VHDL 设计等的工作原理;对 VHDL 程序设计进行学习,写出设计需要的程序,学习在设计过程中使用的仿真软件,如:Quartus II 等软件。利用计算机等工具画出毕业设计的电路图,写出设计当中用到的程序,进行电路仿真,并进行调试。做好实验的数据,材料等。3、 在上述步骤后,按以下的方案进行毕业设计的实施。第一阶段:2011 年月 11 月 20 日前毕业设计(论文)题目上报指导老师。第二阶段:2011 年月 11 月 30 日前接受毕业设计任务书,学习毕业设计(论文)要求及有关规定,收集资料、开始撰写开题报告。第三阶段:2011 年 12 月 5 日前上交开题
17、报告,由指导老师审阅。第四阶段:2012 年 4 月 1 日前利用 Quartus II 编写程序,完成元器件的购买,收集资料,开始设计并撰写论文,初稿完成。第五阶段:2012 年 4 月 20 日至 2012 年 5 月上旬用不同方式与指导老师交流,沟通毕业设计进展情况。第六阶段:2012 年 5 月 20 日完成并提交正式毕业设计成果。四、主要参考文献:1 潘松,黄继业,EDA 技术与 VHDLM北京:清华大学出版社, 20092 谭会生等.EDA 技术基础M.长沙:湖南大学出版社.20043 卢毅,赖杰. VHDL 与数字电路设计 M .北京:科学出版社 , 20014 汉泽西等编著.E
18、DA 技术及应用M.北京:北京航空航天大学出版社,2004 5 谭会生,张昌凡.EDA 技术及应用M.西安:电子科技大学出版社,2001是否可以进入论文(设计)研究: 是否可以进入论文(设计)研究:指导教师签名:年 月 日 系主任签名:年 月 日百色学院本科毕业论文(设计)中期自查表系 名 物理与电信工程系 年 级 08 级 专 业 电子信息工程本人投入的时间和精力每周平均工作 10 小时,出勤情况:较好( ) 、一般( ) 、差( ) 。影响时间投入的原因:找工作( ) 、自身水平( ) 、其他原因 考研复习 。指导教师的投入指导教师每周指导 1 次,大约 1 小时;指导形式:网络( ) 、
19、电话( ) 、面对面( ) 、其他 ;指导效果: 好( ) 、 较好( ) 、一般( ) 、 差( ) 。毕业论文(设计)工作情况是否能按任务书的“进程安排”完成工作:是( ) 、否( ) ,已完成内容占全部工作 50 。你的论题是:自选( ) 、专业安排( ) 、跨专业( ) 。论题是否结合专业(是) 、难度(适当) 、工作量(一般) 。自己对毕业设计(论文)文件规范的学习情况:已了解( ) 、部分了解() 、不清楚( ) 。条件保障试验设备和器材是否得到保证:是( ) 、否( ) 。学校提供的图书资料是否满足需要:是( ) 、一般( ) 、否( ) 。学校计算机上机条件:好( ) 、较好(
20、 ) 、不好( ) ;约需 机时。经费来源:学校( ) 、个人( ) 、尚无需要( ) 。存在问题及整改思路论文初稿才开始做,没花足够时间深研,实物和软件仿真还未完成,没有体现FPGA 在实验中的应用,对 FPGA 在数字秒表的应用不是很了解,而且缺乏实例跟图形,相关的文献跟期刊也不多。继续查阅大量相关资料,并积极和师兄,师姐,老师联系,认真听取师兄,师姐,老师的建议,做好软件仿真跟硬件设计,完善论文的撰写。学生签名: 年 月 日指导教师签名: 年 月 日基于 FPGA 的数字秒表的设计电子信息工程 2008110241 庞建铿 指导老师 许发翔摘要:EDA 技术作为电子工程领域的一门新技术,
21、极大的提高了电子系统设计的效率和可靠性。该设计就是基于 FPGA 在 Quartus II 软件下利用 VHDL 语言结合硬件电路来实现数字秒表的功能,采用 ALTRA 公司 CycloneII 系列的EP2C5T144C8N 芯片进行仿真,并给出仿真结果。数字秒表有 4 个主要模块,分别是分频电路,去抖电路,计时电路,显示电路。用 VHDL 语言编程来实现各个模块的功能,再用例化来实现各模块的连接,从而实现整个数字秒表的功能。该电路能够实现计时功能,计时精度高,电路简单。关键字:FPGA;EDA;VHDL;Quartus II;数字秒表The design of digital stop w
22、atch based on FPGAAbstract: EDA technology as electronic engineering of a new technology, greatly enhancing the electronic system design efficiency and reliability. The design is based on FPGA in Quartus II of VHDL language software with the hardware circuit to realize the function of digital a stop
23、watch, the company CycloneII ALTRA series of EP2C5T144C8N chips for simulation, and the simulation results are given. Digital stopwatch there are five main modules, respectively is points frequency circuit, to shake circuit, timing circuit, control circuit, show circuit. With VHDL language programmi
24、ng to realize the function of each module of, again cases to achieve each module of the connection, and make the digital stopwatch function. This circuit can achieve good timing function, timing precision is high.Key Words:FPGA;EDA;VHDL;Quartus II ;Digital stop watch第一章 绪 论数字秒表是日常生活中比较常见的电子产品,其设计也是
25、EDA 技术中重要的设计之一 1。EDA 是 20 世纪 90 年代初以来迅速发展起来的现代电子工程领域的一门新技术。它以可编程逻辑器件(PLD)为载体,以计算机为工作平台,以 EDA 工作软件为工作环境,以硬件描述语言(VHDL)为电子系统功能描述方式,以电子系统设计为应用方向的电子产品自动化设计过程。在当今以数字化和网络化为特征的信息技术革命大潮中,电子技术得到了飞速发展,现代电子产品渗透到了社会的各个领域。现代电子产品的性能进一步提高,功能越来越复杂,集成化智能化程度越来越高,更新换代的节奏越来越快,开发风险越来越大,而且向着功能多样化,体积小型化,功耗最低化的趋势发展。所有这些都给电子
26、系统的设计带来了前所未有的压力,唯一的出来就是熟练掌握 EDA 技术,并获得其有力支持。EDA 技术的出现,极大的提高了电子系统设计的效率和可靠性,减轻了设计者的劳动强度,EDA 是电子产品开发研制的动力源和加速器,是现代电子技术的核心。随着基于 PLD 的 EDA 技术的发展和应用领域的扩大和深入,它在电子信息,通信工程,自动控制及计算机应用等领域的重要性日益突出。随着电子技术与计算机技术的发展,熟练掌握和应用 EDA 技术已成为电子类及相关专业学生不可或缺的一项技能 , 。本文介绍的数字秒表,利用基于 VHDL 的 EDA 设计工具,采用大规模可编程逻辑器件 FPGA,通过设计芯片来实现系
27、统功能。给出了顶层电路图,和各模块的设计.增加了消除抖动的控制方法,消除了开关按键的机械抖动.通过编辑、编译和器件编程, 并通过编程 器将引脚下载到 ALTRA 公司 CycloneII 系列EP2C5T144C8N 芯片进行仿真,经实际电路测试验证,达到了预期的设计要求,显示结果基本准确。本次设计突出应用性,以加强工程实践能力和工程设计能力2。1.1 课题背景当前电子系统的设计正朝着速度快,容量大,体积小,质量轻,用电省的方向发展。推动该潮流迅速发展的决定性因素就是使用了现代化的 EDA 设计工具。EDA 是电子设计自动化(Electronic Design Automation)的缩写,是
28、 90 年代初,从 CAD(计算机辅助没计)、CAM(算机辅助制造)、CAT(计算机辅助测试)和 CAE(计算机辅助工程)的概念发展而来的。EDA 技术就是以计算机为工具,在 EDA 软件平台上,对以硬件描述语言 VHDL 为系统逻辑描述手段完成的设计文件自动地完成逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑行局布线、逻辑仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作 2。设计者的工作仅限于利用软件的方式,即利用硬件描述语言来完成对系统硬件功能的描述,在 EDA 工具的帮助下就可以得到最后的设计结果。尽管目标系统是硬件,但整个设计和修改过程如同完成软件设计一样方便和高效。
29、EDA 技术中最为瞩目的功能,即最具现代电子设计技术特征的功能就是日益强大的逻辑设计仿真测试技术。EDA 仿真测试技术只需通过计算机就能对所设计的电子系统从各种不同层次的系统性能特点完成一系列准确的测试与仿真操作,在完成实际系统的安装后还能对系统上的目标器件进行所谓边界扫锚测试。这一切都极大地提高了大规模系统电子设计的自动化程度。另一方面,高速发展的 CPLD/FPGA 器件又为 EDA 技术的不断进步奠定可坚实的物质基础。CPLD/FPGA 器件更广泛的应用及厂商间的竞争,使得普通的设计人员获得廉价的器件和 EDA 软件成为可能。现代的 EDA 工具软件已突破了早期仅能进行 PCB 版图设计
30、,或类似某些仅限于电路功能模拟的、纯软件范围的局限,以最终实现可靠的硬件系统为目标,配备了系统设计自动化的全部工具。如配置了各种常用的硬件描述平台VHDL、Verilog HDL、ABEL HDL 等;配置了多种能兼用和混合使用的逻辑描述输入工具,如硬件描述语言文本输入法(其中包括布尔方程描述方式、原理图描述方式、状态图描述方式等)以及原理图输入法、波形输入法等;同时还配置了高性能的逻辑综合、优化和仿真模拟工具 3。1.2 硬件描述语言VHDL1.2.1 VHDL 的简介VHDL 语言是一种用于电路设计的高级语言。它在 80 年代的后期出现。最初是由美国国防部开发出来供美军用来提高设计的可靠性
31、和缩减开发周期的一种使用范围较小的设计语言 。但是,由于它在一定程度上满足了当时的设计需求,于是他在 1987 年成为 A I/IEEE 的标准(IEEE STD 1076-1987) 。1993 年更进一步修订,变得更加完备,成为 A I/IEEE 的 A I/IEEE STD 1076-1993 标准。目前,大多数的 CAD 厂商出品的 EDA 软件都兼容了这种标准。自 IEEE 公布了 VHDL 的标准版本,IEEE-1076(简称 87 版)之后,各 EDA 公司相继推出了自己的 VHDL 设计环境,或宣布自己的设计工具可以和 VHDL 接口。此后 VHDL在电子设计领域得到了广泛的接
32、受,并逐步取代了原有的非标准的硬件描述语言。1993 年,IEEE 对 VHDL 进行了修订,从更高的抽象层次和系统描述能力上扩展 VHDL 的内容,公布了新版本的 VHDL,即 IEEE 标准的 1076-1993 版本, (简称 93 版) 。现在,VHDL 和 Verilog 作为 IEEE 的工业标准硬件描述语言,又得到众多 EDA 公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。有专家认为,在新的世纪中,VHDL 语言将承担起大部分的数字系统设计任务 4。1.2.2 VHDL 语言的特点VHDL 的程序结构特点是将一项工程设计,关于用 VHDL 和原理图输入进行 CPLD
33、/FPGA 设计的粗略比较:在设计中,如果采用原理图输入的设计方式是比较直观的。你要设计的是什么,你就直接从库中调出来用就行了。这样比较符合人们的习惯。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是 VHDL 系统设计的基本点。应用 VHDL 进行工程设计的优点是多方面的。(1) 与其他的硬件描述语言相比,VHDL 具有更强的行为描述能力,从而决定了他成为系统设计领域最佳的硬件描述语言。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。(2) VHDL 丰富的仿真语句和库函数,使
34、得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。(3) VHDL 语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能。符合市场需求的大规模系统高效,高速的完成必须有多人甚至多个代发组共同并行工作才能实现。(4) 对于用 VHDL 完成的一个确定的设计,可以利用 EDA 工具进行逻辑综合和优化,并自动的把 VHDL 描述设计转变成门级网表。(5) VHDL 对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计。1.2.3 VHDL 的设计流程它主要包括以下几个步骤:(1) 文
35、本编辑:用任何文本编辑器都可以进行,也可以用专用的 VHDL 编辑环境。通常VHDL 文件保存为.vhd 文件。(2) 功能仿真:将文件调入 VHDL 仿真软件进行功能仿真,检查逻辑功能是否正确(也叫前仿真,对简单的设计可以跳过这一步,只在布线完成以后,进行时序仿真)(3) 逻辑综合:将源文件调入逻辑综合软件进行综合,即把语言综合成最简的布尔表达式。逻辑综合软件会生成.edf 或.edif 的 EDA 工业标准文件。(4) 布局布线:将.edf 文件调入 PLD 厂家提供的软件中进行布线,即把设计好的逻辑安放PLD/FPGA 内。(5) 时序仿真:需要利用在布局布线中获得的精确参数,用仿真软件
36、验证电路的时序。(也叫后仿真) 通常以上过程可以都在 PLD/FPGA 厂家提供的开发工具。(6) 器件编程1.3 数字秒表的设计的要求设计一个基于 FPGA 的数字秒表的具体化技术指标如下:(1) 能对 0 秒12 小时范围进行计时;(2) 计时精度达到 10ms;(3) 设计复位开关和启停开关,复位开关可以在任何情况下使用,使用以后计时器清零,并做好下一次计时的准备。(4)用 FPGA 器件实现,用 VHDL 语言编程,并进行下载,仿真。1.4 数字秒表设计的目的本次设计的目的就是在掌握 VHDL 语言的基础上,了解 EDA 技术,掌握状态机工作原理,同时了解计算机时钟脉冲是怎么产生和工作
37、的。在掌握所学的计算机组成与结构课程理论知识时。通过对数字秒表的设计,进行理论与实际的结合,提高与计算机有关设计能力,提高分析、解决计算机技术实际问题的能力。通过毕业设计深入理解计算机结构与控制实现的技术,达到课程设计的目标。第 二 章 设计思想与方法论证实现数字秒表的方法有多种,可以用单片机作为控制芯片,采用 AT89C52单片机,数字显示采用共阳七段 LED 显示器。也可以用 FPGA 作为控制芯片,采用 EDA 技术用 VHDL 语言实现硬件电路。当然每一种方案都有其各自的优点。本章列举、说明了三种不同实现数字秒表的方案,对两种方案的优缺点进行了对比,选出了最佳方案。2.1 设计思想2.
38、1.1 方案一:采用 74LS163 和 CD4046 设计秒表 晶体振荡器电路给数字秒表提供一个频率稳定准确的方波信号,可保证数字秒表的走时准确及稳定。不管是指针式的秒表还是数字显示的秒表豆使用了晶体振荡器的方波信号经过 D 触发器二分频得到秒信号供秒计算器进行计数。分频器实际上也就是计算器。时间计数电路由 0.01 秒,0.1 秒,秒的个位,秒的十位,分的个位,分的十位,时的个位,时的十位计算器电路构成,其中0.01 秒,0.1 秒构成 100 进制,秒的个位跟秒的十位构成 60 进制,分的个位和分的十位构成 60 进制。时间计算器由 74LS163 组成,译码驱动电路将计算器数钱的 84
39、21BCD 码转换成数码管需要的逻辑状态,并且为保证数码管正常工作提供足够的工作电流。数码管通常有发光二极管数码管和液晶数码管,本设计提供的是发光俄二极管。2.1.2 方案二:基于单片机的数字秒表的设计本方案采用 AT89C52 单片机,单片机的 P1 口杰数码管显示电路,P0 口杰键控数码管的显示,P2.0 口接入整点报时电路,RESET 接入复位和晶振电路。该电路能否成功,关键在于诚信的编写而对元器件的要求不搞。用 C 语言编写的数字秒表电路,采用分支结构编写,利用跳转指令与大量的中断指令,当按键扫描没有按键按下是,程序正常计数,当检测到有按键按下是,程序运转到相应的中断程序进行响应处理,
40、从而实现了分支程序的处理。2.1.3.方案三:基于 FPGA 的数字秒表的设计其设计思路为:通过分频器将晶振所提供的信号分频成 0.01S 脉冲作为计时信号,经计数器累加计数,形成一百进制的计数器,六十进制的计数器的计数器。经译码器译码后,分位输出给八个 7 段 LED 数码管显示。设计采用八位 LED 数码管显示时,分、秒,0.1s,0.01s 计时方式。使用按键开关可实现开始/结束计时操作,及复位清零操作和计时长度模式选择。一设计要求(秒表的功能描述)(1)要求设置复位开关。当按下复位开关时,秒表清零并做好计时准备。在任何情况下只要按下复位开关,秒表都要无条件地进行复位操作,即使是在计时过
41、程中也要无条件地进行清零操作。(2)要求设置启/停开关。当按下启/停开关后,将启动秒表并开始计时,当再按一下启/停开关时,将终止秒表的计时操作。(3)要求计时精确度大于 0.01 秒。要求设计的计时器能够显示时(2 位) ,分(2位)、秒(2 位) 、0.1 秒(1 位) ,0.01 秒的时间。二秒表的面板包括:(1)显示屏:由 8 个 7 段数码管组成,用于显示当前时间(2)QT(启/停键):用于开始/结束计时操作.(3)CLR(复位键):用于秒表计时系统的复位操作(4)CD4511:用于数码管译码。2.2 论证分析课题的角度来说可以选用硬件电路,单片机和 FPGA 芯片作为系统的MCU,从
42、优势上硬件电路所用的元器件便宜,不过电路较复杂,调试较难。而利用单片机作为控制系统的核心元器件,其最大的优势是电路简单,价格便宜,实验所需仪器少。而 FPGA 是英文 Field Programmable Gate Array 的缩写,即现场可编程门阵列,它是在 PAL、GAL、EPLD 等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。可在有现成的条件下,FPGA 还是有其具大的优势比如它的高速性,让我们更清楚地认识到硬件的性能及硬件描述语言对硬件的驱动。FPGA 是 ASI
43、C 电路中设计周期最短、开发费用最低、风险最小的器件之一。所以本方案选用以 FPGA作为核心器件来设计。第三章 软件设计与仿真整个系统软件设计是采用自顶向下分析,自底向上设计。将数字秒表系统的整体分解为各个模块电路。本章详细介绍了数字秒表系统的各个模块的设计,并对各个模块的每一个部分进行了分析,在后半部分还对系统模型进行了访真与程序调试。各模块之间的每一个坏节都是深思熟虑而成,各自完成相应的功能并组成一个统一的整体。3.1 系统的总体设计数字秒表的顶层电路图及时序分析采用硬件描述语言设计一个复杂电路系统,其中包括时钟分频模块、按键去抖模块、计数模块、显示模块四个主要部分,运用自顶向下的设计思想
44、,将系统按功能逐层分割的层次化设计方法。在顶层设计中,要对内部各功能块的连接关系和对外的接口关系进行描述,而功能块实际的逻辑功能和具体的实现形式则由下一层模块来描述。 本系统设计采用自顶向下的设计方案,根据数字秒表的系统原理框图如图3.1.1,设计系统的顶层 RTL 电路图如图 3.1.2 所示。根据图所示的数字秒表系统顶层电路图, 按照自顶向下的设计思路, 编写各个模块的源程序, 最后再对各个模块进行组合, 编写顶层描述的源程序 5。图 3.1.1 数字秒表原理框图图 3.1.2 数字秒表的顶层 RTL 电路图3.2 FPGA 内部各单元模块设计与仿真3.2.1 分频电路模块的设计在基于 E
45、DA 技术的数字电路系统设计中,分频电路应用十分广泛。常常使用分频电路来得到数字系统中各种不同频率的控制信号。所谓分频电路,就是将一个给定的频率较高的数字输入信号经过适当处理后,产生一个或数个频率较低的数字输出信号。分频电路本质上是加法计数器的变种,其计数值有分频常数 N=fin/fout 决定,其输出不是一般计数器的计数结果,而是根据分频常数对输出信号的高,低电平控制。按 键按键消抖处理 分频电路主控电路计 时 电 路七段数码管译码电路七段数码管显示CLK 输入FPGA本设计需要一个计时范围为 0.01 秒12 小时的秒表,首先需要获得一个比较精确的计时基准信号,这里时周期为 1/100 s
46、 的计时脉冲,所以采用一个标准时钟信号源 1KHZ 经分频后获得一个精确的 100HZ 的脉冲。其软件设计的流程图如图 3.2.1.1 所示:开始1KHz CLK 输入设置中间变量 CNTERCLK 上升沿到来CNTER9?Y NCNTER=0,NEWCLK=1 CNTER=CNTER+1结束图 3.2.1.1 分频电路模块流程图分频电路模块模块的外部端口如下图 3.2.1.2 所示:图 3.2.1.2 分频外部端口各端口的作用如下:CLK:外部时钟输入端。NEWCLK:分频后的时钟输出端。当外部时钟 1KHz 经过分频器分成 100Hz,由 NEWCLK 输出新的时钟信号。其仿真波形如图 3
47、.2.1.3 所示:图 3.2.1.3 分频电路模块波形仿真图由图,我们可以知道:当 CLK 经过 10 个周期后,NEWCLK 产生一个有效的正跳变,形成一个进位。3.2.2 去抖电路模块秒表面板上有 2 个按键:CLR 键,QT 键。因为设计采用的是机械式的按键,由于存在机械触动的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会马上断开。因而在闭合及断开按键的瞬间均伴随有一连串的抖动。抖动时间的长短由按键的机械特性决定,一般为 5-10ms 。按键的闭合稳定时间的长短由操作人员的按键动作决定,一般为零点几秒至数秒。按键抖动会引起被误读多次。为确保 FPGA 对键的闭合仅作一
48、次处理,必须去除按键抖动。通常在按键较少时可用硬件方法消除抖动,一般采用 RS 触发器作为常用的消抖电路,如果按键较多时,常用软件消除抖动。在 EDA 的设计应用中,软件消抖的方法即可使用 RS 触发器进行消抖,也可通过检测按键按下的时间进行消抖。其软件设计的流程图如图 3.2.2.1 所示:图 3.2.2.1 去抖模块流程图输入初始值CLK,CLR,ENA设置中间变量 A,B,CCLK 上升沿到来A=DIN; B=A; C=B结束QOUT=A|B|C开始去抖模块的外部端口如图 3.2.2.2 所示:图 3.2.2.2 去抖模块外部端口图各端口的作用如下:CLK:时钟输入端。DIN:按键输入端
49、。QOUT:去抖后按键稳定输出端。其仿真波形如图 3.2.2.3 所示:图 3.2.2.3 去抖模块电路仿真波形图由图可知:当按键持续时间大于 3 个时钟周期,QOUT 才可能产生有效的正跳变,输出一个单脉冲。3.2.3 计数电路模块在数字秒表系统中要用到各种计数器。计数器是在数字系统中使用最多的时序电路,它不仅能用于对时钟脉冲计数,还可以用与分频,定时,产生节拍脉冲和脉冲序列以及进行数字运算等。计数器的原理是将几个触发器按照一定的顺序连接起来,然后根据触发器的状态按照一定的规律随时钟的变化来记忆时钟的个数。常用的计数方法有:同步计数器、可逆计数器、异步计数器 6。在本次设计中,采用异步计数器的方法,用硬件描述语言描述一个异步计数器,将低/高位计数器的输出作为高/低位计数器的时钟信号,在本设计中要用到 10 进制跟 6 进制组合形成两个 100 进制计数器,两个 60 进制计数器。其6 进制模块的流程图如图 3.2.3.1