已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
江西理工大学应用科学学院江西理工大学应用科学学院 SOPC EDASOPC EDA 综合课程设计报告综合课程设计报告 设计题目 设计题目 综合计时系统综合计时系统 设设 计计 者 者 文波文波 学学 号 号 08060108115 班班 级 级 电气电气 081 指导老师 指导老师 王忠锋王忠锋 完成时间 完成时间 2011 年年 1 月月 13 日日 设计报告设计报告综合测试综合测试总评总评 格式格式 10 内容内容 40 图标图标 10 答辩答辩 20 平时平时 20 综合计时系统 电气 081 文波 1 目目 录录 1 综合计时系统设计与分析 2 1 1 系统设计要求 2 1 2 系统设计方案 2 1 2 1 综合计时电路的设计 2 1 2 2 显示控制电路 XSKZQ 的设计 5 1 2 3 调整控制电路 TZKZQ 的设计 9 1 2 4 综合计时系统 ZHJSQ 的设计 12 1 3 系统单元仿真与分析 13 1 3 1 综合计时电路的仿真 13 1 3 2 显示控制电路的仿真 14 1 3 3 调整控制电路的仿真 15 1 3 3 综合计时系统电路的仿真 15 2 改进方法 16 3 收获与体会 16 参考文献 17 综合计时系统 电气 081 文波 2 1 综合计时系统设计与分析 1 1 系统设计要求 设计一个综合性的计时系统 要求能实现年 月 日 时 分 秒及星期 的计数等综合计时功能 同时将计时结果通过 15 个七段数码管显示 并且可通 过两个设置键 对计时系统的有关参数进行调整 具体系统功能面板如图 1 1 所示 图 1 1 系统功能面板 1 2 系统设计方案 1 2 1 综合计时电路的设计 根据系统的设计要求 综合计时电路可分为计秒电路 计分电路 计时电 路 计星期电路 计日电路 计月电路 计年电路等 7 个子模块 这 7 个子模 块必须都具有预置 计数和进位功能 设计思想如下 1 计秒电路 以直接输入或由分频器产生的秒脉冲作为计秒电路的计数 时钟信号 待计数至 60 瞬间 进位 计分电路加 1 而计秒电路则清零并重新 计秒 2 计分电路 计时电路 其设计思想与计秒电路类似 3 计日电路 将计时电路产生的进位脉冲信号作为计日电路的计数时钟 信号 通过系统辨认 确定本月总天数 X 包括 28 29 30 31 四种情况 待 计数至 X 1 瞬间 进位 计月电路加 1 而计日电路返回 1 重新开始计数 4 计星期电路 将计时电路产生的进位脉冲信号作为计星期电路的计数 时钟信号 待计数至 7 瞬间 计星期电路返回 1 重新开始计数 综合计时系统 电气 081 文波 3 5 计月电路 将计日电路产生的进位脉冲信号作为计月电路的计数时钟 信号 待计数至 12 瞬间 进位 计年电路加 1 而计月电路返回 1 重新开始计 数 6 计年电路 将计月电路产生的进位脉冲信号作为计年电路的计数时钟 信号 待计数至 100 瞬间 计年电路返回 0 重新开始计数 注 由于本系统的 计年范围仅为 2000 2099 年 所以计年模块只对年份的后两位进行计数 年份 的前两位始终保持为 20 下面介绍 CNT60 CNT30 计数模块的设计 LD CLK DATA 5 0 NUM 5 0 CO CNT60 inst14 图 2 1 CNT60 计数模块输入 输出端口图 CNT60 计数模块是一个多用计时模块 它既可作为计秒电路调用 又可作 为计分电路 计时电路调用 图 2 1 是其输入 输出端口图 其中 输入信号 LD 为置数控制信号 低电平有效 输入信号 CLK 为计数时钟信号 输入信号 DATA 为待预置数 输出信号 NUM 为计数结果 输出信号 CO 为计数溢出信号 LD CLK YEAR 6 0 MON 3 0 DAY 4 0 NUM 4 0 MAX DAYS 4 0 CO CNT30 inst 图 2 2 CNT30 计数模块的输入 输出端口图 CNT30 计数模块是一个计日模块 由于该计数模块涉及到大小月及闰年问 题 所以 CNT30 的计数范围并非固定变 而是存在 1 28 1 29 1 30 及 1 31 这四种情况 图 2 2 是其输入 输出端口图 其中输入信号 LD 为置数控 制信号 低电平有效 输入信号 CLK 为计数时钟信号 输入信号 DATA 为待预置 数 输入信号 YEAR 为当前计时的年份数 输入信号 MON 为当前计时的月份数 输出信号 NUM 为计数结果 输出信号 CO 为计数溢出信号 输出信号 MAX DAYS 为当前月的天数 综合计时系统 电气 081 文波 4 1 CNT60 的主要 VHDL 程序段如下 IF LD 0 THEN NUM DATA ELSIF CLK EVENT AND CLK 1 THEN IF NUM 111011 THEN NUM 000000 CO 1 ELSE NUM NUM 1 CO 0 END IF END IF 分析 这段程序可用来被计秒 计分 计时电路调用 当置数控制模块低 电平有效时 待预置数送入计数结果 此时当计数时钟信号上升沿有效时 如 果计数结果输出的是 111011 代表此周期内计数到第 60 次 即若是计分电路 代表计数到第 59 分钟 将产生进位信号并且计数从 0 开始 若计数范围在 0 58 之间时 计数结果只在下次计数时钟到来时加 1 并不产生进位信号 拓展 可以利用 CNT60 的理论设计出计年 CNT100 计月 CNT12 计星 期 CNT7 的 VHDL 程序段 只需修改对应的最大计时数 复位值 复位值为 1 以及对应的向量范围 2 CNT30 的主要 VHDL 程序段如下 IF LD 0 THEN NUM DAY ELSIF CLK EVENT AND CLK 1 THEN MAX DAYS TOTAL DAYS IF NUM TOTAL DAYS THEN NUM 00001 CO 1 ELSE NUM NUM 1 CO 0 END IF END IF 分析 这段程序用来实现计日模块 当置数控制模块低电平有效时 待预 置数送入计数结果 此时当计数时钟信号上升沿有效时 将 TOTAL DAYS 的信号 送入 MAX DAYS 在结构体中定义 SIGNAL TOTAL DAYS STD LOGIC VECTOR 4 DOWNTO 0 如果 TOTAL DAYS 的计数结果和 NUM 的结果一致 表明已到当前月 份的最后一天 则产生进位信号 并从 1 开始计数 否则 计数信号加 1 不 综合计时系统 电气 081 文波 5 会产生进位信号 1 2 2 显示控制电路 XSKZQ 的设计 本设计显示需要使用的是 15 个七段显示数码管 在计时结果显示电路中 七段数码管显示部分是一个不容忽视的环节 如若处理不得当 可能引起系统 功率过大 产生散热问题 严重时甚至会导致系统的烧毁 为了解决好以上问 题 下面就对七段数码管显示电路做简要的分析和介绍 通常点亮一个 LED 所需的电流是 5 50 mA 通电的电流愈大 LED 的亮度 愈高 相对的也会使其寿命缩短 一般以 10 mA 的导通电流来估算它所必须串 联的阻值 其计算方式参考图 2 3 所示 图 2 3 单个 LED 的串接电阻计算方式 七段显示器可分为共阳极 共阴极型两种 它们都可以等效成 8 个 LED 的 连接电路 其中图 2 4 就是共阴极型七段显示器的等效电路和每节 LED 的定义 位置图 图 2 4 共阴极型七段显示器的 LED 位置定义和等效电路 b c g f e d dp dp gfedcba a 综合计时系统 电气 081 文波 6 由于本设计的目标是设计一个综合的计时系统 要求同时显示年 在这里 年份的前两位固定为 20 月 日 时 分 秒及星期共 15 个数字 依照图 2 4 的计算方式 同时点亮一个七段显示器的 8 节 LED 结果将需要电流为 10mA 8 80mA 若再进一步同时点亮 15 个七段显示器 这时所需的电流为 80mA 15 1200 mA 1 2A 这对于一般的电子电路来说 是一个不小的电源 不 但 CPLD 和 FPGA 芯片无法负载这样的电流驱动 而且这个功率也太大 散热也 是问题 电路容易被烧毁 因此显示电路部分不能直接实现各个计时结果同时 显示 只能另外通过一个扫描电路对计时输出进行逐个扫描 使七段数码管以 个位一组 逐个进行显示 只要每个扫描频率不超过人的眼睛的视觉暂留频率 24HZ 就可以达到点亮两个七段数码管 却能享有所有七段数码管同时显示的 视觉效果 而且显示也不致闪烁抖动 从而间接实现计时结果同时显示 根据以上设计思想 本系统的数据显示电路可分为两个子模块 1 显示控制电路 XSKZQ 负责完成数据选择扫描及数码管位选择信号的 产生 数据扫描选择输出 对于选择的数据进行 BCD 码转换等功能 2 显示译码电路 YMQ 将用于显示的 BCD 码数据进行译码 XSKZQ 的输入 输出端口如图 2 5 所示 CLK SCAN SEC 5 0 MIN 5 0 HOUR 4 0 DAY 4 0 MON 3 0 YEAR 6 0 WEEK 2 0 SELOUT 2 0 BCD 7 0 XSKZQ inst17 图 2 5 XSKZQ 计数模块的输入 输出端口图 YMQ 的输入 输出端口如图 2 6 所示 DATA 7 0 HIGHT SEG 6 0 LOW SEG 6 0 YMQ inst1 图 2 6 YMQ 显示译码模块的输入 输出端口图 综合计时系统 电气 081 文波 7 其中 输入信号 CLK SCAN 为用于产生数据选择扫描等控制信号的时钟信号 输入信号 SEC MIN HOUR DAY MON YEAR WEEK 分别来自计秒电路 计分电 路 计时电路 计日电路 计月电路 计年电路 计星期电路等计时电路的计 时结果输出端 输出信号 BCD 为被选择进行显示的计秒 计分 计时 计日 计月 计年 计星期电路等计时电路的计时结果的 8 位 BCD 码 输出端 SELOUT 经外部的 3 8 译码电路译码后用于选择对应计时结果显示数码管的公共端 COM 图 2 7 为 15 个共阴极型七段数码管驱动接线图 图 2 7 15 个共阴极型七段数码管驱动接线图 显示控制电路 XSKZQ 的 VHDL 部分程序 IF CLK SCAN EVENT AND CLK SCAN 1 THEN IF CNT 111 THEN CNT 000 ELSE CNT CNT 1 END IF END IF SELOUT TEMP TEMP TEMP TEMP TEMP TEMP TEMP TEMP NULL END CASE CASE TEMP IS WHEN 0 BCD BCD BCD BCD BCD BCD BCD BCD BCD TEMP CONV INTEGER HOUR 表明扫描小时信号 第二个 CASE 语句用于判断 BCD 输出信号应在数码管显示电路中所显示的数字 显示控制电路 YMQ 的 VHDL 部分程序 HIGHT DATA 7 DOWNTO 4 LOWS HIGHT SEG HIGHT SEG HIGHT SEG HIGHT SEG HIGHT SEG HIGHT SEG HIGHT SEG HIGHT SEG HIGHT SEG HIGHT SEG HIGHT SEG LOW SEG LOW SEG 0000000 END CASE END PROCESS END ARCHITECTURE BEHAV 分析 将 BCD 的高 4 位赋值给 HIGHT 低 4 位赋值给 LOWS 分别对 HIGHT LOWS 译码 1 2 3 调整控制电路 TZKZQ 的设计 对于系统中的时间调整电路 拟通过模式和调整两个外部按键完成 模式 按键负责切换正常时间计数模式和时间调整模式 调整模式切换顺序如图 2 8 所示 调整键负责在时间调整模式之下 对当前模式的计时结果进行调整 综合计时系统 电气 081 文波 10 图 2 8 调整模式切换顺序 在模式选择的过程中 被选择到的调整模式所对应的发光二极管会被点亮 例如 按动模式键 选定 2010 年 5 月 7 日 09 09 09 星期 5 的分钟数 09 对应的调分模式发光二极管将会被点亮 剩下的 6 个调整模式发光二极 管不被点亮 当处于正常模式时 7 个发光二极管均不被点亮 被调整的计时 结果之间相互独立 调整过程中 只有被选择到的计数结果才会被接收调整 例如上述的 09 分钟数部分 它可能会有的调整范围为 0 59 其余的数字 将固定显示不动 TZKZQ 模块是负责各个模块之间的相互切换以及对被选中的模式进行时间 调整的 图 2 9 是其输入 输出端口图 KEY 1 0 CLK KEY MAX DAYS 4 0 SEC CUR 5 0 MIN CUR 5 0 HOUR CUR 4 0 DAY CUR 4 0 MON CUR 3 0 YEAR CUR 6 0 WEEK CUR 2 0 SEC EN MIN EN HOUR EN DAY EN MON EN YEAR EN WEEK EN SEC 5 0 MIN 5 0 HOUR 4 0 DAY 4 0 MON 3 0 YEAR 6 0 WEEK 2 0 TZKZQ inst16 图 2 9 TZKZQ 计数模块的输入 输出端口图 其中输入信号 KEY 1 0 为键盘信号 当 KEY 01 时 表示按下了设置 键 系统切换到下一个状态 当 KEY 10 时表示按下了调整键 系统进行自 加 输入信号 CLK KEY 为按键扫描时钟信号 输入信号 YEAR CUR MON CUR DAY CUR HOUR CUR MIN CUR SEC CUR WEEK CUR MAX DAYS 均为来自各自计时电路输出的当前计时结果的反馈值 输入信号 YEAR EN MON EN MON EN HOUR EN MIN EN SEC EN WEEK EN 均为对应的 计时电路的一部并行置数使能信号 输出信号 YEAR MON DAY HOUR MIN SEC WEEK 则为调整后的对应时间需预置的数 该模块的 VHDL 程序主要通过一个状态机来实现 12 综合计时系统 电气 081 文波 11 调整控制电路 TZKZQ 的 VHDL 部分程序 TYPE STATETYPE IS NORMAL SEC SET MIN SET HOUR SET DAY SET MON SET YEAR SET WEEK SET SIGNAL MODE STATETYPE IF CLK KEY EVENT AND CLK KEY 1 THEN IF KEY 01 THEN SEC EN 1 MIN EN 1 HOUR EN 1 DAY EN 1 MON EN 1 YEAR EN 1 WEEK EN MODE SEC SET SEC SEC CUR SEC EN MODE MIN SET MIN MIN CUR SEC EN 1 MIN EN MODESEC EN 0 IF SEC 111011 THEN SEC 000000 ELSE SECDAY EN 0 IF DAY MAX DAYS THEN DAY 00001 ELSE DAYWEEK EN 0 IF WEEK 111 THEN WEEK 001 ELSE WEEKNULL END CASE END IF END IF 分析 先利用状态机的概念生成状态变量 MODEL 当按键扫描信号 CLK KEY 上升沿到来时 若 KEY 01 则表明按下了设置键 使系统切换到下一个状 态 语句 WHEN NORMAL MODE SEC SET SEC SEC CUR SEC ENMODE MIN SET MIN MIN CUR SEC EN 1 MIN EN SEC EN 0 表示异步并行置位使能有效 当 SEC 信号输出 111011 时 表明秒 计数到 59 则返回 0 重新计数 否则继续计数 以下情况依次类推 综合计时系统 电气 081 文波 13 1 2 4 综合计时系统 ZHJSQ 的设计 图 2 9 ZHJSQ 综合计时系统的输入 输出端口图 分析 对整个系统进行封装 外接输入口 KEY 1 0 接两个控制按钮 CLK SEC 接秒脉冲信号 CLK TAKZ 接适当频率的脉冲信号用于扫描按键的情况 CLK SCAN 接大于人眼的频率的脉冲信号 HZHZ192824 外接输出口接 SELOUT 2 0 用于选中个数码管的 COM 端 BCD 7 0 经译 码输出接个数码管 高低位接线如图 2 6 所示 1 3 系统单元仿真与分析 各部分模块完成后 用 QUARTUS 对程序进行编译仿真 以得到相应的仿 真波形 综合计时系统 电气 081 文波 14 1 3 1 综合计时电路的仿真 CNT60 VHD 模块仿真波形如下 图 3 1 CNT60 VHD 模块仿真图 从图 3 1 可以看出 CNT60 VHD 实现了从 0 到 59 的循环计数 每实现一次 59 到 0 的计数动作 计数模块输出一个进位信号 当 LD 端有低电平输入时 说明置数信号 LD 有效 模块将预置数 DATA 56 送入计数结果 NUM 中去 计 数模块从 56 开始重新计数 当计数结果 NUM 从零开始计数时 产生一个进 位信号 CO CNT30 VHD 的仿真波形如下 图 3 2 CNT30 模块仿真图 从图 3 2 可以看出 该模块首先要读取当前年月 YEAR 和 MON 再对该月 的最大天数 MAX DAYS 进行判断并将结果向外输出 在正常计数过程中 模块 实现了从 0 到最大天数 MAX DAYS 的循环计数 每实现一次最大天数 MAX DAYS 到 0 的计数动作 计数模块输出一个进位信号 当 LD 端有低电平输入时 说明置 数信号 LD 有效 模块将预置数 DAY 20 送入计数结果 NUM 中去 计数模块从 20 开始重新计数 1 3 2 显示控制电路的仿真 XSKZQ VHD 的仿真波形如下 综合计时系统 电气 081 文波 15 图 3 3 XSKZQ VHD 的仿真图 从图 3 3 可以看出 当 SELOUT 分别等于 0 1 2 3 4 5 6 7 时 分 别选择对应的输入数据输出 SELOUT 等于 0 时 BCD 显示秒输出 为 07 秒 SELOUT 等于 1 时 BCD 显示分输出 为 10 分 以此类推 时间显示为 2020 年 10 月 26 日 02 10 07 星期六 达到了设计要求 YMQ VHD 的仿真波形如下 图 3 4 XSKZQ VHD 的仿真图 从图 3 4 可以看出 当 DATA 输入 00101001 HIGHT SEG 输出 1011011 数码管显示 2 LOW SEG 输出 1101111 数码管显示 9 达到了 设计要求 1 3 3 调整控制电路的仿真 TZKZQ VHD 的仿真波形如下 综合计时系统 电气 081 文波 16 图 3 5 TZKZQ VHD 仿真图 从图 3 5 可以看出 键盘产生 01 信号时 CLK KEY 有八次上升沿 调 整模式依次经过了正常 调秒 调分 调时 调日 调月 调年 调星期再回 到正常这 8 种模式的循环 即 MODE 依次从 0 到 7 再从 7 回到 0 的循环 在按 键过程中 根据按键持续时间 相应地被调整模式的异步并行置位使能置 0 同时通过一个非门点亮该调整模式所对应的发光二极管 作为该调整模式的指 示信号 键盘产生 10 信号时 调整模式切换到了调分模式 然后又根据 CLK KEY 的上升沿次数决定增加的值 实现了在调分模式下对当前分的值进行 调整 从 31 调到 39 1 3 3 综合计时系统电路的仿真 ZHJSQ VHD 的仿真波形如下 图 3 6 ZHJSQ VHD 仿真图 1 从图 3 6 可知 综合计时系统经过了初始化过程 并显示输出 显示时间 为 2000 年 01 月 01 日 00 00 00 星期一 达到了设计要求 综合计时系统 电气 081 文波 17 图 3 7 ZHJSQ VHD 仿真图 2 从图 3 7 可知 综合计时系统经过了秒进位并显示输出的过程 BCD 从 1 秒跳变到 2 秒 并显示输出 达到了设计要求 2 改进方法 由于本系统采用的是利用秒计时器 CNT60 的进位来作为分计时器 CNT60 的脉冲信号 利用分计时器 CNT60 的进位来作为时计时器 CNT24 的脉冲信号 以此类推 这样的设计虽然减少了器件的使用 却会导 致误差呈几何倍数的增加 可以考虑对于系统的各种控制时钟信号 通过分频电路对一个给定的合适 频率信号进行分频来产生 这样就能适当的减少误差的产生 3 收获与体会 第一眼看到题目 综合计时系统的设计 由于以前尝试国用单片机控制数码 管 以及其他些小型系统 再加上本学期刚技术 EDA 的课程 对 EDA 还有比较 大的印象 觉得本次课程设计可以利用自己所学的知识全部完成 可真正开始做这个课题时 发现不是和想象中那样简单 由于以前尝试的 都是小型系统 从没有尝试过制作个单独的系统 而且 EDA 的编程思想还是与 C 汇编的编程方式存在很多的不同 从一开始我就用着错误的思想去做这个事 结果是显当然 毫无结果 终于真正的开始重视本次课程设计 参考过王老师的课程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 15790-2026稻瘟病测报调查规范
- 盔帽工岗前操作评估考核试卷含答案
- 农产品购销员操作评优考核试卷含答案
- 锅炉卷板工岗前内部控制考核试卷含答案
- 石油焦煅烧工岗前健康知识考核试卷含答案
- 刨插工安全风险竞赛考核试卷含答案
- 印制电路照相制版工操作技能强化考核试卷含答案
- 国际标准iq测试题及答案
- 8.2+诚信经营+依法纳税课件高中政治统编版选择性必修二法律与生活
- 户外地质考察免责协议书
- 2026届广东省江门市高三一模英语试卷
- TSG 08-2026 特种设备使用管理规则
- GJB3243A-2021电子元器件表面安装要求
- 高中家长会 家校合作,共赢高考课件-高三下学期二模分析家长会
- 兽药GSP考试试卷及答案
- DL-T 1476-2023 电力安全工器具预防性试验规程
- 那年那兔那些事儿
- DB50-T 1464-2023化学品生产储存现场作业人员定位系统建设规范
- 第十五章-中国卫生国情
- 纪念卢沟桥事变七七事变弘扬抗战精神PPT模板
- 心脏及外周血管超声试题
评论
0/150
提交评论