基于VHDL数字时钟的设计与实现.doc_第1页
基于VHDL数字时钟的设计与实现.doc_第2页
基于VHDL数字时钟的设计与实现.doc_第3页
基于VHDL数字时钟的设计与实现.doc_第4页
基于VHDL数字时钟的设计与实现.doc_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精选范本 供参考 1 引引 言言 随着科学技术的不断发展 人们对时间计量的精度要求越来越高 相对机械钟而言 数字钟能实现准确计时 并显示时 分 秒 而且可以方便 准确的对时间进行调节 在此基础上 还可以实现整点报时的功能 因此 数字钟的应用十分广泛 所谓数字时 钟 是指利用电子电路构成的计时器 1 1 课题的背景 目的课题的背景 目的 电子技术是一门应用很广 发展极为迅速的科学技术 尤其由于数字电子技术具有高 抗干扰能力 更高的可靠性和便于计算机处理等特点 近年来得到更加迅速的发展 数 字通讯设备 数字电视 数字照相机 数字摄象机等数字化产品近年如雨后春笋般大量 涌现 数字电子技术已经成为今后电子技术发展的主要方向 现代电子产品几乎渗透了 社会的各个领域 有力地推动了社会生产力的发展和社会信息化程度的提高 同时也使 现代电子产品性能进一步提高 产品更新换代的节奏也越来越快 钟表的数字化给人们生产生活带来了极大的方便 而且大大地扩展了钟表原先的报 时功能 诸如定时自动报警 按时自动打铃 时间程序自动控制 定时广播 定时启闭 电路 定时开关烘箱 通断动力设备 甚至各种定时电气的自动启用等 所有这些 都 是以钟表数字化为基础的 因此 研究数字钟及扩大其应用 有着非常现实的意义 通过数字时钟的设计 巩固计算机组成原理课程 理论联系实际 提高分析 解决 计算机技术的实际问题的独立工作能力 掌握用 VHDL 语言编制简单的小型模块 学会 数字钟的设计方法 熟悉集成电路的使用方法 初步掌握电子钟的设计方法并实现时间 的显示和校对 以及报时的功能 并能对数字电子钟进行扩展 数字钟是一种用数字电 路技术实现时 分 秒计时的装置 与机械式时钟相比具有更高的准确性和直观性 且 无机械装置 具有更更长的使用寿命 因此得到了广泛的使用 1 2 课程设计的内容课程设计的内容 本课程设计实现一个数字时钟 具有按秒走时功能 能够分别显示小时 2 位 24 小 时 分钟 2 位 秒 2 位 具有整点报时 时间调整功能 且能够对计时系统的小 时 分钟进行调整 也可设计成十二小时计时方案 AM PM 具有美观 清晰 人性 化的显示界面设计 走时精度不劣于 3 秒 月 本课程设计采用 VHDL 语言 以 MAXPLUSII 开发工具 根据系统设计的要求 系统设计采用自顶向下的设计方法 可以 精选范本 供参考 将该系统中的各功能模块细分为 秒计数模块 分计数模块 小时计数模块 报警模块 时间设置模块和译码显示模块六个部分 精选范本 供参考 2 2 EDAEDA VHDLVHDL 简介简介 2 1 EDA 简介简介 现代电子设计技术的核心就是 EDA Electronic Design Automatic 技术 利用 EDA 技术 电子设计师可以方便地实现 IC 设计 电子电路设计和 PCB 设计等工作 EDA 技 术已有 30 年的发展历程 现在 EDA 技术应用广泛 包括在机械 电子 通信 航空航 天 化工等各个领域 都有 EDA 的应用 无论是在产品设计 制造方面 还是在科研与 教学方面 EDA 已成为必不可少的一部分 掌握 EDA 技术已成为通信电子类专业的学生 学习及就业的基本素质 2 1 1 EDA 技术的概念 EDA 技术是在电子 CAD 技术基础上发展起来的通用软件系统 是指以计算机为工作 平台 融合了应用电子技术 计算机技术 信息处理及智能化技术的最新成果 进行电 子产品的自动设计 EDA 设计可分为系统级 电路级和物理实现级 物理级设计主要指 IC 版图设计 一般由半导体厂家完成 系统级设计主要面对大型复杂的电子产品 而一般民用及教学 所涉及基本是电路级设计 我们常用的 EDA 软件多属于电路级设计 电路级设计工作 是在电子工程师接受系统设计任务后 首先确定设计方案 并选 择合适的元器件 然后根据具体的元器件设计电路原理图 接着进行第一次仿真 其中 包括数字电路的逻辑模拟 故障分析 模拟电路的交直流分析 瞬态分析等 这一次仿 真主要是检验设计方案在功能方面的正确性 仿真通过后 根据原理图产生的电气连接网络表进行 PCB 板的自动布局布线 有条 件的还可以进行 PCB 后分析 其中包括热分析 噪声及窜扰分析 电磁兼容分析 可靠 性分析等 并可将分析后的结果参数反馈回电路图 进行第二次仿真 也称作后仿真 后仿真主要是检验 PCB 板在实际工作环境中的可行性 2 1 2 EDA 技术的历史与发展 EDA 技术发展历程大致可分为三个阶段 20 世纪 70 年代为计算机辅助设计 CAD 阶 段 人们开始用计算机取代手工操作进行 IC 版图编辑 PCB 布局布线 80 年代为计算机 辅助工程 CAE 阶段 与 CAD 相比 CAE 除了有纯粹的图形绘制功能外 又增加了电路 功能分析和结构设计 并且通过电气连接网络表将两者结合在一起 实现了工程设计 精选范本 供参考 20 世纪 90 年代为电子系统设计自动化 EDA 阶段 同时又出现了计算机辅助工艺 CAPP 计算机辅助制造 CAM 等 2 1 3 EDA 的应用 现在 EDA 技术应用广泛 包括在机械 电子 通信 航空航天 化工 矿产 生物 医学 军事等各个领域 都有 EDA 的应用 目前 EDA 技术已在各大公司 科研和教学 部门广泛使用 在产品设计与制造方面 EDA 技术可实现前期的计算机仿真 系统级模拟及测试环 境的仿真 PCB 的制作 电路板的焊接 ASIC 的设计等 在教学方面 我国高校是从九十年代中期开始 EDA 教育的 现在几乎所有理工科类 高校都开设了 EDA 课程 这些课程主要是让学生了解 EDA 的基本概念和原理 使用 EDA 软件进行电子电路课程的实验及从事简单系统的设计 2 1 4 EDA 常用软件 EDA 工具层出不穷 目前进入我国并具有广泛影响的 EDA 软件有 EWB PSpice OrCAD PCAD Protel Viewlogic Mentor Graphics Synopsys LSIl ogic Cadence 等等 这些工具都有较强的功能 一般可用于几个方面 例如很多软件都 可以进行电路设计与仿真 同时也可以进行 PCB 自动布局布线 可输出多种网表文件与 第三方软件接口 下面按主要功能或主要应用场合进行划分 1 电子电路设计与仿真工具 电子电路设计与仿真工具包括 PSpice EWB Matlab SystemView MMICAD 等 下面简单介绍前两种软件 1 PSpice 基于 Spice 的 PC 版软件 Spice Simulation Program with Integrated Circuit Emphasis 是由美国加州大学推出的电路分析仿真软件 是 20 世纪 80 年代世界上应用最 广的电路设计软件 1988 年被定为美国国家标准 1984 年 美国 MicroSim 公司推出了 PSpice PSpice 是一种强大的模拟和数字电路混合信号仿真软件 包括对中规模集成电路 MSI 和大规模集成电路 LSI 提供多种分析功能 而且仿真精度高 在国内普遍使用 2 EWB Electronic Workbench 软件 Interactive ImageTechnologies Ltd 在 20 世纪 90 年 代初推出的电路仿真软件 主要用于模拟和数字电路的仿真 高版本已更名为 Multisim 相对于其它 EDA 软件 它提供了万用表 示波器 信号发生器等虚拟仪器 该软件的界 面直观 易学易用 它的很多功能模仿了 Spice 的设计 分析功能也较强 2 PCB 设计软件 精选范本 供参考 PCB Printed Circuit Board 设计软件种类很多 如 Protel OrCAD PowerPCB Cadence PSD MentorGraphices 的 Expedition PCB Winboard Windraft IvexSPICE PCB Studio 等等 目前在我国使用最普遍的应属 Protel Protel 是 PROTEL 现更名为 Altium 公司在 20 世纪 80 年代末推出的 CAD 工具 它较 早在国内使用 普及率很高 早期的 Protel 主要作为印刷板自动布线工具使用 现在普遍 使用的是 Protel 99 SE 它是个完整的全方位电路设计系统 包含了电原理图绘制 模拟 电路与数字电路混合信号仿真 多层印刷电路板设计 可编程逻辑器件设计等功能 并 具有 Client Server 体系结构 同时还兼容一些其它设计软件的文件格式 Protel 软件功能 强大 界面友好 使用方便 它最具代表性的是电路设计和 PCB 设计 3 IC 设计软件 IC 设计工具很多 其中按市场所占份额排行为 Cadence Mentor Graphics 和 Synopsys 这三家都是 ASIC 设计领域相当有名的软件供应商 其它公司的软件相对来说 使用者较少 4 其它 EDA 软件 1 VHDL 语言 超高速集成电路硬件描述语言 Vhsic Hardware Deseription Languagt 简称 VHDL 是 IEEE 的一项标准设计语言 它源于美国国防部提出的超高速 集成电路 Very High Speed Integrated Circuit 简称 VHSIC 计划 是 ASIC 设计和 PLD 设计的一种主要输入工具 2 Veriolg HDL Verilog 公司推出的硬件描述语言 在 ASIC 设计方面与 VHDL 语言 平分秋色 2 2 VHDL 介绍介绍 VHDL 的英文全名是 Very High Speed Integrated Circuit HardwareDescription Language 诞生于 1982 年 1987 年底 VHDL 被 IEEE 和美国国防部确认为标准硬 件描述语言 自 IEEE 公布了 VHDL 的标准版本 IEEE 1076 简称 87 版 之后 各 EDA 公司相继推出了自己的 VHDL 设计环境 或宣布自己的设计工具可以和 VHDL 接口 此后 VHDL 在电子设计领域得到了广泛的接受 并逐步取代了原有的非 标准的硬件描述语言 1993 年 IEEE 对 VHDL 进行了修订 从更高的抽象层次和系 统描述能力上扩展 VHDL 的内容 公布了新版本的 VHDL 即 IEEE 标准的 1076 1993 版本 简称 93 版 现在 VHDL 和 Verilog 作为 IEEE 的工业标准硬件描 精选范本 供参考 述语言 又得到众多 EDA 公司的支持 在电子工程领域 已成为事实上的通用硬件 描述语言 有专家认为 在新的世纪中 VHDL 于 Verilog 语言将承担起大部分的数 字系统设计任务 VHDL 语言是一种用于电路设计的高级语言 它在80 年代的后期出现 最初是 由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围 较小的设计语言 VHDL 的英文全写是 VHSIC Very High Speed Integrated Circuit Hardware Descriptiong Language 翻译成中文就是超高速集成电路硬件描述语言 因此它的应用 主要是应用在数字电路的设计中 目前 它在中国的应用多数是用在FPGA CPLD EPLD 的设计中 当然在一些实力较为雄厚的单位 它也被用来设计ASIC VHDL 主要用于描述数字系统的结构 行为 功能和接口 除了含有许多具有硬 件特征的语句外 VHDL 的语言形式和描述风格与句法是十分类似于一般的计算机高 级语言 VHDL 的程序结构特点是将一项工程设计 或称设计实体 可以是一个元件 一个电路模块或一个系统 分成外部 或称可是部分 及端口 和内部 或称不可视部 分 既涉及实体的内部功能和算法完成部分 在对一个设计实体定义了外部界面后 一旦其内部开发完成后 其他的设计就可以直接调用这个实体 这种将设计实体分成 内外部分的概念是 VHDL 系统设计的基本点 与其他硬件描述语言相比 VHDL 具有以下特点 功能强大 设计灵活 VHDL 具有功能强大的语言结构 可以用简洁明确的源代 码来描述复杂的逻辑控制 它具有多层次的设计描述功能 层层细化 最后可直接生 成电路级描述 VHDL 支持同步电路 异步电路和随机电路的设计 这是其他硬件描 述语言虽不能比拟的 VHDL 还支持各种设计方法 既支持自底向上的设计 又支持 自顶向下的设计 既支持模块化设计 又支持层次化设计 支持广泛 易于修改 由于 VHDL 已经成为 IEEE 标准所规范的硬件描述语言 目前大多数 EDA 工具几乎都支持 VHDL 这为 VHDL 的进一步推广和广泛应用奠定 了基础 在硬件电路设计过程中 主要的设计文件是用VHDL 编写的源代码 因为 VHDL 易读和结构化 所以易于修改设计 强大的系统硬件描述能力 VHDL 具有多层次的设计描述功能 既可以描述系统 级电路 又可以描述门级电路 而描述既可以采用行为描述 寄存器传输描述或结构 描述 也可以采用三者混合的混合级描述 另外 VHDL 支持惯性延迟和传输延迟 精选范本 供参考 还可以准确地建立硬件电路模型 VHDL 支持预定义的和自定义的数据类型 给硬件 描述带来较大的自由度 使设计人员能够方便地创建高层次的系统模型 独立于器件的设计与工艺无关 设计人员用VHDL 进行设计时 不需要首先考 虑选择完成设计的器件 就可以集中精力进行设计的优化 当设计描述完成后 可以 用多种不同的器件结构来实现其功能 很强的移植能力 VHDL 是一种标准化的硬件描述语言 同一个设计描述可以被 不同的工具所支持 使得设计描述的移植成为可能 易于共享和复用 VHDL 采用基于库 Library 的设计方法 可以建立各种可再 次利用的模块 这些模块可以预先设计或使用以前设计中的存档模块 将这些模块存 放到库中 就可以在以后的设计中进行复用 可以使设计成果在设计人员之间进行交 流和共享 减少硬件电路设计 1 与其他的硬件描述语言相比 VHDL 具有更强的行为描述能力 从而决定了他 成为系统设计领域最佳的硬件描述语言 强大的行为描述能力是避开具体的器件结构 从逻辑行为上描述和设计大规模电子系统的重要保证 2 VHDL 丰富的仿真语句和库函数 使得在任何大系统的设计早期就能查验设计系 统的功能可行性 随时可对设计进行仿真模拟 3 VHDL 语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已 有设计的再利用功能 符合市场需求的大规模系统高效 高速的完成必须有多人甚至 多个代发组共同并行工作才能实现 4 对于用 VHDL 完成的一个确定的设计 可以利用EDA 工具进行逻辑综合和优 化 并自动的把 VHDL 描述设计转变成门级网表 5 VHDL 对设计的描述具有相对独立性 设计者可以不懂硬件的结构 也不必管理 最终设计实现的目标器件是什么 而进行独立的设计 精选范本 供参考 3 数字时钟设计过程数字时钟设计过程 3 1 设计规划设计规划 根据系统设计的要求 系统设计采用自顶向下的设计方法 可以将该系统中的各 功能模块细分为 秒计数模块 分计数模块 小时计数模块 报警模块 时间设置模 块和译码显示模块六个部分 先使用 VHDL 语言设计编译将这每个模块制作成图元 然后再使用图形编辑器进行总体的整合 系统的整体组装设计草图如图 3 1 所示 秒计数器模块 分计数器模块 时计数器模块 译码显示 模块 时间调整 模块 报警模块 7 段 数码管 显示 喇叭 系统 时钟 基本功能扩展功能外部设备 秒高位 进位 分高位 进位 图 3 1 系统总体设计草图 3 2 各模块原理及程序各模块原理及程序 现在就先对本系统中最基本的三项内容设计进行阐述 3 2 1 秒计数模块的秒计数模块的 VHDLVHDL 程序 程序 MIAO VHDMIAO VHD 秒计数模块中是以 60 进制进行循环的 故需要的秒数据输出应该是 7 位的 其中低 4 位用于秒的低位 而高 3 位在作为秒的高位 另外在该模块下的程序由于考虑到系统 功能中调整时钟和分钟的要求 故要在秒计数模块中另外加入复位信号以及分钟设置信 号 以下是该模块的 VHDL 源程序 LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL USE IEEE STD LOGIC UNSIGNED ALL ENTITY MIAO IS 精选范本 供参考 PORT CLK IN STD LOGIC 系统时钟信号 RESET IN STD LOGIC 系统复位信号 SETMIN IN STD LOGIC 分设置信号 ENMIN OUT STD LOGIC 分计数时钟信号 MOUT OUT STD LOGIC VECTOR 6 DOWNTO 0 秒计数值 END ENTITY MIAO ARCHITECTURE ART OF SECOND IS SIGNAL COUNT STD LOGIC VECTOR 6 DOWNTO 0 7 位计数器 SIGNAL ENMIN 1 ENMIN 2 STD LOGIC 前者是整秒进位 后者是调节分钟的信号 BEGIN MOUT COUNT 将计数器的值直接赋给秒计数 ENMIN 2 SETMIN AND CLK ENMIN 2 的内容是分设置信号和系统时钟信号的 与 运算 ENMIN ENMIN 1 OR ENMIN 2 ENMIN 的内容是整秒进位和调节分钟信号的 或 运算 PROCESS CLK RESET SETMIN BEGIN IF RESET 0 THEN 初始化 即系统复位信号的功能 COUNT 0000000 ENMIN 1 0 将整秒的进位置零 ELSIF CLK EVENT AND CLK 1 THEN IF COUNT 3 DOWNTO 0 1001 THEN 1 若 count 的低四位是 1001 IF COUNT 16 60 THEN 2 并且 count 的值小于 60 IF COUNT 1011001 THEN 3 且 count 的值为 59 ENMIN 1 1 COUNT 0000000 则 ENMIN 1 置 1 count 清 零 ELSE 否则 若只满足条件 1 2 COUNT COUNT 7 则直接向 count 的高 3 位进 1 END IF 精选范本 供参考 ELSE 若不满足 count 的值小于 60 COUNT 0000000 则直接将 count 清零 END IF ELSIF COUNT 16 60 THEN 若 count 的低四位不满足条件 1 满足 2 COUNT COUNT 1 ENMIN 1 0 count 加计数 进位标志字为零 ELSE 若条件 1 2 均不满足 COUNT 0000000 ENMIN 1 0 初始化 END IF END IF END PROCESS END ARCHITECTURE ART 3 2 2 分计数模块的 VHDL 程序 FEN VHD 分计数同秒计数基本相同 由于均是 60 进制的计数器 故思路完全一致 LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL USE IEEE STD LOGIC UNSIGNED ALL ENTITY FEN IS PORT INMIN IN STD LOGIC 系统时钟信号 RESET IN STD LOGIC 系统复位信号 DIPS IN STD LOGIC 时设置时钟信号 SETHOUR IN STD LOGIC 时设置信号 ENHOUR OUT STD LOGIC 时计数时钟信号 SOUT OUT STD LOGIC VECTOR 6 DOWNTO 0 秒计数值 BELL OUT STD LOGIC 时钟报警信号 END ENTITY FEN ARCHITECTURE ART OF MINUTE IS SIGNAL COUNT STD LOGIC VECTOR 6 DOWNTO 0 SIGNAL ENHOUR 1 ENHOUR 2 STD LOGIC 前者是整分进位字 后者是调节 时钟信号 BEGIN 精选范本 供参考 SOUT COUNT ENHOUR 2 SETHOUR AND DIPS ENHOUR ENHOUR 1 OR ENHOUR 2 BELL ENHOUR 1 将 ENHOUR 1 信号赋给 BELL PROCESS INMIN RESET SETHOUR BEGIN IF RESET 0 THEN COUNT 0000000 ENHOUR 1 0 ELSIF INMIN EVENT AND INMIN 1 THEN IF COUNT 3 DOWNTO 0 1001 THEN IF COUNT 16 60 THEN IF COUNT 1011001 THEN ENHOUR 1 1 COUNT 0000000 ELSE COUNT COUNT 7 END IF ELSE COUNT 0000000 END IF ELSIF COUNT 16 60 THEN COUNT COUNT 1 ENHOUR 1 0 AFTER 100 NS ELSE COUNT 0000000 ENHOUR 1 0 END IF END IF END PROCESS END ARCHITECTURE ART 报警信号 BELL 的如何获取 本来构思时把报警作为一个单独的功能模块来处理 可是在编程实验程序 以及具体的调试中发现 BELL 作为整点报时的信号 其功能与分 精选范本 供参考 钟计数中的 ENHOUR 1 是完全相同的 故只需将 BELL 放在分钟模块中一起进行处理 即将 ENHOUR 1 的值赋给了 BELL 3 2 3 时计数模块的 VHDL 程序 SHI VHD LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL USE IEEE STD LOGIC UNSIGNED ALL ENTITY SHI IS PORT INHOUR IN STD LOGIC 时 时钟信号 RESET IN STD LOGIC 系统复位信号 HOUT OUT STD LOGIC VECTOR 5 DOWNTO 0 时计数值 END ENTITY SHI ARCHITECTURE ART OF HOUR IS SIGNAL COUNT STD LOGIC VECTOR 5 DOWNTO 0 设计一个计数器 BEGIN HOUT COUNT 将计数器直接赋给 HOUT PROCESS INHOUR RESET BEGIN IF RESET 0 THEN 初始化 COUNT 000000 ELSIF INHOUR EVENT AND INHOUR 1 THEN INHOUR 上升沿有效 IF COUNT 3 DOWNTO 0 1001 THEN 1 COUNT 低 4 位为 9 IF COUNT 16 23 THEN 2 计数信号的值小于 23 COUNT COUNT 7 直接向高位进 1 ELSE 若不满足条件 2 COUNT 000000 直接将 COUNT 清零 END IF ELSIF COUNT 16 23 THEN 若满足条件 1 而不满足 2 COUNT COUNT 1 count 自身 1 ELSE COUNT 000000 END IF 精选范本 供参考 END IF END PROCESS END ARCHITECTURE ART 现在对图 3 1 中所描绘的两种特殊功能进行阐述与讲解 3 2 4 时间设置模块 VHDL 程序 SET VHD 本模块中要将各个状态以及同一时刻下六个 7 段数码管的数据接受情况描述清楚 以下特列一张各变化量与位选择信号的对应关系 上升沿次序 SETCLK 计数器 COUNT 位选择控制 信号 SEL 数码管 编号 显示输出 XSOUT 小数点控 制信号 DP 10000000秒低四位0 20010011秒高三位0 30100102分低四位1 40110113分高三位0 51001004时低四位1 61011015时高两位0 数码管的编号对应关系以及其他具体内容在后面的硬件分析中将做详细介绍 以下 是该模块的程序 LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL USE IEEE STD LOGIC UNSIGNED ALL ENTITY SET IS PORT SETCLK IN STD LOGIC 调时时钟信号 RESET IN STD LOGIC 系统复位信号 DP OUT STD LOGIC 点输出 SEC MIN IN STD LOGIC VECTOR 6 DOWNTO 0 分 秒计数值 HOUR IN STD LOGIC VECTOR 5 DOWNTO 0 时计数值 XSOUT OUT STD LOGIC VECTOR 3 DOWNTO 0 显示输出 SEL OUT STD LOGIC VECTOR 2 DOWNTO 0 位选择输出 表 3 1 时间计数模块中位对应 关系简图 精选范本 供参考 END ENTITY SET ARCHITECTURE ART OF SET IS SIGNAL COUNT STD LOGIC VECTOR 2 DOWNTO 0 设计一个 3 位计数器 BEGIN PROCESS SETCLK RESET BEGIN IF RESET 0 THEN 初始化 COUNT 101 THEN 若 COUNT 为 101 COUNT 000 将 COUNT 清零 ELSE COUNT COUNT 1 否则 自加一 END IF END IF END PROCESS PROCESS SETCLK RESET 对各状态的具体内容进行细化 BEGIN IF RESET 0 THEN XSOUT 0000 DP 0 SELXSOUT SEC 3 DOWNTO 0 若 COUNT 为 000 则秒的 低 4 位 DP 0 SELXSOUT SEC 6 DOWNTO 4 若 COUNT 为 001 则秒的高 3 位赋 DP 0 SELXSOUT MIN 3 DOWNTO 0 若 COUNT 为 010 则分的低 精选范本 供参考 4 位 DP 1 SELXSOUT MIN 6 DOWNTO 4 后面的均可照此法进行 DP 0 SELXSOUT HOUR 3 DOWNTO 0 DP 1 SELXSOUT HOUR 5 DOWNTO 4 DP 0 SELNULL END CASE END IF END PROCESS END ARCHITECTURE ART 此模块中 设计了一个具有 6 组状态的 3 位计数器 count 以调时时钟信号 SETCLK 的上升沿为激励响应 如果一个时刻的电子钟要显示的数字是六个的话 则送出并接受 这一组数字需要的时间是调时时钟信号 SETCLK 的周期 6 即 t T setclk 6 式 1 1 由于在后面将每个模块进行整合的时候 就存在如何协调每个计数器的周期 以减少 出错 并且节约时间与资源 通过这个公式可以轻松得出 并且助于理解各模块之间的 关系 3 2 5 译码模块的 VHDL 源程序 DELED VHD 程序比较简单 在此仅对译码输出和十进制中 0 9 对应关系列表说明 译码 B01111110000110101101110011111100110 译码 H3FH06H5BH4FH6EH 十进制01234 译码 B11011011111101000011111111111101111 译码 H6DH7DH07HFFH6FH 十进制56789 以下是源程序 DELED VHD 表3 2 译码输出与十进制对应 关系 精选范本 供参考 LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL USE IEEE STD LOGIC UNSIGNED ALL ENTITY DELED IS PORT NUM IN STD LOGIC VECTOR 3 DOWNTO 0 二进制数值 LED OUT STD LOGIC VECTOR 6 DOWNTO 0 译码后的输出数据 END DELED ARCHITECTURE ART OF DELED IS BEGIN process NUM BEGIN CASE NUM IS WHEN 0000 LEDLEDLEDLEDLEDLEDLEDLEDLEDLEDNULL END CASE END PROCESS END ARCHITECTURE ART 以上就是这个系统的所有模块 下面是对每一个模块的编译 仿真与调试 精选范本 供参考 4 4 系统仿真系统仿真 4 1 秒计数模块仿真 秒计数模块仿真 SECOND SCFSECOND SCF 秒计数模块仿真图如图 4 1 所示 1 从时序仿真图中可以清楚的看到在秒输出 MOUT 由 59 变成 00 时 产生一个高 电平的进位由分计数 ENMIN 输出 2 在分设置信号 SETMIN 高电平覆盖的区域内 系统时钟信号 CLK 经历了一 个高电平和两个低电平 以及两个下降沿和一个上升沿 通过观察可以发现在分计数 信号 ENMIN 出现的高电平是由系统时钟信号 CLK 的上升沿所激发的 这与程 序中设计要求一致 3 在系统复位信号 RESET 低电平 有效电平 的作用下 秒计数信号清零 并且 两者关系为异步关系 4 2 分计数模块仿真 分计数模块仿真 MINUTE SCFMINUTE SCF 分计数模块仿真图如图 4 2 所示 1 与秒计数模块相同 分计数模块中也有进位 进位信号是时计数时钟信号 ENHOUR 2 系统复位的功能与秒计数相同 不再赘述 1 2 3 1 2 3 图 4 2 分计数模块时序仿真 图 4 1 秒计数模块时序仿真 精选范本 供参考 3 此模块同样具有调节信号 是由时设置信号 SETHOUR 以及时设置时钟信号 DIPS 共同作用的 同秒计数类似 此调节的信号也是有脉冲信号的上升沿所产生 不同的是时设置信号 SETHOUR 在此仅仅是作为一个使能出现的 当时设置信号 SETHOUR 满足高电平时 DIPS 存在上升沿 ENHOUR 便会出现高电平 DIPS 可以 直接接脉冲信号 也可以接在复位开关上进行调节 4 3 时计数模块仿真 时计数模块仿真 HOUR SCFHOUR SCF 时计数模块仿真图如图 4 3 所示 与分 秒具有相同的系统复位信号 时计数输出信号 HOUT 为 24 进制 4 4 时间设置模块仿真 时间设置模块仿真 SET SCFSET SCF 时间设置模块仿真图如图 4 4 所示 图 4 4 中各输入输出信号的功能介绍 SETCLK 该模块的时钟信号 用于激励某些信号 包含位控制信号 显示信号 RESET 系统复位信号 SEC 3 0 秒的低四位 表示秒的个位 SEC 6 4 秒的高三位 表示秒的十位 MIN 3 0 分的低四位 表示分的个位 MIN 6 4 分的高三位 表示分的十位 HOUR 3 0 时的低四位 表示时的个位 HOUR 5 4 时的高两位 表示时的十位 DP 小数点的控制位 高电平有效 XSOUT 显示数据的输出 SEL 位选择 COUNT 该模块的计数器是 6 进制 1 2 2 3 4 图 4 3 时计数模块时序仿真 精选范本 供参考 1 如前面所有模块所描述的一样 RESET 为系统的复位信号 2 在 SETCLK 信号的上升沿激励下 将时间由秒到时钟 从低到高的设置排列下来后为 932171 当 SETCLK 出现上升沿时 每一个周期发送一个数字 当发送数字到第六个 周期时 全部一组数据便全部发送完毕 3 在 SETCLK 信号的上升沿激励下 还有另外一个变化量 那就是位选择输出 用于控 制数据发送给的对象 其实质就是一个 6 进制的计数器 4 小数点的控制输出 用于控制小数点的有效 起作用是用于分隔时 分 秒的显示 方便查看 对应于数码管的位置图以及该模块时序图中的 SEL 位选择信号 可以观察到 在每组数据的输出中 数码管 2 4 的小数点总是亮的 也就是说 DP 控制字的功能是 正确的 5 在第二条中 说到数据的发送与接受 现在对应 SEL 位选择的输出 可以验证一下 是否每组发出的数据都能够被完整的接受 并且显示出来 在 SEL 0 的时候 对应的 XSOUT 是 9 而当 SEL 依次等于 2 3 4 5 时 XSOUT 都对应为 3 2 1 7 1 每 一位都是从秒的个位到小时的十位分离后的 对应结果和预计的理论结果是完全相同的 并且中间也没有误差 4 5 译码模块仿真 DELED SCF 译码模块仿真图如图 4 5 所示 此模块的功能正确性可参考表格译码输出和十进制对应关系 进行验证 4 6 模块整合模块整合 将各模块编译完成后 将会在运行目录下生成一个 sym 的文件 这个文件就是图元 文件 在图形编辑器里面使用它 可以轻松完成实验的内容 编译后进行时序仿真 仿 真后的时序图如下图 4 6 图 4 5 译码模块仿真 图 4 4 时间设置模块时序仿真 精选范本 供参考 图 4 6 是没有加入 SETCLK 时钟信号时的时序图 通过此图可以方便的观察并验证 系统的功能实现状况 1 分调节的使能信号的实现情况 在 SETMIN 高电平有效的状态下 系统时钟信号 CLK

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论