本 科 生 毕 业 论 文new

上传人:xinsh****encai 文档编号:27903060 上传时间:2021-08-21 格式:DOC 页数:30 大小:403.50KB
返回 下载 相关 举报
本 科 生 毕 业 论 文new_第1页
第1页 / 共30页
本 科 生 毕 业 论 文new_第2页
第2页 / 共30页
本 科 生 毕 业 论 文new_第3页
第3页 / 共30页
点击查看更多>>
资源描述
本 科 生 毕 业 论 文 (申请学士学位) 论 文 题 目 综 合 计 时 系 统 的 设 计 作 者 姓 名 刘 建 所 学 专 业 名 称 电子科学与技术 指 导 教 师 丁健 2011 年 5 月 13 日 学 号:2007210041 论文答辩日期: 年 月 日 指 导 教 师: (签字) 滁州学院本科毕业设计(论文)原创性声明 本人郑重声明:所呈交的设计(论文)是本人在导师的指导下独 立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外, 本论文不包含任何其他个人或集体已经发表或撰写的成果。本人完全 意识到本声明的法律后果由本人承担。 作者签名: 年 月 日 目录 摘要.1 Abstract.1 1. 绪论.2 1.1 计时器发展情况.2 1.2 EDA 技术概述 .2 1.2.1 EDA 技术介绍 .2 1.2.2 硬件描述语言的介绍.2 1.2.3 现场可编程门阵列的简介.3 1.2.4 QuartusII 设计软件的简介.3 2. 综合计时系统设计与分析.4 2.1 系统设计要求.4 2.2 系统设计方案.4 2.2.1 综合计时电路的设计.4 2.2.2 显示控制电路 XSKZQ 的设计.5 2.2.3 调整控制电路 TZKZQ 的设计.8 2.2.4 综合计时系统 ZHJSQ 的设计.9 3. 系统单元仿真与分析.11 3.1 综合计时电路的仿真.11 3.2 显示控制电路的仿真.12 3.3 调整控制电路的仿真.12 3.4 综合计时系统电路的仿真.13 4. 结论.14 4.1 设计体会与改进方法.14 4.2 设计总结.15 参考文献.16 附录.17 致谢.26 滁州学院本科毕业论文 1 综合计时系统的设计 摘要:电子设计自动化(EDA)是以计算机为操作平台、以硬件描述语言为设计语言、以可编程器 件为实验载体进行必要的元件建模和系统仿真的电子产品自动化设计过程。运用 EDA 技术进行电子 系统的设计,有着设计快速、调试方便、研制周期短、系统可靠性高等优点。本设计主要利用 VHDL 语言在 EDA 平台上设计一个综合计时系统,在设计中采用了自上而下的方法,它可以显示年、 月、日、分、秒、星期。计时系统的内部功能模块可以分为三个部分:综合计时电路、显示控制电 路、调整控制电路。其中综合计时电路用于完成各种计时功能,显示控制电路用于完成计时结果的 显示,调整控制电路用于调整计时系统的有关参数。 关键词:EDA 技术;综合计时系统;FPGA;VHDL Design of Integrated Timing System Abstract: Electronic Design Automation(EDA) uses computer as its workbench.hardware Descripition language as its design language,programmable logic device as its experiment carrier,it is an automatic design process of electronic product for device modeling and system simulation .It has many merits such as fast design easy debug short developing period and high system reliability . The purpose of this dissertation is to design a integrated timing system based on EDA piatform by using VHDL language . It uses the method of top-down in this design . It display years ,months ,dates ,hours,minutes,seconds and Weeks;The system is divided into three modules;counter-time module for counting time;display-control Module for display time;modify-time module for modifying time. Key words: EDA technology; Integrated Timing System; FPGA; VHDL 滁州学院本科毕业论文 2 1.绪论 1.1 计时器发展情况 计时器是人们日常生活、学习、工作和进行科学生产、管理、研究必备的仪器,其历史是伴随 着人类文明史而发展从远古时代的日晷、滴漏进展到现代化的机械钟表、石英电子钟表、原子钟 表的历程,都是计时器的不断发展过程,它们记录了人类社会的进化和工业文明的发展。当代电子 科学技术不断发展,计时器的智能型和精确性越来越受到人们的重视,人们不再满足于手表的作用, 于是,产生了万年历这种新的计时器,它可以同时显示年,月,日,时,分,秒,星期等,大大方 便了人们的生活和生产。而本设计,采用最先进的电子自动化技术即 EDA 技术,设计出更精确,更 实用的综合计时器。 1.2 EDA 技术概述 1.2.1 EDA 技术介绍 在电子设计技术领域,可编程逻辑器件(如 PLD,GAL)的应用,已有了很好的普及。这些器件 为数字系统的设计带来极大的灵活性。由于这类器件可以通过软件编程而对其硬件的结构和工作方 式进行重构,使得硬件的设计可以如同软件设计那样方便快捷。这一切极大地改变了传统的数字系 统设计方法、设计过程、乃至设计观念。纵观可编程逻辑器件的发展史,它在结构原理、集成规模、 下载方式、逻辑设计手段等方面的每一次进步都为现代电子设计技术的革命与发展提供了不可或缺 的强大动力。 电子设计自动化(EDA)是一种实现电子系统或电子产品自动化设计的技术,它与电子技术、微 电子技术的发展密切相关,吸收了计算机科学领域的大多数最新研究成果,以高性能的计算机作为 工作平台,是 20 世纪 90 年代初从 CAD、CAM、CAT 和 CAE 的概念发展而来的。EDA 技术就是以计算 机为工具,在 EDA 软件平台上,根据硬件描述语言 HDL 完成的设计文件,自动地完成逻辑编译、化 简、分割、综合及优化、布局线、仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载 等工作。设计者的工作仅限于利用软件的方式来完成对系统硬件功能的描述,在 EDA 工具的帮助下 和应用相应的 FPG 刀 CPLD 器件,就可以得到最后的设计结果。尽管目标系统是硬件,但整个设计 和修改过程如同完成软件设计一样方便和高效。EDA 主要是指数字系统的自动化设计,因为这一领 域的软硬件方面的技术已比较成熟,应用的普及程度也已比较大。而模拟电子系统的 EDA 正在进入 实用,其初期的 EDA 工具不一定需要硬件描述语言。此外,从应用的广度和深度来说,由于电子信 息领域的全面数字化,基于 EDA 的数字系统的设计技术具有更大的应用市场和更紧迫的需求性。 1.2.2 硬件描述语言(VHDL)的简介 (1) 硬件描述语言 VHDL 硬件描述语言(HDLHardware Description Language)是一种用于设计硬件电子系统的计算机 语言,它用软件编程的方式来描述电子系统的逻辑功能、电路结构和连接形式。 滁州学院本科毕业论文 3 VHDL 是一种全方位的硬件描述语言,包括系统行为级、寄存器传输级和逻辑门级多个设计层 次,支持结构、数据流、行为三种描述形式的混合描述,因此 VHDL 几乎覆盖了以往各种硬件描述语 言的功能,整个自顶向下或自底向上的电路设计过程都可以用 VHDL 来完成。 (2)VHDL 的组成 一个 VHDL 设计由若干个 VHDL 文件构成,每个文件主要包含如下三个分中的一个或全部: 程序包(Package) ; 实体(Entity) ; 结构体(Architecture).一个完整的 VHDL 设计必须包含 一个实体和一个与之对应的结构体。个实体可对应多个结构体,以说明采用不同方法来描述电路。 1.2.3 现场可编程门阵列(FPGA)的简介 FPGA(Field Programmable Gate Array)即现场可编程门阵列,是大规模可编程逻辑器件。 FPGA 器件极其开发系统是开发大规模数字机场电路的新技术。他利用计算机辅助设计,绘制出实 现用户逻辑的原理图、编辑布尔方程或用硬件描述语言等方式作为设计输入;然后经一系列转换程 序、自动布局布线、模拟仿真的过程;最后生成配置 FPGA 器件的数据文件,对 FPGA 器件初始化。 这样就实现了满足用户要求的专用集成电路,真正达到了用户自行设计、自行研制和自行生产集成 电路的目的。 FPGA 器件在结构上,由逻辑功能块排列为阵列,它的结构可以分为三个部分:可编程逻辑块 CLB(Configurable Logic Block) 、可编程 I/O 块 IOB( Input Output Block)和可编程内部连线 PI(Programmable Interconnect) 。如图 1.1 所示,CLB 在其间中排列为阵列,周围有环形内部连 线,IOB 分布在四周的管脚上。 图 1.1 FPGA 的结构原理 周边可配置的 IOB 为内部逻辑与器件封装引脚之间提供可编程接口;CLB 阵列实现用户指定 的逻辑功能;PI 类似于印制电路板上的引线,可编程为在模块间传递信号的网络。 1.2.4 Quartus设计软件的简介 Quartus是 Altera 提供的 FPGA/CPLD 开发集成环境,Quartus是 Altera 前一代 FPGA/CPLD 可编程 I/O 块 IOB 可 编 程 内 部 连 线 PI 可编程逻辑 块 CLB 滁州学院本科毕业论文 4 集成开发环境 MAX+plus的更新换代产品,其界面友好,使用简捷。在 Quartus上可以完成 VHDL 行为仿真,功能仿真,结构综合,门级时序仿真,硬件测试等功能,它提供了一种与结构无 关的设计环境,设计者能方便的进行设计输入、速处理和器件编程。Quartus包括模块化的编译 器。编译器包括的功能模块有分析/综合器、适配器、装配器、时序分析器、设计辅助模块、EDA 网表文件生成器、编辑器数据接口等。可通过选择 Start 单独运行各个模块。还可通过择 Compiler Tool(Tools 菜单) ,在 Compiler Tool 窗口中运行该模块来启动编译器模块。在 Compiler Tool 窗口中,可以打开该模块的设置文件或报告文件,或打开其他相关窗口。 2综合计时系统设计与分析 2.1 系统设计要求 设计一个综合性的计时系统,要求能实现年、月、日、时、分、秒及星期的计数等综合计时 功能,同时将计时结果通过 15 个七段数码管显示,并且可通过两个设置键,对计时系统的有关参 数进行调整。具体系统功能面板如图 1.2 所示。 图 1.2 系统功能面板 2.2 系统设计方案 2.2.1 综合计时电路的设计 根据系统的设计要求,综合计时电路可分为计秒电路、计分电路、计时电路、计星期电路、 计日电路、计月电路、计年电路等 7 个子模块,这 7 个子模块必须都具有预置、计数和进位功能, 设计思想如下: (1) 计秒电路:以直接输入或由分频器产生的秒脉冲作为计秒电路的计数时钟信号,待计数 至 60 瞬间,进位,计分电路加 1,而计秒电路则清零并重新计秒。 (2) 计分电路、计时电路:其设计思想与计秒电路类似。 (3) 计日电路:将计时电路产生的进位脉冲信号作为计日电路的计数时钟信号,通过系统辨 认,确定本月总天数 X(包括 28、29、30、31 四种情况),待计数至 X1 瞬间,进位,计月电路加 滁州学院本科毕业论文 5 1,而计日电路返回 1 重新开始计数。 (4) 计星期电路:将计时电路产生的进位脉冲信号作为计星期电路的计数时钟信号,待计数 至 7 瞬间,计星期电路返回 1 重新开始计数。 (5) 计月电路:将计日电路产生的进位脉冲信号作为计月电路的计数时钟信号,待计数至 12 瞬间,进位,计年电路加 1,而计月电路返回 1 重新开始计数。 (6) 计年电路:将计月电路产生的进位脉冲信号作为计年电路的计数时钟信号,待计数至 100 瞬间,计年电路返回 0 重新开始计数。 (注:由于本系统的计年范围仅为 20002099 年,所以计年 模块只对年份的后两位进行计数,年份的前两位始终保持为20。 ) 下面介绍 CNT60、CNT30 计数模块的设计。 LD CLK DATA5.0 NUM5.0 CO CNT60 inst14 图 1.3 CNT60 计数模块输入、输出端口图 CNT60 计数模块是一个多用计时模块,它既可作为计秒电路调用,又可作为计分电路、计时电 路调用。图 2.1 是其输入、输出端口图。其中,输入信号 LD 为置数控制信号,低电平有效;输入 信号 CLK 为计数时钟信号;输入信号 DATA 为待预置数;输出信号 NUM 为计数结果;输出信号 CO 为 计数溢出信号。 LD CLK YEAR6.0 MON3.0 DAY4.0 NUM4.0 MAX_DAYS4.0 CO CNT30 inst 图 1.4 CNT30 计数模块的输入、输出端口图 CNT30 计数模块是一个计日模块。由于该计数模块涉及到大小月及闰年问题,所以 CNT30 的计 数范围并非固定变,而是存在 128、129、130 及 131 这四种情况。图 2.2 是其输入、输出 端口图。其中输入信号 LD 为置数控制信号,低电平有效;输入信号 CLK 为计数时钟信号;输入信 号 DATA 为待预置数;输入信号 YEAR 为当前计时的年份数;输入信号 MON 为当前计时的月份数;输 出信号 NUM 为计数结果;输出信号 CO 为计数溢出信号,输出信号 MAX_DAYS 为当前月的天数。 2.2.2 显示控制电路 XSKZQ 的设计 滁州学院本科毕业论文 6 本设计显示需要使用的是 15 个七段显示数码管。在计时结果显示电路中,七段数码管显示部 分是一个不容忽视的环节,如若处理不得当,可能引起系统功率过大,产生散热问题,严重时甚至 会导致系统的烧毁。为了解决好以上问题,下面就对七段数码管显示电路做简要的分析和介绍。 通常点亮一个 LED 所需的电流是 550 mA,通电的电流愈大,LED 的亮度愈高,相对的也会 使其寿命缩短。一般以 10 mA 的导通电流来估算它所必须串联的阻值。 由于本设计的目标是设计一个综合的计时系统,要求同时显示年(在这里年份的前两位固定 为 20) 、月、日、时、分、秒及星期共 15 个数字,依照图 2-4 的计算方式,同时点亮一个七段显 示器的 8 节 LED,结果将需要电流为 10mA8=80mA。若再进一步同时点亮 15 个七段显示器,这时 所需的电流为 80mA15=1200 mA=1.2A。这对于一般的电子电路来说,是一个不小的电源。不但 CPLD 和 FPGA 芯片无法负载这样的电流驱动,而且这个功率也太大,散热也是问题,电路容易被烧 毁。因此显示电路部分不能直接实现各个计时结果同时显示,只能另外通过一个扫描电路对计时输 出进行逐个扫描,使七段数码管以个位一组,逐个进行显示,只要每个扫描频率不超过人的眼睛的 视觉暂留频率 24HZ,就可以达到点亮两个七段数码管,却能享有所有七段数码管同时显示的视觉 效果,而且显示也不致闪烁抖动,从而间接实现计时结果同时显示。 根据以上设计思想,本系统的数据显示电路可分为两个子模块: (1) 显示控制电路 XSKZQ:负责完成数据选择扫描及数码管位选择信号的产生,数据扫描选择 输出,对于选择的数据进行 BCD 码转换等功能; (2) 显示译码电路 YMQ:将用于显示的 BCD 码数据进行译码。 XSKZQ 的输入、输出端口如图 1.5 所示。 CLK_SCAN SEC5.0 MIN5.0 HOUR4.0 DAY 4.0 MON3.0 Y EAR6.0 W EEK2.0 SELOUT2.0 BCD7.0 XSKZQ inst17 图 1.5 XSKZQ 计数模块的输入、输出端口图 滁州学院本科毕业论文 7 YMQ 的输入、输出端口如图 1.6 所示。 D ATA7.0 H IGH T_SEG6.0 LOW _SEG6.0 Y MQ inst1 图 1.6 YMQ 显示译码模块的输入、输出端口图 其中,输入信号 CLK_SCAN 为用于产生数据选择扫描等控制信号的时钟信号;输入信号 SEC、MIN、HOUR、DAY、MON、YEAR、WEEK 分别来自计秒电路、计分电路、计时电路、计日电路、 计月电路、计年电路、计星期电路等计时电路的计时结果输出端;输出信号 BCD 为被选择进行显示 的计秒、计分、计时、计日、计月、计年、计星期电路等计时电路的计时结果的 8 位 BCD 码,输出 端 SELOUT 经外部的 3-8 译码电路译码后用于选择对应计时结果显示数码管的公共端 COM。 图 1.7 为 15 个共阴极型七段数码管驱动接线图。 图 1.7 15 个共阴极型七段数码管驱动接线图 分析:当扫描时钟(CLK_SCAN)处于上升沿时,程序对各个输出信号进行扫描。当信号 CNT 输出111时,表明已按顺序依次扫描了信号 SEC、MIN、HOUR、DAY、MON、YEAR、WEEK,则 CNT 归 零,再从 SEC 按顺序依次扫描;否则,CNT 值加 1,对下一个信号进行扫描。将扫描结果送入 滁州学院本科毕业论文 8 SELOUT 端。其中,第一个 CASE 语句用于判断选择要扫描的信号,如 WHEN 010 = TEMP 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 重新计数, 否则继续计数;以下情况依次类推。 2.2.4 综合计时系统 ZHJSQ 的设计 滁州学院本科毕业论文 10 图 2.0 ZHJSQ 综合计时系统的输入、输出端口图 滁州学院本科毕业论文 11 分析:对整个系统进行封装,外接输入口 KEY1.0接两个控制按钮,CLK_SEC 接秒脉冲信号, CLK_TAKZ 接适当频率的脉冲信号用于扫描按键的情况,CLK_SCAN 接大于人眼的频率 的脉冲信号;HZ192824 外接输出口接 SELOUT2.0用于选中个数码管的 COM 端,BCD7.0经译码输出接个数码管, 高低位接线如图 2.0 所示。 3系统单元仿真与分析 各部分模块完成后,用 QUARTUS 对程序进行编译仿真,以得到相应的仿真波形。 3.1 综合计时电路的仿真 CNT60.VHD 模块仿真波形如下: 图 2.1 CNT60.VHD 模块仿真图 从图 2.1 可以看出,CNT60.VHD 实现了从 0 到 59 的循环计数,每实现一次 59 到 0 的计数动作, 计数模块输出一个进位信号。当 LD 端有低电平输入时,说明置数信号(LD)有效,模块将预置数 (DATA)56 送入计数结果(NUM)中去,计数模块从 56 开始重新计数。当计数结果(NUM)从零开始计 数时,产生一个进位信号(CO) 。 CNT30.VHD 的仿真波形如下: 图 2.2 CNT30 模块仿真图 从图 2.2 可以看出,该模块首先要读取当前年月(YEAR 和 MON),再对该月的最大天数 (MAX_DAYS)进行判断并将结果向外输出。在正常计数过程中,模块实现了从 0 到最大天数 (MAX_DAYS)的循环计数,每实现一次最大天数(MAX_DAYS)到 0 的计数动作,计数模块输出一个进位 信号。当 LD 端有低电平输入时,说明置数信号(LD)有效,模块将预置数(DAY)20 送入计数结果 滁州学院本科毕业论文 12 (NUM)中去,计数模块从 20 开始重新计数。 3.2 显示控制电路的仿真 XSKZQ.VHD 的仿真波形如下: 图 2.3 XSKZQ.VHD 的仿真图 从图 2.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 的仿真波形如下: 图 2.4 XSKZQ.VHD 的仿真图 从图 2.4 可以看出,当 DATA 输入 00101001,HIGHT_SEG 输出 1011011(数码管显示 2) , LOW_SEG 输出 1101111(数码管显示 9) ,达到了设计要求。 3.3 调整控制电路的仿真 TZKZQ.VHD 的仿真波形如下: 滁州学院本科毕业论文 13 图 2.5 TZKZQ.VHD 仿真图 从图 2.5 可以看出,键盘产生“01”信号时,CLK_KEY 有八次上升沿,调整模式依次经过了正 常、调秒、调分、调时、调日、调月、调年、调星期再回到正常这 8 种模式的循环,即 MODE 依次 从 0 到 7,再从 7 回到 0 的循环。在按键过程中,根据按键持续时间,相应地被调整模式的异步并 行置位使能置“0” ,同时通过一个非门点亮该调整模式所对应的发光二极管,作为该调整模式的指 示信号。 键盘产生“10”信号时,调整模式切换到了调分模式,然后又根据 CLK_KEY 的上升沿次数决 定增加的值,实现了在调分模式下对当前分的值进行调整(从 31 调到 39)。 3.4 综合计时系统电路的仿真 ZHJSQ.VHD 的仿真波形如下: 滁州学院本科毕业论文 14 图 2.6 ZHJSQ.VHD 仿真图(1) 从图 2.6 可知,综合计时系统经过了初始化过程,并显示输出,显示时间为 2000 年 01 月 01 日 00:00:00 星期一,达到了设计要求。 图 2.7 ZHJSQ.VHD 仿真图(2) 从图 2.7 可知,综合计时系统经过了秒进位并显示输出的过程,BCD 从1秒跳变到2秒, 并显示输出,达到了设计要求。 4结论 4.1 设计体会与改进方法 第一眼看到题目-综合计时系统的设计,由于以前做过计时系统的实验,再加上大三学年刚学 习 EDA 的课程,对 EDA 还有比较大的印象,觉得本次课程设计可以利用自己所学的知识全部完成。 滁州学院本科毕业论文 15 可真正开始做这个课题时,发现不是和想象中那样简单,由于以前只是操作控制系统,从没 有尝试过制作个单独的系统,而且 EDA 的编程思想还是与 C、汇编的编程方式存在很多的不同,从 一开始我就用着错误的思想去做这个事,结果是显当然,毫无结果。 终于真正的开始重视本次课程设计,我采用自上至下的编程思想,将本设计系统大概分了几 块,可发现总存在很多的瑕疵,终于,我开始尝试查找资料,我发现资料不是绝对的、完整的,我 开始在相关资料间挑出精华,再加上自己的知识来完善该个课程设计。 经过几天的辛苦调试,经过仿真终于能达到我所需的设计要求,虽然最终的设计还存在些小 瑕疵.但毕竟是第一次做,我还是比较满意的。 由于本系统采用的是利用秒计时器(CNT60)的进位来作为分计时器(CNT60)的脉冲信号, 利用分计时器(CNT60)的进位来作为时计时器(CNT24)的脉冲信号,以此类推,这样的设计虽然 减少了器件的使用,却会导致误差呈几何倍数的增加。 可以考虑对于系统的各种控制时钟信号,通过分频电路对一个给定的合适频率信号进行分频 来产生,这样就能适当的减少误差的产生。 4.2 设计总结 本次设计让我发现了自己很多的不足,对以前所学过的知识理解得不够深刻,掌握得不够牢 固。 总的来说,这次设计的综合计时系统还是比较成功的,虽然这次设计的综合计时系统不是很 完美,在设计中遇到了很多的难题,最后在老师的辛勤的指导下,终于迎刃而解.还是觉得不错的, 终于觉得平时所学的知识有了实用的价值,达到了理论与实际相结合的目的,不仅学到了不少知识, 而且锻炼了自己的能力。 运用 EDA 技术设计综合计时系统,经用 Quartus软件编译、仿真,实验证明其功能与设计相 符合。EDA 技术改变了数字系统的设计方法和实现手段,大大减轻了电路设计的工作量和难度,有 效增强了设计的灵活性,缩短了设计周期,提高了产品的可靠性。随着数字系统规模越来越大,传 统的电路设计已难以适应复杂电子系统的设计要求,EDA 技术必将得到越来越广泛的应用。此设计 也反映出 EDA 技术在电子产品的设计的优势和实用性。EDA 技术将更广泛应用于高等院校电类专业 的实践教学当中,将更广泛应用于科研工作和新产品的开发中,将更广泛应用于专用集成电路的开 发,将更广泛应用于传统机电设备的升级换代和技术改造。 滁州学院本科毕业论文 16 参考文献 1潘松,王国栋,VHDL 实用教程。北京:电子科技大学出版社,2001 2 谭会生,EDA 技术基础。湖南:湖南大学出版社,2004 3赵刚,EDA 技术简明教程。四川:四川大学出版社,2004 4姜立东,VHDL 语言程序及应用。北京:北京邮电大学出版社,2001 5徐志军,徐光辉,FPGA 技术及应用。西安:西安电子科技大学出版社,2001 6焦素敏,EDA 应用技术。北京:清华大学出版社:2005 7潘松,黄计业,EDA 技术实用教程。北京:科学出版社,2002 8赵俊超,集成电路设计 VHDL 教程。北京:北京希望电子出版社,2002. 9谭会生,张昌凡,EDA 技术及应用M。西安:西安电子科技大学出版社,2001. 10蒋小燕,俞伟钧,张立臣,EDA 技术及 VHDLM。南京:东南大学出版社,2008. 11北京理工大学 ASIC 研究所,VHDL 语言 100 例详解M。北京:清华大学出版社,1999. 12付慧生,复杂可编程逻辑器件与应用设计M。江苏:中国矿业大学出版社, 2003. 13 孙江宏,王艳林,李刚,Protel DXP 电路设计与仿真 机械工业出版社,2004. 14 Mark D. Birnbaum,Essential electronic design automation(EDA) China Machine Press, 2005 14 http:/ 14 http:/www.X 滁州学院本科毕业论文 17 附录: 1CONT60 计时电路的 VHDL 源程序 -CNT60.VHD LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNT60 IS PORT(LD: IN STD_LOGIC; -置位信号(低电平有效) CLK: IN STD_LOGIC; -时钟脉冲 DATA: IN STD_LOGIC_VECTOR(5 DOWNTO 0); -预置数 NUM: BUFFER STD_LOGIC_VECTOR(5 DOWNTO 0); -计数结果 CO: OUT STD_LOGIC); -进位信号 END ENTITY CNT60; ARCHITECTURE ART OF CNT60 IS BEGIN PROCESS(CLK,LD) IS BEGIN IF(LD=0) THEN NUM=DATA; ELSIF CLKEVENT AND CLK=1 THEN IF NUM=111011 THEN -59 NUM=000000;CO=1; ELSE NUM=NUM+1;CO IS_RUNNIAN:=1; -0 -如当前年为 00,则输出闰年确认信号 WHEN 0000100 = IS_RUNNIAN:=1; -4 WHEN 0001000 = IS_RUNNIAN:=1; -8 WHEN 0001100 = IS_RUNNIAN:=1; -12 WHEN 0010000 = IS_RUNNIAN:=1; -16 WHEN 0010100 = IS_RUNNIAN:=1; -20 WHEN 0011000 = IS_RUNNIAN:=1; -24 WHEN 0011100 = IS_RUNNIAN:=1; -28 WHEN 0100000 = IS_RUNNIAN:=1; -32 WHEN 0100100 = IS_RUNNIAN:=1; -36 WHEN 0101000 = IS_RUNNIAN:=1; -40 WHEN 0101100 = IS_RUNNIAN:=1; -44 WHEN 0110000 = IS_RUNNIAN:=1; -48 WHEN 0110100 = IS_RUNNIAN:=1; -52 WHEN 0111000 = IS_RUNNIAN:=1; -56 WHEN 0111100 = IS_RUNNIAN:=1; -60 WHEN 1000000 = IS_RUNNIAN:=1; -64 WHEN 1000100 = IS_RUNNIAN:=1; -68 WHEN 1001000 = IS_RUNNIAN:=1; -72 WHEN 1001100 = IS_RUNNIAN:=1; -76 WHEN 1010000 = IS_RUNNIAN:=1; -80 WHEN 1010100 = IS_RUNNIAN:=1; -84 WHEN 1011000 = IS_RUNNIAN:=1; -88 WHEN 1011100 = IS_RUNNIAN:=1; -92 WHEN 1100000 = IS_RUNNIAN:=1; -96 WHEN OTHERS = IS_RUNNIAN:=0; END CASE; CASE YUE IS WHEN 0001 = TOTAL_DAYS TOTAL_DAYS TOTAL_DAYS TOTAL_DAYS TOTAL_DAYS TOTAL_DAYS TOTAL_DAYS TOTAL_DAYS TOTAL_DAYS TOTAL_DAYS TOTAL_DAYS -2 IF (IS_RUNNIAN=1) THEN TOTAL_DAYS=11101; -如是闰年 2 月则总天数为 29 ELSE TOTAL_DAYSNULL; END CASE; IF(LD=0) THEN NUM=DATA; ELSIF CLKEVENT AND CLK=1 THEN MAX_DAYS=TOTAL_DAYS; IF NUM=TOTAL_DAYS THEN -99 NUM=00001;CO=1; ELSE NUM=NUM+1;CO=0; END IF; END IF; END PROCESS; END ARCHITECTURE ART; 3. 显示控制电路 XSKZQ 的 VHDL 源程序 -XSKZQ.VHD LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; ENTITY XSKZQ IS PORT(CLK_SCAN:IN STD_LOGIC; -扫描时钟 SEC,MIN:IN STD_LOGIC_VECTOR(5 DOWNTO 0); -当前秒、分 HOUR: IN STD_LOGIC_VECTOR(4 DOWNTO 0); -当前时 DAY: IN STD_LOGIC_VECTOR(4 DOWNTO 0); -当前日 MON: IN STD_LOGIC_VECTOR(3 DOWNTO 0); -当前月 YEAR: IN STD_LOGIC_VECTOR(6 DOWNTO 0); -当前年 WEEK: IN STD_LOGIC_VECTOR(2 DOWNTO 0); -当前星期 SELOUT: OUT STD_LOGIC_VECTOR(2 DOWNTO 0); -扫描信号 滁州学院本科毕业论文 20 BCD: OUT STD_LOGIC_VECTOR(7 DOWNTO 0); -七段显示码输出 END ENTITY XSKZQ; ARCHITECTURE ART OF XSKZQ IS SIGNAL TEMP: INTEGER RANGE 0 TO 99; SIGNAL CNT: STD_LOGIC_VECTOR(2 DOWNTO 0); BEGIN PROCESS(CLK_SCAN) IS BEGIN IF CLK_SCANEVENT AND CLK_SCAN=1 THEN -对各个输出信号进行扫描 IF CNT=111 THEN CNT=000; ELSE CNT=CNT+1; END IF; END IF; END PROCESS; SELOUT TEMP TEMP TEMP TEMP TEMP TEMP TEMP TEMPNULL; END CASE; CASE TEMP IS WHEN 0 =BCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCD=00000000; END CASE; END PROCESS; END ARCHITECTURE ART; 4. 调整控制电路 TZKZQ 的 VHDL 源程序 -TZKZQ.VHD LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY TZKZQ IS PORT(KEY: IN STD_LOGIC_VECTOR(1 DOWNTO 0); -按键信号 CLK_KEY: IN STD_LOGIC; -键盘扫描信号 MAX_DAYS:IN STD_LOGIC_VECTOR(4 DOWNTO 0); -本月最大天数 SEC_EN,MIN_EN,HOUR_EN, DAY_EN,MON_EN,YEAR_EN,WEEK_EN:OUT STD_LOGIC; -异步并行置位使能 HOUR_CUR:IN STD_LOGIC_VECTOR(4 DOWNTO 0); MIN_CUR,SEC_CUR:IN STD_LOGIC_VECTOR(5 DOWNTO 0); YEAR_CUR:IN STD_LOGIC_VECTOR(6 DOWNTO 0); MON_CUR :IN STD_LOGIC_VECTOR(3 DOWNTO 0); DAY_CUR :IN STD_LOGIC_VECTOR(4 DOWNTO 0); WEEK_CUR:IN STD_LOGIC_VECTOR(2 DOWNTO 0); SEC,MIN:BUFFER STD_LOGIC_VECTOR(5 DOWNTO 0); HOUR:BUFFER STD_LOGIC_VECTOR(4 DOWNTO 0); DAY :BUFFER STD_LOGIC_VECTOR(4 DOWNTO 0); MON :BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0); YEAR:BUFFER STD_LOGIC_VECTOR(6 DOWNTO 0); WEEK:BUFFER STD_LOGIC_VECTOR(2 DOWNTO 0); END ENTITY TZKZQ; ARCHITECTURE ART OF TZKZQ IS TYPE STATETYPE IS (NORMAL,SEC_SET,MIN_SET,HOUR_SET,DAY_SET,MON_SET, YEAR_SET,WEEK_SET); SIGNAL MODE:STATETYPE; BEGIN PROCESS(KEY,CLK_KEY) BEGIN IF CLK_KEYEVENT 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; 滁州学院本科毕业论文 24 WEEK_EN MODE=SEC_SET;SEC=SEC_CUR;SEC_EN MODE=MIN_SET;MIN=MIN_CUR;SEC_EN=1;MIN_EN MODE=HOUR_SET;HOUR=HOUR_CUR;MIN_EN=1;HOUR_EN MODE=DAY_SET;DAY=DAY_CUR;HOUR_EN=1;DAY_EN MODE=MON_SET;MON=MON_CUR;DAY_EN=1;MON_EN MODE=YEAR_SET;YEAR=YEAR_CUR; MON_EN=1; YEAR_EN MODE=WEEK_SET;WEEK=WEEK_CUR;YEAR_EN=1;WEEK_EN MODE SEC_EN=0; -异步并行置位使能有效 IF SEC=111011 THEN SEC=000000; -如果秒计数到 59,返回到 0 重新计数 ELSE SEC MIN_EN=0; IF MIN=111011 THEN MIN=000000; ELSE MIN HOUR_EN=0; IF HOUR=11000 THEN HOUR=00000; ELSE HOUR DAY_EN=0; IF DAY=MAX_DAYS THEN DAY=00001; ELSE DAY MON_EN=0; IF MON=1100 THEN MON=0001; ELSE MON YEAR_EN=0; 滁州学院本科毕业论文 25 IFYEAR=1100011 THEN YEAR=0000000; ELSE YEAR WEEK_EN=0; IF WEEK=111 THEN WEEK=001; ELSE WEEKNULL; END CASE; END IF; END IF; END PROCESS; END ARCHITECTURE ART; 滁州学院本科毕业论文 26 致谢 通过设计此论文不仅学到了知识,而且锻炼了自己的能力,使自己对以后的路有了 更加清楚的认识,同时,对未来有了更多的信心。在本论文选题、探究与写作过程中, 丁健老师给予了大量的指导与帮助,在此对丁老师的热心指导与帮助表示衷心的感谢! 最后,祝:我的大学滁州学院年年辉煌!
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!