基于EDA技术的秒表设计.doc

南阳师范学院基于eda技术的秒表设计

收藏

压缩包内文档预览:(预览前20页/共23页)
预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图
编号:517021    类型:共享资源    大小:224.48KB    格式:RAR    上传时间:2015-11-12 上传人:QQ28****1120 IP属地:辽宁
3.6
积分
关 键 词:
毕业设计论文
资源描述:
南阳师范学院基于eda技术的秒表设计,毕业设计论文
内容简介:
编号 : 03063076 南阳师范学院 2007 届毕业生 毕业论文(设计) 题 目: 基于 EDA 技术的 快速计时器 设计 完 成 人: 黄朝伟 班 级: 2003-03 学 制: 4 年 专 业: 电子信息与科学技术 指导教师: 张 帅 完成日期: 2007-03-31 nts 目 录 摘要 1 绪 论 . ( 1) 1.1 EDA技术 . ( 1) 1.2 系统设计意义 . ( 2) 2 数字快速计时器的设计方案及要求 . ( 2) 2.1 系统设计要求 . ( 3) 2.2 系统设计方案 . ( 3) 3 程序设计及分析 . ( 4) 3.1 时基分频模块的 VHDL源程序( CB10.VHD) . ( 4) 3.2 控制模块的 VHDL源程序( CTRL.VHD) . ( 5) 3.3 计时模块的 VHDL源程序 . ( 6) 3.3.1 十进制计数器的 VHDL源程序( CDU10.VHD) . ( 6) 3.3.2 六进制计数器的 VHDL源程序( CDU6.VHD) . ( 7) 3.3.3 计时器的 VHDL源程序( COUNT.VHD) . ( 8) 3.4 显示模块的 VHDL源程序 . ( 10) 3.4.1 数据选择器的 VHDL源程序 ( MULX.VHD) . ( 10) 3.4.2 BCD 七段译码驱动器的 VHDL 源程序( BCD7.VHD) . ( 12) 3.5 顶层设计的 VHDL源程序( MB.VHD) . ( 12) 4 数字快速计时器的系统仿真及结果分析 . ( 15) 4.3 计时电路模块的仿真 . ( 16) 4.3.1 十进制计数器的仿真 . ( 16) 4.3.2 六进制计数器的仿真 . ( 16) 4.4 显示电路模块的仿真 . ( 17) nts 4.4.1 数据选择器的仿真 . ( 17) 4.4.2 BCD 七段译码驱动器的仿真 . ( 17) 4.5 数字快速计时器整个系统的仿真 . ( 17) 4.5.1 快速计时器的起始工作状态 . ( 17) 4.5.2 快速计时器的停止工作状态, . ( 18) 5 结论 . ( 19) 参考文献 .(18) Abstract . ( 20) nts第 1 页 共 20 页 基于 EDA 技术的 快速计时器 设计 作 者:黄朝伟 指导老师: 张 帅 摘 要: 基于 EDA 技术的使用,本文着重讨论了采用 EDA 技术设计的 快速计时器 设计,使用硬件描述语言 VHDL,在开发软件 MAX+PLUS2 进行输入、编译、综合、仿真,得到的仿真波形。实验结果表明,与原有的数控系统的控制电路部分相比采用 EDA 技术的 快速计时器 使得数控系统具有更高的可靠性、实时性、高运算速度以及高集成度。同时由于 EDA 技术中 FPGA 芯片具有在系统可编程特 性,因此该 快速计时器 的设计可像软件一样随时更改。 关键词: EDA; VHDL; 快速计时器 设计 1 绪 论 电子技术的发展推动着社会的发展,人民从使用收音机到黑白电视机、彩色电视机、数字电视机到计算机进入千家万户,通过 Internet 网可以了解世界的变化,这一切都是电子技术发展的结果。但是,随着信息化社会的进一步发展,传统的电子技术设计与芯片的制造也就不能适应社会发展的需要, EDA 技术正是适应社会的这一需要而产生的。 EDA 技术就是以大规模可编程逻辑器件为载体,以硬件描述语言为系统逻辑描述的表达方式,以计算 机、大规模可编程逻辑器件的开发软件及试验开发系统为设计工具,通过有关的开发软件,自动完成电子系统的设计。利用 EDA 技术进行电子设计它可以实现用软件的方式设计硬件;系统可现场编程,在线升级;整个系统低功耗,多功能等特点,成为现代电子设计发展的趋势 123。 1.1 EDA 技术 随着数字集成技术的飞速发展,数字系统的规模和技术复杂度也在急剧增长,人工设计数字系统变得十分困难,必须依靠 EDA 技术。 EDA( Electronic Design Automation)技术就是电子设计自动化,用 EDA 技术设 计数字系统的实质是一种自顶向下的分层设计方法 4。在每一层次nts第 2 页 共 20 页 上,都有描述、划分、综合和验证四种类型的工作。描述是把系统设计输入到 EDA 软件的过程,它可以采用图形输入、硬件描述语言或二者混合使用的方法输入。整个设计过程只有该部分由设计者完成。划分、综合和验证则采用 EDA 软件平台自动完成。这样做极大地简化了设计工作,提高了效率,因此,采用 EDA 技术设计数字系统得到了越来越广泛的应用 1。 与手工设计相比 EDA 技术有如下特点 7: 采用自顶向下设计方案 应用硬件描述语言( HDL)描述设计 能够自动完成仿真和 测试 开发技术的标准化和规范化 对工程技术人员的硬件知识和经验要求低 1.2 系统设计 意义 快速计时器 由于其计时精确,分辨率高( 0.01 秒),在各种竞技场所得到了广泛的应用。 本数字 快速计时器 可用于体育比赛,计时精度大于 1/100S,计时器能显示 1/100S 的时间,计时器的最长计时时间为 1小时,显示的最长时间为 59 分 59.99 秒。系统具有简单、工作稳定可靠等优点,具有一定的实际意义。与原有的数控系统的控制电路部分相比采用 EDA 技术的 快速计时器 使得数控系统具有更高的可靠性、实时性、高运算速度以及高集成度。 2 数字 快速计时器 的设计 方案及要求 本文介绍的数字 快速计时器 设计,利用基于 VHDL 的 EDA 设计工具,采用大规模可编程逻辑器件 FPGA,通过设计芯片来实现系统功能。 快速计时器 由于其计时精确,分辨率高( 0.01 秒),在各种竞技场所得到了广泛的应用。 快速计时器 的工作原理与多功能时钟基本相同,唯一不同的是,由于 快速计时器 的计时时钟信号,由于其分辨率为 0.01 秒,所以整个 快速计时器 的工作时钟是在 100Hz 的时钟信号下完成。当 快速计时器 的计时小于 1 个小时时,显示的格式是 mm-ss-xx( mm 表nts第 3 页 共 20 页 示分钟: 0 59; ss 表示秒: 0 59; xx 表示百分之一秒: 0 99),当快速计时器 的计时大于或等于一个小时时,显示的和多功能时钟是一样的,就是 hh-mm-ss( hh 表示小时: 0 99),由于 快速计时器 的功能和钟表有所不同,所以 快速计时器 的 hh 表示的范围不是 0 23,而是 099,这也是和多功能时钟不一样的地方。 2.1 系统设计要求 数字 快速计时器 的计时范围是 0 秒 到 59.99秒,显示的最长时间为 59分 59秒。 数字 快速计时器 的计时精度是 10 ms。 复位开关可以在任何情况下使用,即便在计时过程中,只要按一下复位开关,计 时器就清零,并做好下次计时的准备。 具有启 /停开关,即按一下启 /停开关,启动计时器开始计时,再按一下复位开关则停止计时。 2.2 系统设计方案 根据系统设计要求,系统的组成框图如图 1 所示。 图 1 系统的组成框图 系统设计采用自顶向下的设计方法,系统的整体组装设计主要由控制模块、时基分频模块、计时模块和显示模块四部分组成。 ( 1)控制模块 计时控制模块的作用是对计时过程进行控制。计时控制模块可用两个按钮 快速计时器 的启动、停止和复位。 ( 2)计时模块 nts第 4 页 共 20 页 计时模块执行计时功能,计时的方法是对标准时钟脉冲计 数 6。由于计时范围是 0 秒到 59 分 59.99 秒,所以计数器可以由四个十进制计数器和两个六进制计数器构成,其中毫秒位、十毫秒位、秒位和分位采用十进制计数器,十秒位和十分位采用六进制计数器。 ( 3)显示模块 计时显示电路的作用是将计时值在 LED 七段数码管上显示出来。计时电路产生的计时值经过 BCD 七段译码管后,驱动 LED数码管。计时显示电路的实现方案采用扫描显示,即每次只驱动一位数码管,各位数据轮流驱动对应的数码管进行显示。 3 程序 设计 及分析 3.1 时基分频模块的 VHDL 源程序( CB10.VHD) architecture ART OF CB10 IS SIGNAL COUNT: std_logic_vector(3 downto 0); BEGIN PROCESS(CLK) BEGIN IF RISING_EDGE(CLK) THEN IF COUNT=1001 THEN COUNTENENENENENOUTBCDOUTBCDOUTBCDOUTBCDOUTBCDOUTBCDOUTBCDOUTBCDOUTBCDOUTBCDOUTBCD=0000; SEG=00000000; END CASE; END IF; END PROCESS; END ART; 程序分析:此程序中包含两个进程,信号 CLK 都将启动这两个进程。对于第一个进程:当信号 CLK 发生变化,如果此时复位信号 CLR为高电平, COUNT 将置为“ 1111”;否则如果遇到信号 CLK 的上升沿,又测得EN= 1,即允许计数,此时若计数值 小于 9,即 SCOUNT1001,计数器将进行正常计数,即执行 COUNT=COUNT+1;否则当计数值COUNT 达到 9 时,输出高电平,作为十进制计数的进位溢出信号,当计数值 COUNT 为其它值时输出低电平;但如果 测得 EN= 0使SCOUNT6 保持原值,即将计数值向端口输出: COUNT6=SCOUNT6。 对于第二个进程:当信号 CLK 发生变化,此时如果遇到信号 CLK 的上升沿,将执行 CASE 语句。根据信号 COUNT的值赋予不同的 OUTBCD 和SEG 的值。从而实现数据选择器的功能。 nts第 12 页 共 20 页 3.4.2 BCD 七段译码驱动器的 VHDL 源程序( BCD7.VHD) ENTITY BCD7 IS PORT(BCD:IN STD_LOGIC_VECTOR(3 DOWNTO 0); LED:OUT STD_LOGIC_VECTOR(6 DOWNTO 0); END BCD7; architecture ART OF BCD7 IS BEGIN LED=1111110 WHEN BCD=0000 ELSE 0110000 WHEN BCD=0001 ELSE 1101101 WHEN BCD=0010 ELSE 1111001 WHEN BCD=0011 ELSE 0110011 WHEN BCD=0100 ELSE 1011011 WHEN BCD=0101 ELSE 1011111 WHEN BCD=0110 ELSE 1110000 WHEN BCD=0111 ELSE 1111111 WHEN BCD=1000 ELSE 1111011 WHEN BCD=1001 ELSE 0000000;END ART; 程序分析:此程序主要由 WHEN_ELSE 结构的并行语句构成,根据信号 BCD 的值赋值于 LED。比如, BCD 为“ 0001”,则 LED 为“ 0110000”。 3.5 顶层设计的 VHDL 源程序( MB.VHD) library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; ENTITY MB IS PORT(SP,CLR,CLK: IN STD_LOGIC; CO,EN: OUT STD_LOGIC; LED: OUT STD_LOGIC_VECTOR(6 DOWNTO 0); OUTBCD:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); SEG:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); END MB; nts第 13 页 共 20 页 architecture ART OF MB IS COMPONENT CTRL PORT(CLK,CLR,SP:IN STD_LOGIC; EN:OUT STD_LOGIC); END COMPONENT; COMPONENT CB10 PORT(CLK:IN STD_LOGIC; CO:OUT STD_LOGIC); END COMPONENT; COMPONENT COUNT PORT(CLK: IN STD_LOGIC; CLR:IN STD_LOGIC; EN: IN STD_LOGIC; S_1MS: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); S_10MS: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); S_100MS: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); S_1S: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); S_10S: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); S_1MIN: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); S_10MIN: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); HOUR: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); END COMPONENT; COMPONENT BCD7 PORT(BCD:IN STD_LOGIC_VECTOR(3 DOWNTO 0); LED:OUT STD_LOGIC_VECTOR(6 DOWNTO 0); END COMPONENT; COMPONENT MULX PORT(CLK,CLR,EN: IN STD_LOGIC; OUTBCD: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); S_10MS: IN STD_LOGIC_VECTOR(3 DOWNTO 0); S_100MS: IN STD_LOGIC_VECTOR(3 DOWNTO 0); nts第 14 页 共 20 页 S_1S: IN STD_LOGIC_VECTOR(3 DOWNTO 0); S_10S: IN STD_LOGIC_VECTOR(3 DOWNTO 0); S_1MIN: IN STD_LOGIC_VECTOR(3 DOWNTO 0); S_10MIN: IN STD_LOGIC_VECTOR(3 DOWNTO 0); HOUR: IN STD_LOGIC_VECTOR(3 DOWNTO 0); S_1MS: IN STD_LOGIC_VECTOR(3 DOWNTO 0); SEG: OUT STD_LOGIC_VECTOR(7 DOWNTO 0); END COMPONENT; SIGNAL C,E:STD_LOGIC; SIGNAL MS1_S,MS10_S,MS100_S:STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL S1S_S,S10_S:STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL MIN1_S,MIN10_S:STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL H:STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL BCD_S:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN U0:CTRL PORT MAP(CLR,CLK,SP,E); U1:CB10 PORT MAP(CLK,C); U2:COUNT PORT MAP(C,CLR,E,MS1_S,MS10_S,MS100_S,S1S_S,S10_S,MIN1_S,MIN10_S,H); U3:MULX PORT MAP(CLK,ClR,E,BCD_S,MS10_S,MS100_S,S1S_S,S10_S,MIN1_S,MIN10_S,H,MS1_S,SEG); U4:BCD7 PORT MAP(BCD_S,LED); CO=C;EN=E;OUTBCD=BCD_S;END ART; 程序分析: 以上程序是 快速计时器 的顶层 VHDL 描述。 为了达到连接底层元件形成更高层次的电路设计结构,文件使用了元件例化语句。文件在实体中首先定义了计数器 顶层设计文件的端口信号,然后在architecture 和 BEGIN 之间利用 COMPONENT 语句对准备调用的元件nts第 15 页 共 20 页 作了声明,并定义了 C,E, MS1_S,MS10_S,MS100_S, S1S_S,S10_S,MIN1_S,MIN10_S, H, BCD_S 十一个信号作为器件内部的连接线。最后利用端口映射语句 PORT MAP()将控制器、时基分频器、 计数器、数据选择器和 BCD 七段译码驱动器连接起来构成一个完整的计数器。(详细功能见仿真图的分析) 4 数字 快速计时器 的系统仿真及结果分析 设计选用 ALTERA 公司的 FPGA 芯片 ACEX1K 系列的 EP1K30TC144-3,在开发软件 MAX+PLUS2 进行输入、编译、综合、仿真,得到的仿真波形。 图 2 时基分频模块的仿真波形图 结果分析: 当每一个 CLK 的上升沿后, COUNT 输出加 1,而当COUNT 输出为 9 时, CO 输出高电平进位信号 ,同时 COUNT 变为 0。 图 3 控制模块的仿真波形图 结果分析: ( 1)当复位信号 CLR 为高电平时 EN 为低电平;( 2)当复位信号 CLR 为低电平时信号 SP 高电平时 EN 为高电平,表示 快速计时器 启动;当信号 SP 从低电平变为高电平时 EN 变为低电平,表示快速计时器 暂停;当信号 SP 再从低电平变为高电平时 EN 变为高电平,表示 快速计时器 继续。 nts第 16 页 共 20 页 4.3 计时电路模块的仿真 4.3.1 十进制计数器的仿真 图 4 十进制计数器的仿真波形图 结果分析: ( 1)当 CLR 为高电平, EN 为低电平时, COUNT10 输出为 0,即计数清零,并禁止计数。( 2)当 CLR 为低电平, EN 为高电平时,每一个 CLK 的上升沿后, COUNT10 输出加 1,而当 COUNT10输出为 9 时, CN 输出高电平进位信号。( 3)当 EN 为低电平时,计数器保持原有的计数“ 7”,当 EN 为高 电平时继续计数。 4.3.2 六进制计数器的仿真 图 5 六进制计数器的仿真波形图 结果分析: ( 1)当 CLR 为高电平, EN 为低电平时, COUNT6 输出为 0,即计数清零,并禁止计数。( 2)当 CLR 为低电平, EN 为高电平时,每一个 CLK 的上升沿后, COUNT6 输出加 1,而当 COUNT6 输出为 5 时, CN 输出高电平进位信号。( 3)当 EN 为低电平时,计数器保持原有的计数“ 0”,当 EN 为高电平时继续计数。 图 6 计数器的仿真波形图 nts第 17 页 共 20 页 结果分析: 当 CLR 为低电平, EN 为高电平时,每一个 CLK 的上升沿后, S_1MS 的值为“ 1”,一直加到“ 9”,再从“ 0”开始;当 S_1MS从“ 9”变为“ 0”时, S_10MS 的值加“ 1”。以此类推, S_100MS, S_1S,S_10S, S_1MIN, S_10MIN, HOUR;实现计数器的功能。 4.4 显示电路模块的仿真 4.4.1 数据选择器的仿真 图 7 数据选择器的仿真波形图 结果分析: ( 1)当 CLR 为高电平, EN 为低电平时, SEG、 OUTBCD输出为 0。( 2)当 CLR 为低电平, EN 为高电平时,每一个 CLK 的上升沿后, 根据信号 COUNT 的值赋予不同的 OUTBCD 和 SEG 的值。比如说,COUNT 第一次为“ 1”, OUTBCD 输出“ 1”, SEG 输出“ FE”; COUNT 第一次为“ 4”, OUTBCD 输出“ 7”, SEG输出“ F7”。 4.4.2 BCD七段译码驱动器的仿真 图 8 BCD 七段译码驱动器的仿真波形图 结果分析: 此 仿真图相对简单,根据输入信号 BCD 选择 LED 的值。比如 BCD为“ 3”, LED 为“ 79”; BCD为“ A”, LED 为“ 00”; BCD 为“ 4”, LED为“ 33”。 4.5 数字 快速计时器 整个系统的仿真 4.5.1 快速计时器 的起始工作状态 按下开始键 SP, 快速计时器 开始计时 nts第 18 页 共 20 页 图 9 快速计时器 起始工作状态仿真波形图 4.5.2 快速计时器 的停止工作状态, 按下开始键 SP, 快速计时器 停止计时 图 10 快速计时器 停止工作状态仿真波形图 结果分析:首先, 当信号 CLR 为低电平时, 快速计时器 清零;当复位信 号 CLR 为低电平时,如果 SP 从低电平变为高电平, 快速计时器启动开始计时,使能信号从低电平变为高电平; EN 这时 分频信号 CO 对时钟信号 CLK 分频;当分频信号 CO 从低电平变为高电平时, S_1MS 从“ 0”变为“ 1”, CO 再从低电平变为高电平时, S_1MS 再加“ 1”,一直加到“ 9”;当 S_1MS 从“ 9”变为“ 0”时, S_10MS 的值加“ 1”;以此类推,nts第 19 页 共 20 页 实现 快速计时器 的功能。同时 计时电路产生的计时 BCD七段译码管后,驱动 LED数码管。计时显示电路的实现方案采用扫描显示,即每次只驱动一位数码管,各位数据轮流驱动对应的数码管进行显示。 当 SP 从低 SP 从低电平变为高电平时,使能信号 EN 从高电平变为低电平; 快速计时器 停止计时。 5 结 论 本系统设计用了现在 EDA 设计手段,基于 FPGA 采用 VHDL 语言编程实现数字 快速计时器 的设计,运用层次化设计方法,完成各电路模块的连接。实验结果表明,本系统的数字 快速计时器 设计很成功。本数字 快速计时器 可用于体育比赛,计时精度大于 1/100S,计时器能显示 1/100S的时间,计时器的最长计时时间为 1小时,显示的最长时间为 59分 59.99秒。系统具有简单、工作稳定可靠等优点,具有一定的实际意义。 参 考 文 献 1.潘松等 .EDA 技术实用教程 M.科学出版社 .2002 年 2.潘松等 .VHDL 教程 M.西安电子科技大学出版社 .2000 年 3.郑俭锋 .VHDL 设计及实现 M.电子设计应用 .2005 年 4.候伯亨 ,顾新 .VHDL 硬件描述语言与数字逻辑电路设计 M.西安:西安电子科技大学出版社 ,1999:3 5.曾繁泰 ,陈美金 .VHDL 程序设计 M.北京:清华大学出版社 .2001:13 6.潘松等 .VHDL 实用教程 M .成都:电子科技大学出版社 .2000:369,370,371 7.李景华,杜玉远 .可编程逻辑器件与 EDA 技术 M .东北大学出版社 .2000:42 8.张昌凡 .可编程逻辑器件及 VHDL 设计技术 M .广州:华南理工大学出版社 ,2001.
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
提示  人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:南阳师范学院基于eda技术的秒表设计
链接地址:https://www.renrendoc.com/p-517021.html

官方联系方式

2:不支持迅雷下载,请使用浏览器下载   
3:不支持QQ浏览器下载,请用其他浏览器   
4:下载后的文档和图纸-无水印   
5:文档经过压缩,下载后原文更清晰   
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

网站客服QQ:2881952447     

copyright@ 2020-2025  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

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