




已阅读5页,还剩35页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
独 创 声 明 本人郑重声明 所呈交的毕业论文 设计 是本人在指导老师的指导 下 独立进行研究工作所取得的成果 成果不存在知识产权争议 尽我所 知 除文中已经注明引用的内容外 本论文 设计 不含任何其他个人或 集体已经发表或撰写过的作品成果 对本文的研究做出重要贡献的个人和 集体均已在文中以明确方式标明 此声明的法律后果由本人承担 作者签名 二 年 月 日 毕业论文 设计 使用授权声明 本人完全了解鲁东大学关于收集 保存 使用毕业论文 设计 的规 定 本人愿意按照学校要求提交论文 设计 的印刷本和电子版 同意学 校保存论文 设计 的印刷本和电子版 或采用影印 数字化或其它复制 手段保存论文 设计 同意学校在不以营利为目的的前提下 建立目录 检索与阅览服务系统 公布论文 设计 的部分或全部内容 允许他人依 法合理使用 保密论文在解密后遵守此规定 论文作者 签名 二 年 月 日 毕业设计选题报告毕业设计选题报告 姓名性别女学院 计算机科学 与技术学院 年级2004 级学号042210212 设计题目基于硬件描述语言 VHDL 的电子钟设计 课题来源教学课题类别应用研究 选做本课题的原因及条件分析 数字钟是一种用数字电路技术实现时 分 秒计时的装置 与机械式时钟相比有 更高的准确性和直观性 且无机械装置 具有更长的使用寿命 并且数字钟正逐渐向 小型化 多功能化发展 电子设计自动化 EDA 技术发展越来越迅速 利用计算机辅助设计已成为发展 趋势 VHDL 语言具有强大的电路描述和建模能力 用 VHDL 开发的数字电路与开发 平台以及硬件实现芯片无关 可移植性 可重用性好 VHDL 语言能够在系统级 行 为级 寄存器传输级 门级等各个层次对数字电路进行描述 并可以在不同层次进行 不同级别的仿真 能极大得保证设计的正确性和设计指标的实现 Quartus 设计软件提供了一个完整的 多平台的设计环境 它可以轻易满足特定 设计项目的要求 指导教师意见 数字钟是一种典型的数字电路 其中包括了组合逻辑电路和时序电路 设计与制 做数字钟就是为了了解数字钟的原理 从而学会制作数字钟 而且通过数字钟的制作进 一步的了解各种在制作中用到的中小规模集成电路的作用及实用方法 通过它可以进 一步学习与掌握各种组合逻辑电路与时序电路的原理与使用方法 选题较有实用价值 同意选题 签名 年 月 日 学院毕业论文 设计 领导小组意见 公章 年 月 日 毕业设计任务下达书毕业设计任务下达书 院 系 计算机科学与技术学院 专业 信息工程 学号 042210212 姓名 现将毕业设计任务下达书发给你 毕业设计任务下达书内容如下 一 毕业设计题目 基于硬件描述语言 VHDL 的电子钟设计 二 主要内容 对此电子钟系统进行合理的功能分析后 确定系统功能模块 系统设计采用自顶 向下的设计方法 用 VHDL 进行分模块设计 完成系统的功能 三 具体要求 本次设计是应用硬件描述语言 VHDL 进行编程 仿真并硬件实现电子钟系统 利 用开发平台 Quartus 并在CPLD 上实现该系统 电子钟系统包括正常计时 闹 钟 定时器等模块 四 主要参考文献 1 林明权 VHDL 数字控制系统设计范例 M 北京 电子工业出版社 2003 2 雷伏容 VHDL 电路设计 M 北京 清华大学出版社 2006 3 陈荣 陈华 VHDL 芯片设计 M 北京 机械工业出版社 2006 4 杨恒 李爱国等 FPGA CPLD 最新实用技术指南 M 北京 清华大学出版社 2005 五 进程安排 阶段起止日期主 要 内 容 准备开题阶段2008 1 18 2008 3 3 根据选题 搜集材料 学习相关理论知 识 设计实现阶段2008 3 4 2008 5 20完成系统整体设计及实现主模块功能 说明书完成阶段2008 5 21 2008 6 10各个模块功能实现调试 撰写说明书 答辩阶段2008 6 14 2007 6 15修改完善设计 准备答辩 六 本毕业设计任务下达书于 2008 年 1 月 28 日发出 毕业设计应于 2008 年 6 月 10 日前完成后交指导教师 由指导教师评阅后提交毕业论文 设计 答辩委 员会 七 毕业设计任务下达书一式两份 一份给学生 一份留学院存档 指导教师 签发于 200 年 月 日 分管院长 签发于 200 年 月 日 毕业设计开题报告毕业设计开题报告 姓 名 性 别 女 学院 计算机科学 与技术学院 年 级 2004 级 学 号 042210212 预计 完成 时间 2008 6 10 设计题目 基于硬件描述语言 VHDL 的电子钟设计 课题来源教学课题类别应用研究指导教师 毕业设计实施方案 第一阶段 选题 基于硬件描述语言 VHDL 的电子钟设计 第二阶段 开题 深入了解 VHDL 语言 了解复杂电子系统的设计方法 分析电子钟 系统的功能 第三阶段 完成系统各个模块的设计 并进行改进 测试 第四阶段 根据设计内容撰写设计说明书 第五阶段 准备答辩 设计主要内容 提纲 1 采用自顶向下设计方法设计电子钟 进行电子钟的顶层模块的设计和仿真验 证 2 将系统划分成若干个底层子模块 并进行仿真验证 3 经 EDA 开发平台 Quartus 综合成门级电路 进行门级仿真验证 4 下载到 CPLD 上 完成硬件实现 指导教师意见 阅读了相关参考文献 掌握 VHDL 的基本使用 确定了电子钟的功能 采用 自顶向下的设计方法设计电子钟系统 选取 Quartus 作为开发平台 制定了较为可 行的实施方案 同意开题 签名 年 月 日 学院毕业论文 设计 领导小组意见 公章 年 月 日 签章 年 月 日 毕业设计结题报告毕业设计结题报告 姓名性别女学院 计算机科学 与技术学院 年级2004 级 学号 042210212 设计题目基于硬件描述语言 VHDL 的电子钟设计 课题来源教学课题类别应用研究指导教师 本课题完成情况介绍 包括研究过程 实验过程 结果分析 存在的问题及应用情况 等 第一阶段选题 基于自己硬件描述语言 VHDL 的了解和对硬件设计技术的兴趣 并结合自己的实际 我选择了这个设计题目 第二阶段开题 根据选题内容进行充分的学习和准备 做好前期的工作 第三阶段电子钟的设计 根据前面设计结果和掌握的技术进行系统的设计 这 期间与老师多次交流 反复修改 最后完成定稿 本文重点对电子钟的各个功能模块进行分析设计仿真 并且进行了硬件实现 当然一些模块的功能较为单一 有待于日后的完善 指导教师意见 设计采用 VHDL 硬件描述语言设计了一个电子钟系统 该系统在开发软件 Quartus 环境中设计完成 给出了设计该数字系统的流程和方法 最后通过 CPLD 实现预定功能 基本完成工作量 同意结题 签名 年 月 日 学院毕业论文 设计 领导小组意见 公章 年 月 日 公章 年 月 日 年 月 日 设计成绩 毕业设计成绩评定表毕业设计成绩评定表 学院 计算机科学与技术学院 学号 042210212 姓 名设计总成绩 设计题目 基于硬件描述语言 VHDL 的电子钟设计 设计采用自顶向下的方法 用硬件描述语言 VHDL 完成了一个简单电子 钟系统的设计 实现了正常计时 计时器 闹钟三个功能 给出了设计该数 字系统的流程和方法 最后通过 CPLD 实现预定功能 较好完成任务书规定 的工作量 设计说明书撰写认真 结构合理 表达通顺 符合规范化要求 同意答辩 指 导 教 师 评 语 评定成绩 签名 年 月 日 评 阅 人 评 语 评定成绩 签名 年 月 日 答 辩 小 组 评 语 答辩成绩 组长签名 年 月 日 注 1 论文 设计 总成绩 指导教师评定成绩 50 评阅人评定成绩 20 答辩成绩 30 2 将总成绩由百分制转换为五级制 填入本表相应位置 I 目 录 1 引言 1 2 相关知识介绍 1 2 1 VHDL 介绍 2 2 2 自顶向下设计方法 3 2 3 Quartus 开发平台 3 2 4 CPLD 简介 4 3 电子钟系统设计方案 4 3 1 电子钟系统设计要求 4 3 2 系统设计方案概述及工作原理 4 4 电子钟顶层设计 5 4 1 顶层设计分析 5 4 2 顶层电路图 6 5 各模块电路的设计 6 5 1 正常计数时间功能模块 6 5 1 1 分频组件设计 7 5 1 2 60 进制计数器设计 7 5 1 3 24 进制计数器设计 8 5 2 定时器设定于计时功能模块 9 5 2 1 定时器组件设计思路及原理图 9 5 2 2 定时器仿真波形 10 5 3 闹钟模块设计 11 5 3 1 闹钟组件的设计思路及原理图 11 5 3 2 仿真波形 11 5 4 输出选择与数码转换模块设计 12 5 4 1 秒 分查表组件设计 12 5 4 2 小时查表组件设计 13 5 5 扫描多路输出模块 14 5 5 1 bin2led 组件设计 14 5 5 2 scan4 组件设计 15 5 5 3 scan2 组件设计 16 6 各模块硬件实现结果 17 6 1 正常计数模块的硬件实现结果 18 6 2 定时模块的硬件实现结果 19 6 3 闹钟模块硬件实现结果 20 7 小结 20 参考文献 20 II 致 谢 21 附录 部分模块代码 21 鲁东大学毕业设计 1 1 基于硬件描述语言 VHDL 的电子钟设计 孔祥莉 计算机科学与技术学院 信息工程专业 2004 级 2 班 042210212 摘摘 要 要 VHDL Very High Speed Integrated Circuit Hardware Description Language 即超高速 集成电路硬件描述语言 在当今电子工程领域已经成为通用的硬件描述语言 本文使用 VHDL 硬 件描述语言设计了一个电子钟系统 该系统在开发软件 Quartus 环境中设计完成 本文给出了设 计该数字系统的流程和方法 最后通过 CPLD 实现预定功能 关键词 关键词 硬件描述语言 VHDL Quartus 电子钟 CPLD Design of Electronic clock Based On Hardware Description Language VHDL Kong Xiangli School of Computer Science VHDL Quartus electronic clock CPLD 1 引言 随着电子技术的飞速发展 各种电子设备及数字系统的复杂度 集成度越来越高 现代电子产品性能进一步提高 产品更新换代的节奏越来越快 要求产品开发周期短 开发成本低 保密性和可修改及可扩展性好 因此对集成电路的设计方法不断提出了 新的要求 因此 EDA 技术应运而生 所谓 EDA Electronic Design Automation 技术 是依赖目前功能已十分强大的计算机为工具 代替人完成数字系统设计 逻辑综合 布局布线和仿真工作的技术 目前 EDA 技术已经成为支撑现代电子设计的通用平台 并逐步向支持系统级设 计的方向发展 只有以硬件描述语言和逻辑综合为基础的自顶向下的设计方法才能满 足日趋复杂的数字系统设计要求 硬件描述语言有很多种 本文应用具有强大的电路 描述和建模能力的 VHDL 语言进行电子钟系统设计 为以后深入学习和应用电子系统 现代设计方法打好基础 并具有工程实用性 2 相关知识介绍 本文所设计的电子钟系统是运行在 Quartus 环境下的一个小型的数字系统 我采 鲁东大学毕业设计 2 2 用了自顶向下的设计方法 应用功能强大的硬件描述语言 VHDL 完成系统的设计仿真 下面就本设计所用到的技术作一下简单的介绍 2 1 VHDL 介绍 VHDL 是 Very High Speed Integrated Circuit Hardware Description Language 的缩写 是在 ADA 语言的基础上发展起来的硬件描述语言 VHDL 诞生于 1983 年 1987 年 12 月 VHDL 被接纳为标准硬件描述语言 即 IEEE1076 标准 经过不断更改和改善 1993 年 VHDL 重新修订并增加了一些功能 即 IEEE 1076 93 标准 目前在电子工程领域 作为 IEEE 的工业标准硬件描述语言 VHDL 已成为事实上的通用硬件描述语言 电路设计的描述层次可分为系统级 算法级 寄存器传输级 门级和晶体管级 VHDL 的建模范围可以从最抽象的系统级一直到门级 从多个层次对电路进行模拟仿 真 它除了具有硬件特征的语句外 其语言形式和描述风格以及句法和一般的计算机 高级语言相当类似 然而它又有同软件语言完全不同的性质 以下是一个 VHDL 的实例 LIBRARY IEEE IEEE 库使用说明语句 USE IEEE STD LOGIC 1164 ALL ENTITY mux21 IS 实体说明部分 PORT a b IN STD LOGIC s IN STD LOGIC y OUT STD LOGIC END ENTITY mux21 ARCHITECTURE mux21a OF mux21 IS 结构体说明部分 BEGIN PROCESS a b s BEGIN IF s 0 THEN y a ELSE y b END IF END PROCESS END ARCHITECTURE mux21a 这个程序是一个简单的 2 选 1 多路选择器的 VHDL 完整描述 它体现出了 VHDL 程序的一般结构 使用库 Use 定义区 实体 Entity 定义区 结构 Architecture 定义区 其中 Use 定义区描述的是这个程序使用的定义库 类似于 C 语言的头文件包括 鲁东大学毕业设计 3 3 Entity 定义区描述的电子的外部结构 就是指元件的输入和输出接口 它用以定义 一个芯片的管脚状态 Architecture 定义区里面是这个程序的关键部分 包括算法 功 能 硬件的行为等都是在 Architecture 区里面描述的 一个完整的 VHDL 程序是对一个功能元件从外部和内部两个方面来进行描述 由于 元件本身具有层次性 因此它既可以作为完成某一功能的逻辑电路单元而独立存在 也可以作为一个部件 和其他功能元件一起构成更复杂的功能元件或数字系统 因此 其单元的概念很清晰 可以灵活地应用于自顶向下的数字系统设计流程 2 2 自顶向下设计方法 本设计采用自顶向下的设计方法来完成电子钟系统 所谓自顶向下的设计方法 是指在设计过程中 从数字系统的最高层次出发 进行仿真验证 再将系统划分成各 个子模块 然后再对各个子模块进行仿真验证 合格之后经 EDA 开发平台由计算机自 动综合成门级电路 进行门级仿真验证 自顶向下的方法强调在每个层次进行仿真验 证 以保证系统性能指标的实现 以便于在早期发现和纠正设计中出现的错误 自顶向下设计方法有一些突出的优点 1 适应于复杂和大规模的数字系统的开发 便于层次式 结构化的设计思想 2 各个子系统可以同时并发 缩短设计周期 3 对于设计的系统进行层层分解 且在每一层次进行仿真验证 设计错误可以 在早期发现 提高了设计的正确性 4 逻辑综合之前的设计工作与具体的实现工艺 器件等无关 因此 设计的可 移植性良好 2 3 Quartus 开发平台 Quartus II 是 Altera 公司的第四代可编程逻辑器件集成开发环境 提供从设计输入 到器件编程的全部功能 Quartus II 可以产生并识别 EDIF 网表文件 VHDL 网表文件 为其他 EDA 工具提供了方便的接口 可以在 Quartus II 集成环境中自动运行其他 EDA 工具 Quartus II 软件的开发流程可概括为以下几步 设计输入 设计编译 设 计时序分析 设计仿真和器件编程 具有 FPGA 和 CPLD 芯片设计的所有阶段的解决 方案 1 设计输入 Quartus II 软件在 File 菜单中提供 New Project Wizard 向导 引导 设计者完成项目的创建 当设计者需要向项目中添加新的 VHDL 文件时 可以通过 New 选项选择添加 2 设计编译 Quartus II 编译器完成的功能有 检查设计错误 对逻辑进行综合 提取定时信息 在指定的 Altera 系列器件中进行适配分割 产生的输出文件将用于设 计仿真 定时分析及器件编程 3 设计定时分析 单击 Project 菜单下的 Timing Settings 选项 可以方便地完 鲁东大学毕业设计 4 4 成时间参数的设定 Quartus II 软件的时序分析功能在编译过程结束之后自动运行 并 在编译报告的 Timing Analyses 文件夹中显示 4 设计仿真 Quartus II 软件允许设计者使用基于文本的向量文件 vec 作为 仿真器的激励 也可以在 Quartus II 软件的波形编辑器中产生向量波形文件 vwf 作 为仿真器的激励 5 器件编程 设计者可以将配置数据通过 MasterBlaster 或 ByteBlasterMV 通信 电缆下载到器件当中 通过被动串行 Passive Serial 配置模式或 JTAG 模式对器件进 行配置编程 还可以在 JTAG 模式下给多个器件进行编程 2 4 CPLD 简介 CPLD 是 Complex Programmable Logic Device 的缩写 即复杂可编程逻辑器件 内部结构为 与或阵列 该结构来自于典型的 PAL GAL 器件的结构 任意一个 组合逻辑都可以用 与或 表达式来描述 所以该 与或阵列 结构能实现大量的组 合逻辑功能 CPLD 是一种用户根据各自需要而自行构造逻辑功能的数字集成电路 其基本设 计方法是借助集成开发软件平台 用原理图 硬件描述语言等方法 生成相应的目标 文件 通过下载电缆将代码传送到目标芯片中 实现设计的数字系统 CPLD 具有编程灵活 集成度高 设计开发周期短 适用范围宽 开发工具先进 设计制造成本低 对设计者的硬件经验要求低 标准产品无需测试 保密性强 价格 大众化等特点 可实现较大规模的电路设计 因此被广泛应用于产品的原型设计和产 品生产 一般在 10 000 件以下 之中 几乎所有应用中小规模通用数字集成电路的场合 均可应用 CPLD 器件 CPLD 器件已成为电子产品不可缺少的组成部分 3 电子钟系统设计方案 3 1 电子钟系统设计要求 1 能够对秒 分 小时进行计时 每日按 24 小时计时制 2 能够作为计时器使用 3 能够设定闹钟 3 2 系统设计方案概述及工作原理 根据系统设计要求 系统设计采用自顶向下设计方法 由正常计时模块 定时器 模块 闹钟模块 数码转换模块 扫描多路输出模块组成 1 首先按下复位开关 rst 进行复位清零操作 电子钟从新计时开始 2 为了便于时钟计数 需要 1hz 的时钟信号 而实验箱上提供给系统的频率大 于 1hz 这里取 22 1184MHZ 所以要对频率进行分频 用来实现系统输入信号产生一 鲁东大学毕业设计 5 5 个 1hz 的时钟信号 3 为了设定闹钟 本文设计了一个目标时间调整程序 将 alarm 的开关转成 on ok 键是 off 时 6 个数字即显示 00 00 00 以等待输入 当按下调秒键 sec tune 时 秒针将从 0 持续增加到 59 后 再返回 0 任何时刻弹出按键即显示当时的值 调 分键与调时键的原理与此相同 当 ok 键是 on 时 则停止设定 显示时间便到正常计 时 4 计时器的原理与闹钟程序有相似之处 将 stop 的开关转成 on ok 键是 off 时 6 个数字即显示 00 00 00 以等待输入 当按下调秒键 sec tune 时 秒针将从 0 持续增加到 59 后 再返回 0 任何时刻弹出按键即显示当时的值 调分键与调时键 的原理与此相同 当 ok 键是 on 时 则停止设定 显示时间为所设定的计时起始时间 并开始进行计时 直到计时器显示 00 00 00 为止 5 为了节省 6 个七段显示器显示所需的电流消耗 本文利用视觉暂留原理来让 七段显示器轮流来显示 4 电子钟顶层设计 4 1 顶层设计分析 对于电子钟的设计 这里将采用自顶向下的设计方法进行设计 因此首先需要进行 电子钟的顶层设计 本节将首先介绍电子钟的系统结构和模块划分 然后设计出顶层 VHDL 设计程序 根据前边叙述的电子钟的设计要求 工作原理和设计方案 这里给出设计系统结构 框图和外部管脚图分别如图 4 1 和图 4 2 所示 电子钟系统 正 常 计 时 模 块 定 时 器 模 块 闹 钟 模 块 数 码 转 换 模 块 扫 描 多 路 输 出 模 块 鲁东大学毕业设计 6 6 图 4 1 系统结构框图 图 4 2 系统外部管脚图 由电子钟的外部管脚图可知 系统的输入输出信号包括 1 复位开关信号 rst 输入信号 2 外部输入的时钟信号 clk 输入信号 3 闹钟触发信号 alarm 输入信号 4 定时器信号 stop 输入信号 5 定时器计时开始信号 ok 输入信号 6 秒 分 时调整信号 sec tune min tune hour tune 输入信号 7 闹钟 定时器标志信号 led alarm led stop 输出信号 8 LED 七段译码管的输出信号 seg4 0 6 seg2 0 6 输出信号 由图 4 1 知 系统划分了五个模块 划分的这五个模块 每个模块都包含若干个组 件 因此首先建立一个程序包把所有的组件包含在一起 以便于主程序模块的调用 然后再对每个组件进行编程设计 4 2 顶层电路图 顶层电路图见附页 5 各模块电路的设计 5 1 正常计数时间功能模块 系统必须维持一个持续不断计数的时钟 从时间 00 00 00 到 23 59 59 循环不 断 首先将 22 1184MHZ 的系统输入脉冲除以 22118400 得到 1HZ 的基本秒输入 然 后除以 60 得到分数 再除以 60 得到小时数 再除以 24 得一个满日指针 这些功能的 实现要用到三种组件 分频组件 60 进制计时组件 24 进制计时组件 鲁东大学毕业设计 7 7 5 1 1 分频组件设计 本设计采用的是 CPLD 芯片 EP1K100QC208 3 内部晶振为 22 1184MHz 但是数 码显示管位扫描信号和其他模块的工作频率是 1Hz 所以要用分频组件来对输入时钟 进行 22118400 分频 下面图 5 1 是生成的分频组件元器件图形 接口 clk 时钟输入 输入信号 22 1184MHz f1hz 1Hz 输出信号 图 5 1 分频组件器件图 在 Quartus 软件中进行仿真后 得到仿真时序图如图 5 2 图 5 2 分频组件仿真波形图 由图 5 2 知 输入信号的周期是 80ns 输出信号的周期是 1769472118ns 1769472118 除以 80 约等于 22118400 证明分频是正确的 5 1 2 60 进制计数器设计 为了让计算过程容易阅读 个位数信号 one 0 9 与十位数信号 ten 0 5 先以整数 形式出现 计算完成后再转换成位矢量形式 信号 ones 和 tens 便于以后转换成七段 LED 显示码 虽然十进制仅需 2 位的位矢量 但为统一以后的七段显示器输出显示的 鲁东大学毕业设计 8 8 需要 这里是以 4 位的位矢量表示的 if then 语句与适当的条件进位适合时钟计时 十进制的进位归零必须配合个位数的进位归零 而个位数的进位归零则不必配合十进 制的进位归零 所以在 if then 语句中 十进制的计数动作应放在内层 秒数的计数以 1Hz 的输入为触发信号 分数的计数以秒数的进位输出 full sec 作为触发 下面图 5 3 是 60 进制计数器器件图形 接口 carry 1hz 时钟信号或者是秒的进位信号 rst 复位信号 times 输出十进制的秒数或分数 full 进位信号 图 5 3 60 进制计数器器件图 在 Quartus 软件中进行仿真后 得到仿真时序图如图 5 4 图 5 4 60 进制计数器仿真波形图 由图 5 4 知 每来一个 carry 上升沿 计数器就加 1 当计数器当到达第 60 个上升 沿时 full 1 times 由 59 归零 仿真符合 60 进制计数器的要求 5 1 3 24 进制计数器设计 24 进制计数器的结构和原理与 60 进制计数器相类似 只是将除以 60 改为除以 24 并在接收 60 分进位指针 carry 时 检查是否同时为 23 小时 再决定进位与否 因 此个为数信号 one 与十位数信号 ten 先以整数形式出现 计算完成后再转换成位矢量 形式 便于以后转成了 LED 显示码 虽然十进制仅需 2 位的位矢量 但为统一以后的 七段显示器输出显示的需要 这里是以 4 位的位矢量表示的 个位数的进位归零在十 鲁东大学毕业设计 9 9 进制为 2 时 必须在 one 等于 3 时进位 同时送出进位指针 full 1 1 小时后将指针归 零 下面图 5 5 是生成的 24 进制计数器器件图形 接口 carry 1hz 时钟信号或者是分的进位信号 rst 复位信号 times 输出十进制的小时数 full 进位信号 图 5 5 24 进制计数器器件图 在 Quartus 软件中进行仿真后 得到仿真时序图如图 5 6 图 5 6 24 进制计数器仿真波形 由上图 5 6 知 carry 信号的周期是 1ms 当到达第 24 个上升沿时 full 1 times 归 零 仿真符合 24 进制计数器的要求 5 2 定时器设定于计时功能模块 在此模块中 先利用定时器组件设定定时器的计时时间 并执行计时动作 取得 计时中止指针 然后由计时中止指针标示出计时中止状态 led stop 1 5 2 1 定时器组件设计思路及原理图 将 stop 的开关转成 on ok 键是 off 时 6 个数字即显示 00 00 00 以等待输入 当按下调秒键 sec tune 时 秒针将从 0 持续增加到 59 后 再返回 0 任何时刻弹出按 键即显示当时的值 调分键与调时键的原理与此相同 当 ok 键是 on 时 则停止设定 鲁东大学毕业设计 1010 显示时间为所设定的计时起始时间 并开始进行计时 直到计时器显示 00 00 00 为 止 接口 rst 复位信号 hz1 系统时钟 1hz stop 输入停止信号 ok 计时是否开始 sec tune 按下以调秒 min tune 按下以调分 hour tune 按下以调时 stop sec 定时秒数 stop min 定时分数 stop hour 定时小时数 index 定时器输出停止信号 disp 显示信号 stop watch rstrst hz1hz1 stopstop okok sec tunesec tune min tunemin tune hour tunehour tune stop sec 5 0 stop sec 5 0 stop min 5 0 stop min 5 0 stop hour 4 0 stop hour 4 0 indexindex dispdisp 图 5 7 定时组件器件图 5 2 2 定时器仿真波形 在 Quartus 软件中进行仿真后 得到仿真时序图如图 5 8 鲁东大学毕业设计 1111 图 5 8 定时器仿真波形 由图 5 8 知 当 ok 1 时 确定定时时间为 5 秒 然后时间递减 减到零后完成 定时 此时 index 1 定时结束 5 3 闹钟模块设计 在此模块中 先利用 alarm set 组件确定闹钟的设定时刻 然后确认指针开关 ok 处 于 ok 处于 on 1 时 开始进行目前正常时间与闹钟设定时间的对比动作 对比完成即 设定 alarm index 为 1 然后再进一步标示出闹钟设定状态 led alarm 1 5 3 1 闹钟组件的设计思路及原理图 闹钟的功能就是设定特定的时间然后与正常时间对比 时间相同特定的等就会亮 这个组件的功能是调整秒分时以确定闹钟时间 并配合 alarm ok 两键来确定动作 接口 rst 复位信号 hz1 系统时钟 1hz alarm 输入闹钟信号 ok 闹钟是否开始 sec tune 按下以调秒 min tune 按下以调分 hour tune 按下以调时 sec 闹钟的秒数 min 闹钟的分数 hour 闹钟的小时数 图 5 9 闹钟组件器件图 鲁东大学毕业设计 1212 5 3 2 仿真波形 在 Quartus 软件中进行仿真后 得到仿真时序图如图 5 10 图 5 10 闹钟模块仿真波形 由图 5 10 当按下 alarm 键 即 alarm 1 时 可以进行调时分秒 然后当 ok 1 时 闹钟设定结束 5 4 输出选择与数码转换模块设计 通常 6 个时分秒数字所显示的是正常的计时闹钟 但在闹钟与定时器时间设定过程 中 必须显示正在设定的闹铃时间或定时器计时时间 另外 在定时器计时过程中 为了观察进行时间 必须显示正在计时的剩余时间 本模块的功能就是进行输出选择 并进行数码转换来完成将输出时间由整数形式转成 BCD 形式的工作 本模块用到了秒 分查表组件和小时查表组件 5 4 1 秒 分查表组件设计 在此设计中 为了计算方便 前面的都是以整数来处理时间 但在电路中 数值均 以二进制的形式存储 所以需要设计一个查表程序来将秒数或分数的 0 到 59 共 60 个 整数转换成二进制编码的十进制 BCD 表示法 以便将来转换成七段显示器格式输 出 下面图 5 11 是生成的秒 分查表器件图形 接口 interg 输入 0 到 59 的整数信号 one 输出个位的 BCD 码 ten 输出十位的 BCD 码 鲁东大学毕业设计 1313 图 5 11 秒 分查表组件器件图 在 Quartus 软件中进行仿真后 得到仿真时序图如图 5 12 图 5 12 秒 分查表组件仿真波形 由图知 十进制转化成二进制 one 代表十进制的个位 ten 代表十进制的十位 例如 18 是 00011000 仿真结果证明程序可行 5 4 2 小时查表组件设计 小时查表组件的思路与秒 分组件相似 只是将小时数 0 到 23 共 24 个整数转换成 二进制编码表示 下面图 5 13 是小时查表器件图 接口 interg 输入 0 到 23 的整数信号 one 输出个位的 BCD 码 ten 输出十位的 BCD 码 鲁东大学毕业设计 1414 图 5 13 小时查表组件器件图 在 Quartus 软件中进行仿真后 得到仿真时序图如图 5 14 图 5 14 小时查表组件仿真波形图 由图知 十进制转化成二进制 one 代表十进制的个位 ten 代表十进制的十位 例如 5 是 00000101 仿真结果证明程序可行 5 5 扫描多路输出模块 为了节省 IC 的输出引脚及耗电量 可以将 4 组数字输出或 2 组数字输出作为多路 输出 另外使用四合一型七段显示器与视觉暂留效应可降低显示耗电量 首先将 6 个 数字通过 bin2led 组件将 BCD 码转换成七段显示器码 然后分别将分秒的 4 个数字通 过 scan4 组件扫描输出 而将小时数的 2 个数字通过 scan2 组件扫描输出 最后完成整 个电子钟的功能 5 5 1 bin2led 组件设计 在一般电路中 数值均以二进制的形式存储与计算 但是要将其输出值七段译码管 显示时 则必须提供一个电路模块专门将二进制转换成十进制输出使用 此处我们以 查表方式来设计转换电路 使用并行语句 with select 列出 0 到 9 等 10 中对照数值情 况 若为 10 及其以上的数字 则显示错误信息 E 本设计用的实验平台的七段译码 管是共阴极的 下面图 5 15 是 bin2led 的器件图 鲁东大学毕业设计 1515 接口 bin 0 到 9 的二进制表示形式 输入信号 led 七段译码管显示管对应显示的数值 图 5 15 bin2led 组件器件图 在 Quartus 软件中进行仿真后 得到仿真时序图如图 5 16 图 5 16 bin2led 组件仿真波形图 由上图分析 输入的是 0 到 9 的二进制表示形式 输出的是七段显示译码 本设计 的七段显示器是共阴极的 所以 如输入时 6 的二进制 0110 输出是 1101101 仿真 证明程序是可行的 5 5 2 scan4 组件设计 在本组件中 sel 线选择控制输出 4 组数字 a b c d 轮流输出至多路输出 mux out 同时 电源控制信号 pa pb pc pd 也同步配合多路输出 下面图 5 17 是 scan4 器件图 接口 rst 复位信号 clk 外部时钟信号 a b c d 分秒的各位数的七段译码 pa pb pc pd 驱动信号 鲁东大学毕业设计 1616 图 5 17 scan4 组件器件图 在 Quartus 软件中进行仿真后 得到仿真时序图如图 5 18 图 5 18 scan4 仿真波形图 从上图可知 clk 每来一个上升沿 输出 muxout 就输出 a b c d 中的一组 同 时对应 pa pb pc pd 分别等于 1 如 clk 来第一个上升沿 输出 muxout 是 a 组 同 时 pa 1 符合多路输出的原理 此组件的程序可行 5 5 3 scan2 组件设计 本组件与 scan4 组件相似 sel 线选择控制输出 2 组数字 a b 轮流输出至多路输 出 mux out 同时 电源控制信号 pa pb 也同步配合多路输出 接口 rst 复位信号 clk 外部时钟信号 a b 小时的各位数的七段译码 pa pb 驱动信号 鲁东大学毕业设计 1717 图 5 19 scan2 器件图 在 Quartus 软件中进行仿真后 得到仿真时序图如图 5 20 图 5 20 scan2 仿真波形图 从上图可知 clk 每来两个上升沿 输出 muxout 就输出 a b 中的一组 同时对应 pa pb 分别等于 1 如 clk 来第一个上升沿 输出 muxout 是 a 组 同时 pa 1 当来第 三个上升沿时 输出 b 组 同时 pb 1 符合多路输出的原理 此组件的程序可行 6 各模块硬件实现结果 当各个模块仿真结束之后 就分配管脚 分配管脚如图 6 1 鲁东大学毕业设计 1818 图 6 1 分配管脚图 分配完管脚之后 再编译一次 编译通过之后 就可以下载到 CPLD 上了 如图 6 2 是编译结果 可以看到工程编译成功 图 6 2 编译结果图 6 1 正常计数模块的硬件实现结果 当程序下载到 CPLD 上时 即显示正常时间 从 00 00 00 开始 图 6 3 是其中 的一个时间点 00 00 07 鲁东大学毕业设计 1919 图 6 3 正常计数模块硬件实现结果 6 2 定时模块的硬件实现结果 当按下 stop 键 时间变为 00 00 00 如图 6 4 a 然后可以调秒 分 时 设定 定时器的起始时间 按下 ok 键 设定结束 时间开始递减 即定时开始 如图 6 4 b 定时结束后 led stop 灯亮 如图 6 4 c 然后显示正常时间 如图 6 4 d a b c d 图 6 3 定时模块硬件实现结果 鲁东大学毕业设计 2020 6 3 闹钟模块硬件实现结果 当按下 alarm 键 时间变为 00 00 00 如图 6 5 a 然后可以调秒 分 时 设 定闹钟的起始时间 按下 ok 键 设定结束 如图 6 5 b a b 图 6 5 闹钟模块硬件实现结果 7 小结 本电子钟系统采用自顶向下的方法 用硬件描述语言 VHDL 完成 该系统具有开 发周期短 设计灵活度高 模块分明 易于实现多功能化等特点 但是本系统也有不 足的地方 就是闹钟模块不太完善 有待改进 总体上说 本设计系统能够实现电子 钟的基本功能 能够较好的进行功能扩展 参考文献 1 林明权 VHDL数字控制系统设计范例 M 北京 电子工业出版社 2003 2 雷伏容 VHDL电路设计 M 北京 清华大学出版社 2006 3 陈荣 陈华 VHDL芯片设计 M 北京 机械工业出版社 2006 4 杨恒 李爱国等 FPGA CPLD最新实用技术指南 M 北京 清华大学出版社 2005 5 孙研鹏 张芝贤等 VHDL与可编程逻辑器件应用 M 北京 航空工业出版社 2006 6 辛春艳 VHDL硬件描述语言 M 北京 国防工业出版社 2002 7 曾繁泰 陈美金 VHDL程序设计 M 北京 清华大学出版社 2000 8 阎石 数字电子技术 M 北京 高等教育出版社 2006 9 Bob Zeidman 基于FPGA f1hz out std logic end div22118400 architecture behave of div22118400 is signal temp integer range 0 to 22118399 begin process clk begin if rising edge clk then temp 22118399 then f1hz 1 else f1hz 0 end if end if end process end behave 2 闹钟模块关键代码 entity alarm set is port rst hz1 in std logic alarm ok in std logic sec tune in std logic min tune in std logic hour tune in std logic sec min out integer range 0 to 59 hour out integer range 0 to 23 鲁东大学毕业设计 2222 end alarm set architecture behave of alarm set is signal sec temp min temp integer range 0 to 59 signal hour temp integer range 0 to 23 begin tuning process rst hz1 alarm ok begin if rst 1 then sec temp 0 min temp 0 hour temp 0 elsif rising edge hz1 then if alarm 1 and ok 0 then if sec tune 1 then if sec temp 59 then sec temp 0 else sec temp sec temp 1 end if end if if min tune 1 then if min temp 59 then min temp 0 else min temp min temp 1 end if end if if hour tune 1 then if hour temp 23 then hour temp 0 else hour temp hour temp 1 end if end if else null end if end if end process tuning sec sec temp min min temp hour hour temp end behave 3 定时模块关键代码 entity stop watch is port rst hz1 in std logic stop in std logic ok in std logic 鲁东大学毕业设计 2323 sec tune in std logic min tune in std logic hour tune in std logic stop sec stop min out integer range 0 to 59 stop hour out integer range 0 to 23 index out std logic disp out std logic end stop watch architecture behave of stop watch is signal a sec a min integer range 0 to 59 signal a hour integer range 0 to 23 begin process stop ok hz1 rst begin if rst 1 then index 0 disp 0 elsif rising edge hz1 then if stop 1 and ok 0 then if sec tune 1 then if a sec 59 then a sec 0 else a sec a sec 1 end if end if if min tune 1 then if a min 59 then a min 0 else a min a min 1 end if end if if hour tune 1 then if a hour 23 then a hour 0 else a hour a hour 1 end if end if disp 1 elsif stop 1 and ok 1 then if a sec 0 then if a min 0 then if a hour 0 then index 1 disp 0 鲁东大学毕业设计 2424 else a hour a hour 1 a min 59 a sec 59 end if else a min a min 1 a sec 59 end if else a sec a sec 1 index 0 disp 1 end if else disp 0 end if end if end process stop sec a sec stop min a min stop hour a hour end behave 一致 故需要在电路上加一个校时电路 同时标准的1HZ时间信号必须做到准确稳定 通 常使用石英晶体振荡器电路构成数字钟 数字钟的计数电路是用两个六十进制计数电路和 24 进制计数电路实现的 数字钟的计 数电路的设计可以用反馈清零法 当计数器正常计数时 反馈门不起作用 只有当进 位脉冲到来时 反馈信号将计数电路清零 实现相应模的循环计数 以 60 进制为例 当计数器从 00 01 02 59 计数时 反馈门不起作用 只有当第 60 个秒脉冲 到来时 反馈信号随即将计数电路清零 实现模为 60 的循环计数 CKA 14 Q0 12 CKB 1 Q1 9 Q2 8 Q3 11 R0 1 2 R0 2 3 R9 1 6 R9 2 7 U13 0 7490 CKA 14 Q0 12 CKB 1 Q1 9 Q2 8 Q3 11 R0 1 2 R0 2 3 R9 1 6 R9 2 7 U12 0 7490 CKA 14 Q0 12 CKB 1 Q1 9 Q2 8 Q3 11 R0 1 2 R0 2 3 R9 1 6 R9 2 7 U3 1 7490 CKA 14 Q0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度大型活动策划设计聘请专项合同
- 诸暨珍珠知识培训课件
- 2025装载机的买卖合同范本
- 2025年双边房屋租赁转让合同范本
- 红色景点培训课件教学
- 红细胞增多性疾病
- 诗经采薇节课件
- 红楼梦课件教学课件
- 商品车运输协议
- 诗经故国之思课件
- 2025河北保定市市直事业单位选调58人考试备考试题及答案解析
- 2025版机电安装监理服务合同
- 肩关节运动康复新策略-洞察及研究
- 新能源卡车修理知识培训课件
- 体育产业经营管理课件第一章导论
- 2023门球竞赛规则电子版图文并茂
- 部编版四年级语文上册第5课《一个豆荚里的五粒豆》优秀PPT课件
- 大班社会《班级规则我遵守》课件
- 能源概论__第一章能源概述PPT课件
- 小学一年级体育下册教案全册
- PTB220串行数字气压计用户手册
评论
0/150
提交评论