EDA数字秒表设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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计数状态的转换图