首页 VHDL数字秒表设计

VHDL数字秒表设计

举报
开通vip

VHDL数字秒表设计 课程设计(综合实验)报告 ( 2014-- 2015 年度第 1 学期) 名    称:VHDL语言与数字系统设计 题    目:        电子秒表        院    系:                        班    级:                        学    号:                        学生姓名:                        指导教师:        陈晓梅        设计周数:          2周     ...

VHDL数字秒表设计
课程 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 (综合实验)报告 ( 2014-- 2015 年度第 1 学期) 名    称:VHDL语言与数字系统设计 题    目:        电子秒 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf         院    系:                        班    级:                        学    号:                        学生姓名:                        指导教师:        陈晓梅        设计周数:          2周          成    绩:                      日期:2015年1月23日 目录 一、课程设计(综合实验)的目的与要求    1 二、设计(实验)正文    2 三、课程设计(综合实验)总结或结论    5 四、参考文献    6 附录(设计流程图、程序、表格、数据等)    7 一、课程设计(综合实验)的目的与要求 1. 目的 1.1学习使用VHDL语言,以及EDA芯片的下载仿真。 1.2掌握较为复杂的逻辑设计和调试。 1.3学习用原理图+VHDL语言设计逻辑电路。 1.4掌握Quartues软件的使用方法。 2. 实验要求 2.1设计一块电子秒表,能够精确反映计时时间。 2.2秒表计时的最大范围为1小时,精度为0.01秒,秒表可得到计时时间的分、秒、0.1秒等量度。 2.3当复位清零有效时,秒表清零并做好计时准备。 2.4设置秒表的启动/停止开关 二、设计(实验)正文 1 设计过程 1. 1十进制计数器 十进制计数器就是输入一个时钟脉冲计一个数,技术当前值通过4位输出端口输出。当计数到九且再来一个脉冲时计数输出清零,且进位端给出高电平。再来脉冲继续计数,进位端清零。计数只有在使能端为1时有效,否则保持。 部分源程序及说明: BEGIN           --当clk,clr,ena信号发生变化时,启动计数功能 IF clr='1' THEN              --复位清零信号有效 tmp<="0000";            --任何时刻都将计数器清零 ELSIF clk'EVENT AND clk='1' THEN            --时钟上升沿 IF ena='1' THEN                    --允许计数 IF tmp="1001" THEN                --计数器满 tmp<="0000"; ELSE tmp<=tmp+'1';            --计数器加1 eND IF; END IF; END IF; END PROCESS; PROCESS(tmp)                --当计数器发生变化时,启动输出功能 BEGIN IF tmp="0000"THEN            --计数器状态为0时 co<='1';                --进位输出信号有效 ELSE co<='0';                --否则,为0 END IF; END PROCESS; q<=tmp;                    --输出计数器的值 END rtl; 1. 2六进制计数器 六进制计数器就是输入一个时钟脉冲计一个数,技术当前值通过4位输出端口输出。当计数到六且再来一个脉冲时计数输出清零,且进位端给出高电平。再来脉冲继续计数,进位端清零。计数只有在使能端为1时有效,否则保持。 部分源程序及说明: PROCESS(clk,clr,ena) BEGIN     IF clr='1' THEN tmp<="0000"; ELSIF clk'EVENT AND clk='1' THEN IF ena='1' THEN IF tmp="0101" THEN            --计数器到6,计数器满 tmp<="0000"; ELSE tmp<=tmp+'1'; END IF; END IF; END IF; END PROCESS; 1. 3顶层模块设计 将十进制计数模块与六进制模块通过例化,级联在一起,得到电子秒表 例化程序说明: BEGIN            --原件例化语句,通过计数器的级联实现数字秒表 U1:cnt10 PORT MAP (clk0,clr0,en,dataout(3 downto 0),co1); U2:cnt10 PORT MAP (co1,clr0,en,dataout(7 downto 4),co2); U3:cnt10 PORT MAP (co2,clr0,en,dataout(11 downto 8),co3); U4:cnt6 PORT MAP (co3,clr0,en,dataout(15 downto 12),co4); U5:cnt10 PORT MAP (co4,clr0,en,dataout(19 downto 16),co5); U6:cnt6 PORT MAP (co5,clr0,en,dataout(23 downto 20)); END rtl; 2. 仿真结果 2.1十进制计数器仿真结果 2.2六进制计数器仿真结果 2.3顶层模块仿真结果 2.4启动/停止与清零功能 说明:在8.0ns到9.5ns时,清零信号为高电平1有效,清零功能触发,秒表清零,在15ns到18ns时,使能信号为低电平0,此时不再继续计数,即暂停功能触发。 三、课程设计(综合实验)总结或结论 1. 结论: 这次课程设计是要求用 EDA技术中的QuartusⅡ6.0作为开发工具 ,设计一个简单的电子秒表,秒表的时钟信号源可由时钟脉冲得到。整个设计分为3个主要模块,十进制计数模块、六进制计数模块和顶层模块。该数字式秒表具有清零功能 ,能够在计时过程中随时停止计时 ,恢复到初始状态。且该秒表还有启动/停止功能。实验证明该秒表工作正常 ,基本上已达到了预期的设计要求。 2. 体会及感想、收获: 开始做设计时总是会犯一些错误,参考书上的例题,问老师和同学,慢慢的对编程熟悉了一些。在不停的改错不停的编译下得到了正确的程序。在设计中要求我们要有耐心和毅力,还要细心,稍有不慎,一个小小的错误就会导致结果的不正确,比如一个分号,或者一个冒号,再或者赋值时的形式,而对错误的检查要求我要有足够的耐心。通过这次设计和设计中遇到的问题,也积累了一定的经验,对以后从事集成电路设计工作会有一定的帮助。现在,又掌握了一个新的技能,虽然还不熟练,但后来会好起来的,我相信。 四、参考文献 [1] 刘欲晓  方强  黄宛宁 《EDA技术与VHDL电路开发应用实践》  电子工业出版社  2009年4月第一版. [2]付永庆 《VHDL语言及其应用》 高等教育出版社  2005年5月第一版 [3]潘松 黄继业 《EDA技术与VHDL》  清华大学出版社  2013年4月第四版 附录(设计流程图、程序、表格、数据等) 1设计过程    1.1 十进制计数器 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY cnt10 IS PORT( clk:IN STD_LOGIC; clr:IN STD_LOGIC; ena:IN STD_LOGIC; q :OUT STD_LOGIC_VECTOR(3 DOWNTO 0); co:OUT STD_LOGIC ); END cnt10; ARCHITECTURE rtl OF cnt10 IS SIGNAL tmp :STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN PROCESS(clk,clr,ena) BEGIN     IF clr='1' THEN tmp<="0000"; ELSIF clk'EVENT AND clk='1' THEN IF ena='1' THEN IF tmp="1001" THEN tmp<="0000"; ELSE tmp<=tmp+'1'; eND IF; END IF; END IF; END PROCESS; PROCESS(tmp) BEGIN IF tmp="0000"THEN co<='1'; ELSE co<='0'; END IF; END PROCESS; q<=tmp; END rtl; 1.2 六进制计数器 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY cnt6 IS PORT( clk:IN STD_LOGIC; clr:IN STD_LOGIC; ena:IN STD_LOGIC; q :OUT STD_LOGIC_VECTOR(3 DOWNTO 0); co:OUT STD_LOGIC ); END cnt6; ARCHITECTURE rtl OF cnt6 IS SIGNAL tmp :STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN PROCESS(clk,clr,ena) BEGIN     IF clr='1' THEN tmp<="0000"; ELSIF clk'EVENT AND clk='1' THEN IF ena='1' THEN IF tmp="0101" THEN tmp<="0000"; ELSE tmp<=tmp+'1'; END IF; END IF; END IF; END PROCESS; PROCESS(tmp) BEGIN IF tmp="0000"THEN co<='1'; ELSE co<='0'; END IF; END PROCESS; q<=tmp; END rtl; 1.3 顶层模块 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY stopwatch IS PORT( clk0:IN STD_LOGIC; clr0:IN STD_LOGIC; en:IN STD_LOGIC; dataout1 :OUT STD_LOGIC_VECTOR(3 DOWNTO 0); dataout2 :OUT STD_LOGIC_VECTOR(3 DOWNTO 0); dataout3 :OUT STD_LOGIC_VECTOR(3 DOWNTO 0); dataout4 :OUT STD_LOGIC_VECTOR(3 DOWNTO 0); co:OUT STD_LOGIC ); END stopwatch;
本文档为【VHDL数字秒表设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_833902
暂无简介~
格式:doc
大小:35KB
软件:Word
页数:14
分类:互联网
上传时间:2019-02-16
浏览量:64