EDA数字秒表设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《EDA技术与应用》

课程设计报告

报告题目:数字秒表设计作者所在系部:电子工程系作者所在专业:电子信息工程作者所在班级:

作者姓名:

指导教师:

完成时间:2017-6-10

容摘要

在科技高度发展的今天,集成电路和计算机应用得到了高速发展。尤其是计算机应用的发展。它在人们日常生活已逐渐崭露头角。大多数电子产品多是由计算机电路组成,如:手机、mp3等。而且将来的不久他们的身影将会更频繁的出现在我们身边。各种家用电器多会实现微电脑技术。电脑各部分在工作时多是一时间为基准的。本报告就是基于计算机电路的时钟脉冲信号、状态控制等原理,运用EDA技术及VHDL语言设计出的数字秒表。秒表在很多领域充当一个重要的角色。在各种比赛中对秒表的精确度要求很高,尤其是一些科学实验,他们对时间精确度达到了几纳秒级别。

利用VHDL语言设计基于计算机电路中时钟脉冲原理的数字秒表。该数字秒表能对0秒~59分59.99秒围进行计时,显示最长时间是59分59秒,超过该时间能够进行报警。计时精度达到10ms。设计了复位开关和启停开关。复位开关可以在任何情况下使用,使用以后计时器清零,并做好下一次计时的准备。

关键词:EDA技术、VHDL语言、分频器、计数器、数码管、蜂鸣器

目录

一概述 (1)

二方案设计与论证 (1)

三单元电路设计 (2)

⒊1分频器的设计 (2)

⒊2计时控制模块的设计 (3)

⒊3计时模块的设计 (4)

⒊⒊1十进制计数器的设计 (4)

⒊⒊2六进制计数器的设计 (5)

⒊⒊3计数器的设计 (6)

⒊4显示模块的设计 (8)

⒊⒋1选择器的设计 (8)

⒊⒋2七段译码器的设计 (9)

⒊5报警模块设计 (10)

⒊6顶层文件的设计 (11)

四器件编程与下载 (11)

五性能测试与分析 (12)

⒌1分频器模块的仿真 (12)

⒌2计时控制模块的仿真 (12)

⒌3计时模块的仿真 (13)

⒌⒊1十进制计数器的仿真 (13)

⒌⒊2六进制计数器的仿真 (13)

⒌⒊3计数器的仿真 (13)

⒌4显示模块的仿真 (15)

⒌⒋1扫描模块的仿真 (15)

⒌⒋2七段译码器的仿真 (15)

⒌5报警模块的仿真 (15)

⒌6顶层文件的仿真 (16)

⒌7设计调试 (16)

六实验设备 (16)

七心得体会 (16)

八参考文献 (16)

课程设计任务书

一、概述

EDA是指以计算机为工作平台,融合了应用电子技术、计算机技术、智能化技术的最新成果而开发出的电子CAD通用软件包,它根据硬件描述语言VHDL完成的设计文件,自动完成逻辑编译、化简、分割、综合、优化、布局布线及仿真,直至完成对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。随着科技发展,在现代生活中,计数器应用越来越广泛。EDA技术的应用引起电子产品即系统开发的革命性变革,在MAX+PLUS2环境下采用VHDL语言实现,论述了基于VHDL语言在FPGA芯片的数字设计思想与实现过程。本设计是以VHDL语言为基础的数字秒表。在数字秒表的程序中应用了四个10进制计数器和两个6进制计数器,以及报警器、选择器和显示译码器等。

电子设计自动化技术EDA的发展给电子系统的设计带来了革命性变化,EDA软件设计工具,硬件描述语言,可编程逻辑器件(PLD)使得EDA技术的应用走向普及。VHDL语言是EDA的关键技术之一,它采用自顶向下的设计方法,完成系统的整体设计。

二、方案设计与论证

本系统设计采用自顶向下的设计方案,系统的整体组装设计原理图如图1-1所示,它主要由控制模块、分频模块,计时模块、显示模块和报警模块五部分组成。各模块分别完成计时过程的控制功能、计时功能与显示功能。

图1-1 系统组成框图

三、单元电路设计

⒊1分频器的设计:

由于本设计中需要用到精确的100Hz计时脉冲,因此分频器的设计显得尤为重要。考虑到实验箱上输出频率的限制及所产生及时脉冲的精度要求,采用由5MHz的时钟脉冲经过分频器产生100Hz的计时脉冲。

分频器的设计程序(divclk.vhd)如下:LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY divclk IS

PORT( CLK: IN STD_LOGIC;

CO : OUT STD_LOGIC);

END divclk;

ARCHITECTURE behave OF divclk IS SIGNAL COUNT:INTEGER RANGE 0 TO 49999; BEGIN

PROCESS(CLK)

BEGIN

IF RISING_EDGE(CLK)THEN

IF COUNT=49999 THEN

COUNT<=0;

CO<='1';

ELSE

COUNT<=COUNT+1;

CO<='0';

END IF;

END IF;

END PROCESS; END behave;

⒊2计时控制模块的设计:

计时控制模块的作用是将按键信号转变为计时器的控制信号。计时控制模块可用两个按钮来完成秒表的启动、停止和复位,即启动/暂停键和清零键,由它们产生计数允许/保持和清零信号。此电路设计采用状态机描述。根据启动/暂停键的作用,建立状态转换关系,画出状态转换图如图1—2所示。K 为启动/暂停键输入信号,

K=0时表示按下,

K=1时表示松开。

计时控制的设计程序(key.vdh )如下: LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY key IS

PORT( CLR,CLK,k:IN STD_LOGIC;

EN :OUT STD_LOGIC); END key;

ARCHITECTURE BEHAVE OF key IS

CONSTANT S0: STD_LOGIC_VECTOR (1 DOWNTO 0):="00"; CONSTANT S1: STD_LOGIC_VECTOR (1 DOWNTO 0):="01"; CONSTANT S2: STD_LOGIC_VECTOR (1 DOWNTO 0):="11"; TYPE STATES IS (S0,S1,S2);

K=1 K=0

K=1

图1—2计数状态的转换图

相关文档
最新文档