




已阅读5页,还剩31页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2010 第六届 博创杯 全国大学生嵌入式设计大赛 作品设计报告 基于基于 FPGAFPGA 的多功能数字万年历的设计的多功能数字万年历的设计 Design of FPGA based Electronic Perpetual Calendar 设设 计计 报报 告告 目目 录录 摘摘 要要 I 第一章第一章 绪论绪论 1 1 11 1 电子技术的发展史电子技术的发展史 1 1 1 21 2 FPGA FPGA 可编程逻辑器件可编程逻辑器件 1 1 1 31 3 设计流程设计流程 2 2 第二章第二章 电子万年历的系统方案电子万年历的系统方案 4 2 12 1 电子万年历的系统概述电子万年历的系统概述 4 4 2 22 2 电子万年历的工作原理电子万年历的工作原理 4 4 2 32 3 电子万年历的时钟问题电子万年历的时钟问题 5 5 2 3 12 3 1 全局时钟全局时钟 5 2 3 22 3 2 门级时钟门级时钟 5 2 3 32 3 3 多级逻辑时钟多级逻辑时钟 6 2 3 42 3 4 波动式时钟波动式时钟 6 2 42 4 电子万年历的控制系统电子万年历的控制系统 7 7 2 4 12 4 1 主控制模块主控制模块 maincontrolmaincontrol 7 2 4 22 4 2 时间自动显示及其设置模块时间自动显示及其设置模块 time auto and settime auto and set 9 2 4 32 4 3 时间显示动态位选模块时间显示动态位选模块 time disp selecttime disp select 15 2 4 42 4 4 显示模块显示模块 disp data muxdisp data mux 16 2 4 52 4 5 秒表秒表 stopwatchstopwatch 17 2 4 62 4 6 日期自动显示和日期设置日期自动显示和日期设置 date maindate main 19 2 4 6 22 4 6 2 日期的设置日期的设置 setdatesetdate 20 2 4 72 4 7 闹钟模块闹钟模块 alarmclockalarmclock 21 2 4 82 4 8 阳历转阴历模块阳历转阴历模块 swicthtoswicthto 23 2 4 92 4 9 分频模块分频模块 fdivfdiv 24 第三章第三章 功能和指标功能和指标 27 3 13 1 系统的主要功能系统的主要功能 2727 3 23 2 系统的主要指标系统的主要指标 2727 第四章第四章 实现原理实现原理 28 4 14 1 系统的整体设计流程系统的整体设计流程 2828 4 24 2 下载硬件配置文件和运行软件程序下载硬件配置文件和运行软件程序 2929 第五章第五章 系统的硬件框图系统的硬件框图 30 第六章第六章 系统的各模块连接图系统的各模块连接图 31 第七章 系统的操作简介第七章 系统的操作简介 32 第八章第八章 测试设备测试设备 33 第九章第九章 系统说明系统说明 34 结论结论 35 参考文献参考文献 36 摘摘 要要 电子技术的发展更是日新月异 可以毫不夸张的说 电子技术的应用无处 不在 电子技术正在不断地改变我们的生活 改变我们的世界 在这快速发展 的年代 时间对人们来说是越来越宝贵 在快节奏的生活时 人们往往忘记了 时间 一旦遇到重要的事情而忘记了时间 这将会带来很大的损失 因此我们 需要一个定时系统来提醒这些忙碌的人 而数字化的钟表给人们带来了极大的 方便 由于可编程逻辑器件具有灵活性强 成本低 功耗低等特点 所以电子 万年历可以以可编程逻辑器件为核心 外加一些外围设备来实现 电子万年历 ElectronicElectronic PerpetualPerpetual CalendarCalendar 其完成的功能就像普通的 手机或者便携式电子产品上的电子钟一样 具有以下功能 时间的正常显示 时间的设置 秒表 闹钟 日期的正常显示 日期的设置以及阴阳历的转化 本设计采用 FPGA 为系统的控制器 FPGA 可以实现各种复杂的路基功能 模块大 密度高 它将所有器件集成在一块芯片上 减少了体积 提高了稳定 性 并且可应用 EDA 软件仿真 调试 易于进行功能控制 FPGA 采用并行的输 入输出方式 提高了系统的处理速度 适合作为大规模实时系统的控制核心 通过输入模块将参数输入给 FPGA FPGA 通过程序设计控制时钟 功能键 调整 键 从而实现电子万年历的基本功能 关键词 时序的合理安排 按键消抖 LED 显示 第一章第一章 绪论绪论 1 11 1 电子技术的发展史电子技术的发展史 随着应用系统向高速度 低功耗和低电压方向的发展 对电路设计的要求 越来越高 传统集成电路设计技术已无法满足性能日益提高的整机系统的要求 同时 由于 IC 设计与工艺技术水平的提高 集成电路规模越来越大 复杂程度 越来越高 目前已经可以将整个系统集成在一个芯片上 即片上系统 System On Chip 缩写为 SOC 这种芯片以具有系统级性能的复杂可编程逻辑器件 CPLD 和现场可编程门阵列 FPGA 为主要代表 与主要实现组合逻辑功能的 CPLD 相比 FPGA 主要用于实现时序逻辑功能 对于专用集成电路 ASIC 设计来 说 采用 FPGA 在实现小型化 集成化和高可靠性系统的同时 还可以减少风险 降低成本 缩短开发周期 本系统是采用 Verilog HDL 语言的电子万年历的开发与应用 是以可编程 逻辑器件作为其实现的物理设备 是以硬件的方式来实现控制算法 而可编程 逻辑器件的开发需要将控制算法通过 Verilog HDL 来实现 1 21 2 FPGA FPGA 可编程逻辑器件可编程逻辑器件 现场可编程门阵列 FPGA 器件是 Xilinx 公司于 1985 年首家推出的 它是一 种新型的高密度 PLD 采用 CMOS SRAM 工艺制作 FPGA 的结构与阵列 PLD 不同 其内部由许多独立的可编程逻辑模块组成 逻辑块之间可以灵活地相互连接 FPGA 结构一般分为三部分 可编程逻辑块 可编程 I O 模块和可编程内部连线 配置数据存放在片内的 SRAM 或者熔丝图上 基于 SRAM 的 FPGA 器件工作前需要 从芯片外部加载配置数据 配置数据可以存储在片外的 EPROM 或者计算机上 设计人员可以控制加载过程 在现场修改器件的逻辑功能 即所谓现场可编程 FPGA 的发展非常迅速 形成了各种不同的结构 按逻辑功能块的大小分类 FPGA 可分为细粒度 FPGA 和粗粒度 FPGA 细粒度 FPGA 的逻辑功能块较小 资源 可以充分利用 但是随着设计密度的增加 信号不得不通过许多开关 路由延 迟也快速增加 从而削弱了整体性能 导致速度降低 粗粒度 FPGA 的逻辑功能 块规模大 功能强 可以用较少的功能块和内部连线就能完成较复杂的逻辑功 能 易于获得较好的性能 但其缺点是资源不能充分利用 从逻辑功能块的结 构上分类 可分为查找表结构 多路开关结构和多级与非门结构 根据 FPGA 内 部连线的结构不同 可分为分段互连型 FPGA 和连续互连型 FPGA 两类 分段互 连型 FPGA 中具有多种不同长度的金属线 各金属线段之间通过开关矩阵或反熔 丝编程连接 走线灵活方便 但走线延时无法预测 连接互连型 FPGA 是利用相 同长度的金属线 连接与距离远近无关 布线延时是固定的和可预测的 1 31 3 设计流程设计流程 图 1 1 典型设计流程 高密度复杂可编程逻辑器件的设计流程包括设计准备 设计输入 功能仿 真 设计处理 时序仿真和器件编程及测试等七个步骤 设计要求说明 行为描述 功能验证和测试 物理版图 门级网表 逻辑综合 时序验 证 逻辑验证和测试 版图验证 版图规划和自动布 局布线 实现 RTL 级描述 图 1 1 表示的是超大规模集成电路设计的典型流程 图中不带阴影的方框 表示设计描述的层次 带阴影的方框表示设计的过程 在任何设计流程中 必须首先编写设计电路的设计指标和功能要求细节 从抽象的角度对电路的功能 接口和总体结构进行描述 在这一阶段无需考虑 电路的具体实现方式 接下来设计者使用行为级描述来分析电路的功能 性能 标准兼容性以及其他高层次的问题 行为级描述一般也使 HDL 来编写 综合工具的作用是将 RTL 级描述转换成门级网表 门级网表从逻辑门及其 相互连接关系的角度来描述电路的结构 综合工具需要保证综合出来的门级网 表满足时序 面积以及功耗的要求 自动布局 布线工具读入综合得到的网表 并生成电路的版图 电路的版图经过验证就可以制成芯片 第二章第二章 电子万年历的系统方案电子万年历的系统方案 2 12 1 电子万年历的系统概述电子万年历的系统概述 钟表的数字化给人们生产生活带来了极大的方便 而且大大地扩展了钟表 原先的报时功能 诸如定时自动报警 按时自动打铃 时间程序自动控制 定 时广播 定时启闭路灯等 所有这些 都是以钟表数字化为基础的 因此 研 究电子万年历及扩大其应用 有非常现实的意义 数字钟是一种用数字电路技 术实现时 分 秒计时的装置 与机械式时钟相比具有更高的准确性和直观性 且无机械装置 具有更长的使用寿命 因此得到了广泛的使用 电子万年历从 原理上讲是一种典型的数字电路 其中包括了组合逻辑电路和时序电路 因此 我们此次设计与制做电子万年历就是为了了解数字钟的原理 从而 学会制作数字钟 而且通过万年历的制作进一步了解各种在制作中用到的中小 规模集成电路的作用及使用方法 且由于电子万年历包括组合逻辑电路和时序 电路 通过它可以进一步学习与掌握各种组合逻辑电路与时序电路的原理与使 用方法 2 22 2 电子万年历的工作原理电子万年历的工作原理 时间正常显示功能 时间调整与显示 秒表功能 闹钟设置与查看 日期 显示 日期调整与设置 阴阳历的转换 调整键 1 SW1 主要用于闹钟设置 日期显示与调整 秒表 时间调整 与设置中的位置选择按钮 与功能键配合使用 2 号键功能模式 即时间调整与设置时 用作时 分 秒的移位 按一 下 将会实现 时 分 秒 的依次移位 便于在特定位置进行调整 按 键 消 抖 可 编 功能键 程 调整键 1 逻 调整键 2 辑 器 件 CPLD FPGA LED 显示模块 4 号键功能模式 即闹钟设置与查看时 同样用作时 分 秒的移位 按一下 将会实现 时 分 秒 的依次移位 便于在特定位置进行调整 6 号键功能模式 即日期调整与设置时 用作月 日的移位 按一下 将会实现 月 日 的依次移位 便于在特定位置进行调整 调整键 2 主要用于闹钟设置 日期显示与调整 秒表 时间调整与设置中 的调整按钮 与功能键配合使用 2 号键功能模式 即时间调整与设置时 用作时 分 秒的调整 按一 下 将会使得当前调整键 1 选择的位置数字增加 1 4 号键功能模式 即闹钟设置与查看时 同样用作时 分 秒的调整 按一下 将会使得当前调整键 1 选择的位置数字增加 1 6 号键功能模式 即日期调整与设置时 用作月 日的移位 按一下 将会使得当前调整键 1 选择的位置数字增加 1 2 32 3 电子万年历的时钟问题电子万年历的时钟问题 无论是用离散逻辑 可编程逻辑 还是用全定制器件实现任何数字电路 设计不良的时钟在极限温度 电压或制造工艺存在偏差的情况下将导致系统错 误的行为 所以可靠的时钟设计是非常关键的 在 FPGA 设计时通常采用四种 时钟 全局时钟 门控时钟 多级逻辑时钟和波动式时钟 多时钟系统是这四 种时钟类型的任意组合 2 3 12 3 1 全局时钟全局时钟 对于一个设计项目来说 全局时钟 或同步时钟 是最简单和最可预测的 时钟 在 FPGA 设计中最好的时钟方案是 由专用的全局时钟输入引脚驱动单 个主时钟去控制设计项目中的每一个触发器 FPGA 一般都具有专门的全局时 钟引脚 在设计项目时应尽量采用全局时钟 它能够提供器件中最短的时钟到 输出的延时 2 3 22 3 2 门级时钟门级时钟 在许多应用中 整个设计项目都采用外部的全局时钟是不可能或不实际的 所以通常用阵列时钟构成门控时钟 门控时钟常常同微处理器接口有关 例如 用地址线去控制写脉冲 每当用组合逻辑来控制触发器时 通常都存在着门控 时钟 在使用门控时钟时 应仔细分析时钟函数 以避免毛刺的影响 如果设 计满足下述两个条件 则可以保证时钟信号不出现危险的毛刺 门控时钟就可 以像全局时钟一样可靠工作 驱动时钟的逻辑必须只包含一个 与门 或一个 或门 如果采用任何附 加逻辑 就会在某些工作状态下出现由于逻辑竞争而产生的毛刺 逻辑门的一个输入作为实际的时钟 而该逻辑门的所有其他输入必须当成 地址或控制线 它们遵守相对于时钟的建立和保持时间的约束 2 3 32 3 3 多级逻辑时钟多级逻辑时钟 当产生门控时钟的组合逻辑超过一级 即超过单个的 与门 或 或门 时 该设计项目的可靠性将变得很差 在这种情况下 即使样机或仿真结果没 有显示出静态险象 但实际上仍然可能存在危险 所以我们不应该用多级组合 逻辑区作为触发器的时钟端 不同的系统 需要采用不同的方法消除多级时钟 并没有一个固定的模式 2 3 42 3 4 波动式时钟波动式时钟 许多系统要求在同一设计内采用多时钟 最常见的例子是两个异步微处理 器之间的接口 或微处理器和异步通信通道的接口 由于两个时钟信号之间要 求一定的建立和保持时间 所以上述应用引进了附加的定时约束条件 它们会 要求将某些异步信号同步化 而在许多应用中只将异步信号同步化还是不够的 当系统中有两个或两个 以上非同源时钟时 数据的建立和保持时间很难得到保证 设计人员将面临复 杂的时间分析问题 最好的方法是将所有非同源时钟同步化 使用 FPGA 内部的 锁相环 PLL 是一个效果很好的方法 但并不是所有 FPGA 都带有 PLL 而且 带有 PLL 功能的芯片大多价格昂贵 这时就需要使用带使能端的 D 触发器 并 引入一个高频时钟来实现信号的同步化 稳定可靠的时钟是保证系统可靠工作的重要条件 设计中不能够将任何可 能含有毛刺的输出作为时钟信号 并且尽可能只使用一个全局时钟 对多时钟 系统要特别注意异步信号和非同源时钟的同步问题 为了获得高驱动能 低抖动时延 稳定的占空比的时钟信号 一般使用 FPGA 内部的专用时钟资源产生同步时序电路的主工作时钟 专用时钟资源主要 指两部分 一部分是布线资源 包括全局时钟布线资源和长线资源等 另一部 分则是 FPGA 内部的 PLL 2 42 4 电子万年历的控制系统电子万年历的控制系统 此电子万年历系统主要有 9 个模块分别设计仿真 分别是以下 9 个模块 1 主控制模块 maincontrol 2 时间自动显示及其设置模块 time auto and set 3 时间显示动态位选模块 time disp select 4 显示模块 disp data mux 5 秒表模块 stopwatch 6 日期自动显示与设置模块 date main 7 闹钟模块 alarmclock 8 分频模块 fdiv 9 阴阳历转换模块 switchto 2 4 12 4 1 主控制模块主控制模块 maincontrolmaincontrol 该模块实现对各个功能模块的整体控制 包括对时间显示与调整 日期显 示与调整 闹钟显示与调整 秒表操作 阴阳历转换等的控制 流程图如 2 1 所 示 结构功能图如 2 2 所示 波形仿真图如 2 3 所示 开 始 SW3 1 Function 3 110 执行 case 语句 结 束 Function Function 3 b1Function 3 b0 图 2 1 主控制模块的流程图 图 2 2 主控制模块的结构功能图 图 2 3 主控制模块的波形仿真图 表 2 1 主控制模块的端口说明 输入端口输入端口功能功能 SW3功能号选择按键输入 分别有 7 个功能号 1 7 输出端口输出端口功能功能 Timepiece EN输出使能 时间自动工作并保持时间显示 TimeSet EN输出使能 时间设置与调整 Stopwatch EN输出使能 秒表功能 Alarmclock EN 输出使能 闹钟设置功能 一旦设置好闹钟后 将自 动开始工作 Date EN输出使能 日期显示功能 DateSet EN输出使能 日期调整与设置功能 Switchto EN输出使能 阳历转阴历的功能 SW3 是功能键 从波形图中可知 SW3 每出现一次上升沿 输出都会发生 相应的变化 即按照 Timepiece EN 时钟自动显示使能 TimeSet EN 时钟 设置与调整使能 Stopwatch EN 秒表功能使能 Alarmclock EN 闹钟时间 设置使能 Date EN 日期显示使能 DateSet EN 日期显示与设置使能 Switchto EN 阳历转阴历使能 的顺序依次输出有效波形 1 对相应的模块输入 有效使能 从而实现相应的功能 2 4 22 4 2 时间自动显示及其设置模块时间自动显示及其设置模块 time auto and settime auto and set 时间及其设置模块主要完成时间的自动正常运行与显示 以及在相应的功 能号下 实现时间的调整与设置 结构功能图如 2 4 2 1 所示 图 2 4 2 1 时间及其设置模块的结构功能图 2 4 2 12 4 2 1 时间自动显示模块时间自动显示模块 timepiece maintimepiece main 模块主要完成时间自动增加与显示功能 即为正常的自动模式运行 其结构 功能图如 2 4 2 2 所示 波形仿真图如 2 4 2 3 所示 表 2 2 是时间模块的端口 说明 图 2 4 2 2 时间模块的结构功能图 图 2 4 2 3 时间模块的波形仿真图 表 2 2 时间模块的端口说明 输入端口输入端口功能功能 CLK时间计数时钟输入 Timepiece En时间自动工作使能信号输入 当其电平为高时 使能时间 自动工作 输出端口输出端口功能功能 day EN日计数使能 当累积到了 24 小时后 日就要自动的增加一 天 hour0 hour1小时输出 minute0 minute1分钟输出 second0 second1秒输出 当 Timepiece EN 为 1 时 即处于时间自动工作状态 即每出现一次时钟信 号 clk 计数一次 先计数 second0 当计数到 1001 即十进制的 9 时 向 second1 发出一个计数信号 此时 second1 进行一次计数 类推 second1 计数 到 0101 即十进制的 5 且 second0 计数到 1001 即十进制的 9 时 minute0 则进行一次计数 按照此规律进行时间的计数 当计满 24 小时 向 day EN 发 出一个计数信号 即此使能端输出有效信号 1 进行日期的计数 2 4 2 1 12 4 2 1 1 秒自动计时子模块秒自动计时子模块 second countersecond counter 构功能图如 2 4 2 4 所示 流程图如 2 4 2 5 所示 图 2 4 2 4 秒自动计时子模块的结构功能图 2 4 2 1 22 4 2 1 2 分自动计时子模块分自动计时子模块 minute counterminute counter 结构功能图如 2 4 2 6 示 流程图同理于 2 4 2 5 所示 图 2 4 2 6 分自动计时子模块的结构功能图 2 4 2 1 32 4 2 1 3 小时自动计时子模块小时自动计时子模块 hour counterhour counter 结构功能图如 2 4 2 7 所示 流程图同理于 2 4 2 5 所示 图 2 4 2 7 小时自动计时子模块的结构功能图 开 始 EN 1 b1 second data0 4 b1001 second data0 second data0 4 b1 E0 1 b0 second data0 4 b0 second data1 4 b0101 second data1 second data1 4 b1E0 1 b1 second data1 4 b0 结 束 图 2 4 2 5 秒自动计时子模块的流程图 2 4 2 22 4 2 2 时间设置模块时间设置模块 timesettimeset 该模块主要完成对时间的设置相关的闪烁显示控制以及时间中的小时 分 钟 秒等数据的改变 流程图如 2 4 2 8 所示 结构功能图如 2 4 2 9 所示 波 形仿真图如 2 4 2 10 所示 开 始 初始化 将当前时 间赋予设置后的时 间 Timeset EN 1 disp drive 3 b101 disp drive disp drive 3 b1 disp drive 3 b0 依 SW2 按位进行数字调整 结 束 图 2 4 2 8 时间设置模块的流程图 图 2 4 2 9 时间设置模块的结构功能图 图 2 4 2 10 时间设置模块的波形仿真图 表 2 3 时间设置模块的端口说明 输入端口输入端口功能功能 TimeSet EN时间设置使能 当其电平为高时 时间设置有效 SW1 SW2调整键 1 与调整键 2 输入信号 hour1 hour0当前时间的小时数输入 minute1 minute0当前时间的分钟数输入 second0 second1当前时间的秒数输入 输出端口输出端口功能功能 hour set1 hour set0设置时间后的小时数 minute set1 minute set0设置时间后的分钟数 second set1 second set0设置时间后的秒数 disp drive设置中的闪烁显示设置 当 Timeset EN 为 1 时 即实现时间设置功能 SW1 实现时间格式中小时 高 低位 分钟高 低位 秒钟高 低位的位选 即每出现一个 SW1 上升沿 disp drive 的相应数值加 1 选择具体的需要调整的位置 SW2 实现相应得位 的数值得调整 即每出现一个 SW2 上升沿 相应位的数值增加 1 2 4 2 32 4 2 3 时间自动显示和时间设置多路选择器时间自动显示和时间设置多路选择器 time muxtime mux 该模块用来分时向显示单元传输显示数据 流程图如 2 4 2 11 所示 结构 功能图如 2 4 2 12 所示 波形仿真图如 2 4 2 13 所示 开 始 依输入条件 判断是自动显示 时间 或显示调整后的时间 Timeset EN 1 显示设置后的时间 显示自动模式时的时间 结 束 图 2 4 2 11 多路选择模块的流程图 图 2 4 2 12 多路选择模块的结构功能图 图 2 4 2 13 多路选择模块的波形仿真图 表 2 4 多路选择模块的端口说明 输入端口输入端口功能功能 TimeSet EN时间设置使能信号 hour1 hour0自动模式中当前时间的小时数输入 minute1 minute0自动模式中当前时间的分钟数输入 second0 second1自动模式中当前时间的秒数输入 hour set1 hour set0时间设置后的小时数输入 minute set1 minute set0时间设置后的分钟数输入 second set1 second set0时间设置后的秒数输入 输入端口输入端口功能功能 hour 1 hour 0当前需要显示的小时输出 minute 1 minute 0当前需要显示的分钟输出 second 0 second 1当前需要显示的秒输出 TimeSet EN 是时间设置使能信号 当 TimeSet EN 为 1 时 显示调整后的 时间 当 TimeSet EN 为 0 时 则显示自动工作时的信号 hour1 hour0 minute1 minute0 second1 second0 表示的是当前自动工作状 态时的时间输出值 hour set1 hour set0 minute set1 minute set0 second set1 second set0 表 示的是手动设置的时间输出值 hour 1 hour 0 minute 1 minute 0 second 1 second 0 表示的是当前要 显示的时间输出值 根据 TimeSet EN 的不同变化 输出值会发生相应的变化 2 4 32 4 3 时间显示动态位选模块时间显示动态位选模块 time disp selecttime disp select 该模块用来分时显示时间数据 但是在选择合适的时间间隔下 人眼并不 能分辨出是分时显示的 这样显示的方式可以降低功耗 结构功能图如 2 4 2 14 所示 波形仿真图如 2 4 2 15 所示 图 2 4 2 14 时间显示动态位选模块的结构功能图 图 2 4 2 15 a 时间显示动态位选模块的波形仿真图 图 2 4 2 15 b 时间显示动态位选模块的波形仿真图 表 2 5 时间显示动态位选模块的端口说明 输入端口输入端口功能功能 clk 1kHz1kHz 时钟信号输入 用于动态显示时间 clk 200Hz200Hz 时钟信号输入 用于闪烁显示时间 Time EN时间自动工作模式使能 TimeSet EN时间设置使能 Stopwatch EN闹钟设置使能 Timeset disp driv e 时间设置数据显示的同步信号 输出端口输出端口功能功能 time disp select显示动态位选输出信号 TimeSet EN 表示时间设置使能 Time EN 表示时间自动显示使能 clk 1kHz 用于动态显示时间 clk 200Hz 用于闪烁显示时间 timeset disp drive 表示时间设置数据显示的同步信号 time disp select 表示显示动态位选输出信 号 当 TimeSet EN 为 0 Time EN 为 1 时 以 clk 1kHz 为是时钟信号 输出 自动显示的时间 按位依次显示 当 TimeSet EN 为 1 Time EN 为 0 时 则 以 clk 200Hz 为时钟信号 输出以 timeset disp drive 对应的位置 2 4 42 4 4 显示模块显示模块 disp data muxdisp data mux 该模块是时间 日期等数据用数码管显示的控制与数据传输模块 包括数 据的传输以及 BCD 码的译码等 部分结构功能图如 2 4 2 16 所示 部分波形仿 真图如 2 4 2 17 所示 图 2 4 2 16 显示模块的部分结构功能图 图 2 4 2 17 显示模块的部分波形仿真图 显示原理采用的是七段数码管的显示原理 如 2 4 2 18 所示 图 2 4 2 18 七段数码管的显示原理 2 4 52 4 5 秒表秒表 stopwatchstopwatch 该模块实现秒表的功能 在实际中 可以通过改变自动工作模式下的时间 的计数时钟的频率来实现秒表的功能 流程图如 2 4 2 25 所示 结构功能图如 2 4 2 26 所示 波形仿真图如 2 4 2 27 所示 开 始 EN 1 秒表工作状态 时间自动工作状态 结 束 图 2 4 2 25 秒表模块的流程图 图 2 4 2 26 秒表模块的结构功能图 图 2 4 2 27 秒表功能的波形仿真图 表 2 6 秒表模块的端口说明 输入端口输入端口功能功能 clk1时间自动工作模式的时钟信号 clk2秒表工作模式的时钟信号 EN 秒表控制使能 当其电平为高时 工作在秒表状态 否则 工作在时间的自动模式 输出端口输出端口功能功能 F out数字钟的工作时钟 EN 表示秒表使能控制信号 clk1 表示自动工作模式的时钟信号 clk2 表示 秒表工作模式的时钟信号 故当 EN 为有效信号 1 时 输出 F out 与 clk2 同 即处于秒表工作状态 同理 EN 为 0 时 输出 F out 与 clk1 同 即处于自动工 作状态 2 4 62 4 6 日期自动显示和日期设置日期自动显示和日期设置 datedate main main 该模块实现日期的显示和日期的调整与设置 结构功能图如 2 4 2 28 所示 图 2 4 2 28 时间显示与设置模块的结构功能图 2 4 6 12 4 6 1 日期自动显示日期自动显示 autodateautodate 该模块实现的是日期的自动工作功能 结构功能图如 2 4 2 29 所示 波形 仿真图如 2 4 2 30 所示 图 2 4 2 29 日期自动工作模块的结构功能图 图 2 4 2 230 a 日期自动工作模块的波形仿真图 图 2 4 2 30 b 日期自动工作模块的波形仿真图 表 2 7 日期自动工作模块的端口说明 输入端口输入端口功能功能 EN1自动工作模式下的递增使能信号 来自时间模块的进位 EN2手动设置或调整日期使能信号 输出端口输出端口功能功能 month1 month0当前的月份 day1 day0当前的日期 E01当前工作模式指示 2 4 6 22 4 6 2 日期的设置日期的设置 setdatesetdate 该模块用于日期 结构功能图如 2 4 2 31 所示 图 2 4 2 31 日期设置模块的结构功能图 2 4 6 32 4 6 3 日期自动显示和日期设置的控制模块日期自动显示和日期设置的控制模块 datecontroldatecontrol 该模块主要完成日期的自动显示和日期的设置 结构功能图如 2 4 2 33 所示 图 2 4 2 32 日期设置模块的结构功能图 2 4 72 4 7 闹钟模块闹钟模块 alarmclockalarmclock 开 始 设置的闹钟与当前 时间比较 alarm 1 b1 闹钟工作 alarm 1 b0 闹钟不工作 EN 1 disp drive 3 b101 disp drive disp drive 3 b1 disp drive 3 b0 根据不同的 disp drive 选择 在不同的位置上 的数值加 1 结 束 图 2 4 2 19 闹钟模块的流程图 该模块实现的功能包括闹钟的设置以及闹钟时间到后的提示 流程图如 2 4 2 19 所示 结构功能图如 2 4 2 20 所示 波形仿真图如 2 4 2 21 所示 clk 200Hz EN SW1 SW2 hour1 3 0 hour0 3 0 minute1 3 0 minute0 3 0 second1 3 0 second0 3 0 alarm alarmclock disp select 7 0 hour set1 3 0 hour set0 3 0 minute set1 3 0 minute set0 3 0 second set1 3 0 second set0 3 0 alarmclock inst 图 2 4 2 20 闹钟模块的结构功能图 图 2 4 2 21 闹钟模块的波形仿真图 表 2 8 闹钟模块的端口说明 输入端口输入端口功能功能 clk 200Hz用于设置中的闪烁显示的时钟 EN闹钟设置时能 SW1 SW2调整键 1 与调整键 2 hour1 hour0当前小时 minute1 minute0当前分钟 second1 second0当前秒 输出端口输出端口功能功能 alarm闹钟时间到的提示信号输出 alarmclock disp select闹钟设置中位选信号 EN 为闹钟设置使能 clk 200Hz 用于设置中的闪烁显示的时钟 其中还定 义了 hour set1 hour set0 minute set1 minute set0 second set1 second set0 用 来表示已经设置好的闹钟时间 闹钟一直处于工作状态 当前时间 hour1 hour0 minute1 minute0 second1 second0 与设置的闹钟时间相 比较 当小时 分钟 秒钟的时间完全相同时 则闹铃响 输出信号 alarm 为 有效信号 1 SW1 和 SW2 是调整键 分别控制位选和数值的调整 2 4 82 4 8 阳历转阴历模块阳历转阴历模块 swicthtoswicthto 该模块实现的功能包括阳历日期转换为对应的阴历日期 结构功能图如 2 4 2 25 所示 表 2 9 为模块的输入口和输出口的说明 CLK auto year3 3 0 auto year2 3 0 auto year1 3 0 auto year0 3 0 auto month1 3 0 auto month0 3 0 auto day1 3 0 auto day0 3 0 Switch year3 3 0 Switch year2 3 0 Switch year1 3 0 Switch year0 3 0 Switch month1 3 0 Switch month0 3 0 Switch day1 3 0 Switch day0 3 0 swtichto inst 图 2 4 2 25 阳历转阴历模块的流程图 表 2 9 阳历转阴历模块的端口说明 输入端口输入端口功能功能 CLK系统的主时钟 auto year3 auto year2 auto year1 auto year0 当前阳历年份的输入 auto month1 auto month0 当前阳历月份的输入 auto day1 auto day0 当前阳历天的输入 输出端口输出端口功能功能 Swicth year3 Swicth year2 Swicth year1 Swicth year0 转换后阴历年份的输出 Swicth month1 Swicth month0 转换后阴历月份的输出 Swicth day1 Swicth day0 转换后阴历天的输出 2 4 92 4 9 分频模块分频模块 fdivfdiv 该模块完成全局时钟信号分频输出 200Hz 60Hz 1Hz 的三种时钟信号 流程图如 2 4 2 22 所示 结构功能图如 2 4 2 23 所示 波形仿真图如 2 4 2 24 所示 开始 输入 1kHz 时钟信号 posedge clk CNT 4 输出 200Hz 时钟信号 f200Hz CNT CNT 1 posedge f200Hz CNT2 2 CNT2 CNT2 1 输出 60Hz 时钟信 号 posedge f200Hz CNT3 199 CNT3 CNT3 1 输出 1Hz 时钟信号 结 束 图 2 4 2 22 分频模块的流程图 clkf1000Hz f200Hz f60Hz f1Hz fdiv inst 图 2 4 2 23 分频模块的结构功能图 图 2 4 2 24 分频模块的波形仿真图 表 2 10 闹钟模块的端口说明 输入端口输入端口功能功能 clk全局系统时钟 输出端口输出端口功能功能 F1000Hz1000Hz 时钟信号时钟信号 f200Hz200Hz 时钟信号 f60Hz60Hz 时钟信号 f1Hz1Hz 时钟信号 clk 是输入的时钟信号 然后进行分频 分别产生所需的时钟信号 第三章第三章 功能和指标功能和指标 3 13 1 系统的主要功能系统的主要功能 电子万年历 Electronic Perpetual Calendar 其完成的功能就像普通的手机 或者便携式电子产品上的电子钟一样 具有以下功能 1 时间的正常显示 2 时间的设置 3 秒表 4 闹钟 5 日期的正常显示 6 日期的设置 7 阴阳历的转化 3 23 2 系统的主要指标系统的主要指标 第四章第四章 实现原理实现原理 4 14 1 系统的整体设计流程系统的整体设计流程 系统的硬件划分 Quartus II 硬件设计输入 设置时钟 管脚分配 编译 生成配置文件 JTAG 下载配置文件 执行软件程序 图 4 1QuartusII 中的硬件设计 首先在 QuartusII9 0 里面 新建一个图形设计文件 BlockDiagram SchematicFile 在次文件中添加上面设计好的嵌入式系统并 添加输入和输出管脚及时钟和复位管脚 由于本次设计用到多个非同步时钟信 号 故还需要调用平台中的锁相环进行时钟信号的频率和相位的调整 其次 在逻辑框图设计好后 进行管脚分配 管脚分配是 FPGA 设计的 一项必须做的工作 在设计完 FPGA 芯片里面的内容后需要把设计的顶层的接 口与 FPGA 片外的管脚连接起来 并修改 QuartusII 管脚的名字 保证与 qsf 文件中名字一致 这样才能保证设计的正确运行 再次 将未使用的管脚设置三态 平台核心板上的 FPGA 共有 672 个 管脚 但是只是使用其中的一少部分 还有大量未使用的管脚 我们需要对这 些未使用的管脚进行设置 这一步是非常重要的 因为在 QuartusII 默认的情 况下 未使用的输出管脚是接地的 意思是设置为低电压 也可以称为逻辑 0 如果不进行设置的话 这些管脚都处于工作状态 一方面 FPGA 的耗电量增 加芯片会发烫 这样会降低 FPGA 芯片的寿命 另一方面 处于工作状态的 管脚可能相互影响 设置好后 保存文件 最后 编译工程 编译结束后 只要没有错误就可以 到此 QuarutsII 的 硬件设计就完成了 4 24 2 下载硬件配置文件和运行软件程序下载硬件配置文件和运行软件程序 首先安装 USB Blaster 把 USB Blaster 连接到计算机的 USB 口 另 一端接到平台核心板的 FPGA JTAG 口 然后通上 12v 电源 注意 不能在 带电的情况下插拔 USB Blaster 其次 回到 QuartusII 中 找到工程目录下的 XXX Sof 文件 最后 相应的配置下载的环境 直接下载 sof 文件到 flash 中 以实现系统 的功能 第五章第五章 系统的硬件框图系统的硬件框图 按 键 消 抖 可 编 功能键 程 调整键 1 逻 调整键 2 辑 器 件 CPLD FPGA LED 显示模块 该系统分为软件部分和硬件部分 软件的框图及流程图在前面已有详细介 绍 在 QuartusII 中完成硬件的连接图 分别对应到开发板上的各个模块 具 体的硬件连接图如上 硬件部分的设计在系统的整体设计中的地位至关重要 没有良好的正确的硬件部分设计 编好的软件程序就没法下到开发板中 也就 没有办法让开发板上的 cpu 执行软件部分 按键消抖 由于在按键过程中 人手的抖动 会产生一些随机的脉冲 在 这些脉冲中 有一些脉冲的宽度小于系统的一个时钟周期 有的大于一个系统 时钟周期 这样就造成系统逻辑上的混乱 影响各具体功能的实现 为了解决 此问题 将功能键 SW3 调整键 SW1 和调整键 SW2 分别经过一个延时电路 脉冲宽度小于系统时钟周期的将被滤除 而脉冲宽度大于系统时钟周期的将被 延迟相应的周期 将会被延迟该脉冲周期是系统脉冲周期倍数个周期 经过延 迟电路后 在经过一级微分电路 将被延迟的周期脉冲还原成和系统时钟周期 一样的脉冲 这样在按键的过程中 就会滤除不需要的脉冲 而得到稳定的和 系统时钟周期一样的按键脉冲 从而实现消抖 第六章第六章 系统的各模块连接图系统的各模块连接图 将各个主模块综合成电子万年历系统 其包括 fdiv 分频模块 maincontrol 主控制模块 stopwatch 秒表模块 time auto and set 时间及其设置 模块 date main 日期及其设置模块 alarmclock 闹钟模块 time disp select 时 间显示动态位选模块及 disp data mux 显示模块 阴阳历转换模块 switchto 该 系统的部分模块连接如下 EN clk1 clk2 F out stopwatch inst2 Date EN date disp clk day EN Date Set EN SW1 SW2 month1 3 0 month0 3 0 day1 3 0 day0 3 0 Disp select date 5 0 date main inst4 clk 1kHz clk 200Hz Time EN TimeSet EN timeset disp drive 2 0 time disp select 5 0 time disp select inst6 clk f200Hz f60Hz f1Hz fdiv inst5 SW3Timepiece EN TimeSet EN Stopwatch EN Alarmclock EN Date EN DateSet EN maincontrol inst3 CLK Timepiece EN TimeSet EN SW1 SW2 Day EN hour 1 3 0 hour 0 3 0 minute 1 3 0 minute 0 3 0 second 1 3 0 second 0 3 0 TimeSet disp drive 2 0 time auto and set inst1 EN SW1 SW2 clk 200Hz hour1 3 0 hour0 3 0 minute1 3 0 minute0 3 0 second1 3 0 second0 3 0 alarm alarmclock disp select 5 0 alarmclock inst11 Timepiece EN TimeSet EN Stopwatch EN time disp select 5 0 Alarmclock EN alarmclock disp select 5 0 hour1 3 0 hour0 3 0 minute1 3 0 minute0 3 0 second1 3 0 second0 3 0 Date EN DateSet EN date disp select 5 0 month1 3 0 month0 3 0 day1 3 0 day0 3 0 disp select 5 0 disp data 6 0 disp data mux inst8 GND Clock INPUT GND SW3 INPUT GND SW1 INPUT GND SW2 INPUT alarm OUTPUT disp select 5 0 OUTPUT disp data 6 0 OUTPUT 第七章 系统的操作简介第七章 系统的操作简介 功能键 SW3 用来选择不同的工作模式 时间正常显示功能 时间调整与显示 秒表功能 闹钟设置与查看 日期 显示 日期调整与设置 阴阳历的转换 调整键 1 SW1 主要用于闹钟设置 日期显示与调整 秒表 时间调整 与设置中的位置选择按钮 与功能键配合使用 2 号键功能模式 即时间调整与设置时 用作时 分 秒的移位 按一 下 将会实现 时 分 秒 的依次移位 便于在特定位置进行调整 4 号键功能模式 即闹钟设置与查看时 同样用作时 分 秒的移位 按一下 将会实现 时 分 秒 的依次移位 便于在特定位置进行调整 6 号键功能模式 即日期调整与设置时 用作月 日的移位 按一下 将会实现 月 日 的依次移位 便于在特定位置进行调整 调整键 2 主要用于闹钟设
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 地膜覆盖栽培技术教学设计-2025-2026学年中职专业课-农作物生产-农林类-农林牧渔大类
- 2023七年级数学上册 第3章 一次方程与方程组3.1 一元一次方程及其解法第2课时 用移项解一元一次方程说课稿 (新版)沪科版
- 本章复习与测试教学设计-2025-2026学年初中地理商务星球版八年级下册-商务星球版2012
- 2025-2026学年河南省安阳市滑县第二高级中学高三物理第一学期期末质量跟踪监视模拟试题
- 湖南省长沙市雅礼书院中学2025年高三物理第一学期期末综合测试试题
- 甘肃省宁县二中2025年物理高三上期末学业水平测试模拟试题
- 3.15 明朝的对外关系 说课稿 2025-2026学年统编版七年级历史下册
- 2024年五年级数学下册 五 分数除法第2课时 分数除法(二)(1)说课稿 北师大版
- 《我们的十岁生日》(教学设计)-2023-2024学年三年级上册综合实践活动蒙沪版
- Starter unit I'm going higher教学设计-2025-2026学年小学英语Join in 外研剑桥英语五年级上册-Join in 外研剑桥英语
- 2025年学习二十届全会精神知识竞赛题库及答案
- 初一启新程扬帆再出发-2025-2026学年上学期七年级(初一)开学第一课主题班会课件
- 中国法制史试题题库(附答案)
- 电池火灾安全知识培训课件
- 2025年CAD机械制图考试题库及答案
- Z20名校联盟(浙江省名校新高考研究联盟)2026届高三第一次联考 语文试卷(含答案详解)
- 2025工会基础知识考试题库及参考答案
- 2025年安徽省宿州市辅警协警笔试笔试测试卷(含答案)
- 六年级上册语文1-8单元习作范文
- 2024广西公需课高质量共建“一带一路”谱写人类命运共同体新篇章答案
- 2025年国家法律职业资格考试《客观题卷一》模拟题及答案
评论
0/150
提交评论