VHDL数字秒表设计_第1页
VHDL数字秒表设计_第2页
VHDL数字秒表设计_第3页
VHDL数字秒表设计_第4页
VHDL数字秒表设计_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 课程 课程设计(综合实验)报告 课程设计(综合实验)报告( 2014- 2015 年度第 1 学期)名 称:VHDL语言与数字系统设计 题 目: 电子秒表 院 系: 班 级: 学 号: 学生姓名: 指导教师: 陈晓梅 设计周数: 2周 成 绩: 日期:2015年1月23日目录一、课程设计(综合实验)的目的与要求1二、设计(实验)正文2三、课程设计(综合实验)总结或结论5四、参考文献6附录(设计流程图、程序、表格、数据等)71 课程 课程设计(综合实验)报告一、课程设计(综合实验)的目的与要求1 目的 1.1学习使用VHDL语言,以及EDA芯片的下载仿真。1.2掌握较为复杂的逻辑设计和调试。1

2、.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

3、 -当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"ELSEtmp<=tmp+'1'-计数器加1eND IF;END IF;END IF;END PROCESS;PR

4、OCESS(tmp)-当计数器发生变化时,启动输出功能BEGINIF tmp="0000"THEN-计数器状态为0时co<='1'-进位输出信号有效ELSEco<='0'-否则,为0END IF;END PROCESS;q<=tmp;-输出计数器的值END rtl;1. 2六进制计数器六进制计数器就是输入一个时钟脉冲计一个数,技术当前值通过4位输出端口输出。当计数到六且再来一个脉冲时计数输出清零,且进位端给出高电平。再来脉冲继续计数,进位端清零。计数只有在使能端为1时有效,否则保持。部分源程序及说明:PROCESS(clk,

5、clr,ena)BEGIN IF clr='1' THENtmp<="0000"ELSIF clk'EVENT AND clk='1' THENIF ena='1' THENIF tmp="0101" THEN-计数器到6,计数器满tmp<="0000"ELSEtmp<=tmp+'1'END IF;END IF;END IF;END PROCESS;1. 3顶层模块设计将十进制计数模块与六进制模块通过例化,级联在一起,得到电子秒表例化程序说明:B

6、EGIN-原件例化语句,通过计数器的级联实现数字秒表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 downt

7、o 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技术中的Quartus6.0作为开发工具 ,设计一个简单的电子秒表,秒表的时钟信号源可由时钟脉冲得到。整个设

8、计分为3个主要模块,十进制计数模块、六进制计数模块和顶层模块。该数字式秒表具有清零功能 ,能够在计时过程中随时停止计时 ,恢复到初始状态。且该秒表还有启动/停止功能。实验证明该秒表工作正常 ,基本上已达到了预期的设计要求。 2. 体会及感想、收获: 开始做设计时总是会犯一些错误,参考书上的例题,问老师和同学,慢慢的对编程熟悉了一些。在不停的改错不停的编译下得到了正确的程序。在设计中要求我们要有耐心和毅力,还要细心,稍有不慎,一个小小的错误就会导致结果的不正确,比如一个分号,或者一个冒号,再或者赋值时的形式,而对错误的检查要求我要有足够的耐心。通过这次设计和设计中遇到的问题,也积累了一定的经验,

9、对以后从事集成电路设计工作会有一定的帮助。现在,又掌握了一个新的技能,虽然还不熟练,但后来会好起来的,我相信。四、参考文献1 刘欲晓 方强 黄宛宁. EDA技术与VHDL电路开发应用实践 电子工业出版社 2009年4月第一版.2付永庆 VHDL语言及其应用 高等教育出版社 2005年5月第一版3潘松 黄继业 EDA技术与VHDL 清华大学出版社 2013年4月第四版附录(设计流程图、程序、表格、数据等)1设计过程 11 十进制计数器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY cn

10、t10 ISPORT(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 ISSIGNAL tmp :STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN PROCESS(clk,clr,ena)BEGIN IF clr='1' THENtmp<="0000"ELSIF clk'EVENT AND cl

11、k='1' THENIF ena='1' THENIF tmp="1001" THENtmp<="0000"ELSEtmp<=tmp+'1'eND IF;END IF;END IF;END PROCESS;PROCESS(tmp)BEGINIF tmp="0000"THENco<='1'ELSEco<='0'END IF;END PROCESS;q<=tmp;END rtl;12 六进制计数器LIBRARY IEEE;USE

12、IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY cnt6 ISPORT(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 ISSIGNAL tmp :STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN PROCESS(clk,clr,ena)BEGIN IF clr='

13、;1' THENtmp<="0000"ELSIF clk'EVENT AND clk='1' THENIF ena='1' THENIF tmp="0101" THENtmp<="0000"ELSEtmp<=tmp+'1'END IF;END IF;END IF;END PROCESS;PROCESS(tmp)BEGINIF tmp="0000"THENco<='1'ELSEco<='0'E

14、ND IF;END PROCESS;q<=tmp;END rtl;13 顶层模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY stopwatch ISPORT(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 :O

15、UT STD_LOGIC_VECTOR(3 DOWNTO 0);co:OUT STD_LOGIC);END stopwatch;ARCHITECTURE rtl OF stopwatch ISCOMPONENT cnt6 ISPORT(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 component cnt6;COMPONENT cnt10 ISPORT(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 COMPONENT cnt10;SIGNAL co1: STD_LOGIC;SIGNAL co2: STD_LOGIC;SIGNAL co3: STD_

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论