数字秒表设计EDA课设报告
EDA数字秒表设计
《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秒表实验报告
《EDA课程设计——秒表》题目数字秒表学院信息学院专业电子信息工程班级 11电子A姓名朱彦杰学号指导教师凌朝东课题名称秒表完成时间11.28指导教师凌朝东学生姓名朱彦杰班级11电子A总体设计要求和技术要点设计要求:5. 秒表,难度系数0.9要求:计时范围为0∼59 分59 秒,精度为百分之一秒;能同时显示分秒信息(LED 数码管)。
技术要点:1.利用VHDL语言设计基于计算机电路中时钟脉冲原理的数字秒表。
该秒表计时范围为0秒~59分59.99秒,显示的最长时间为59分59秒,计时精度为10毫秒以内,具有复位功能。
2.秒表有共有6个输出显示,分别为百分之一秒、十分之一秒、秒、十秒、分、十分,所以共有6个计数器与之相对应,6个计数器的输出全都为BCD码输出。
一、系统组成模块连接图和系统框图- 3 -二、模块器件及其程序1、分频模块及其程序本模块实现脉冲分频,本实验使用的EP2C5T144C8的频率计进行50MHz 分频产生100HZ 的脉冲。
LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY fenpin ISPORT ( CLK: IN STD_LOGIC; OUTCLK: out std_logic ); END fenpin;ARCHITECTURE behav OF fenpin IS BEGINPROCESS( CLK )variable cnt:integer range 0 to ; BEGINIF CLK'EVENT AND CLK = '1' THEN if cnt= then cnt:=0; outclk<='1'; elsecnt:=cnt+1;分频器十进制计数器 时钟频率十进制计数器 十进制计数器六进制计数器十进制计数器 六进制计数器输出到LED开始清零outclk<='0';end if;END IF;END PROCESS;END behav;2、十进制程序产生99毫秒、秒的低位、分的低位的功能。
数字秒表实验报告---EDA
数字秒表实验报告—EDA项目背景本次实验旨在使用EDA工具设计一个数字秒表电路,通过FPGA开发板进行验证,具体要求如下:1.实现毫秒计时,并可以在数码管上显示当前计时数值。
2.支持开始/暂停、清零等操作。
设计思路本次实验的数字秒表电路由以下模块构成:1.时钟发生器模块:用于产生时钟信号,以驱动计数器进行计数。
2.计数器模块:通过时钟信号进行计数,并将计数结果传递给显示模块。
3.显示模块:将计数结果转换为数码管显示的数码信号,并控制数码管进行显示。
其中,时钟发生器模块和计数器模块都是基础电路模块,在这里不再赘述,下面将着重介绍显示模块的设计。
显示模块设计显示模块主要由控制模块和数码管模块构成。
控制模块根据计数结果和当前时间,控制数码管模块显示相应的数码。
在这里,我们采用的是共阳极的数码管。
具体来说,我们将控制模块分为两个子模块:时分秒计数器和数码显存控制器。
时分秒计数器时分秒计数器通过接收计数器模块的计数结果,将其转换为时分秒,并存储在计数器寄存器中。
计数器寄存器是一个64位的寄存器,由三个16位的子寄存器组成,用于存储时分秒。
当计数器模块的计数结果为0时,时分秒计数器会重置计数器寄存器。
数码显存控制器数码显存控制器由一个6位的数据存储器和一个6位的显示寄存器组成。
当计数器模块进行计数时,显示寄存器中存储的数码信号会根据时分秒计数器的值进行更新。
同时,数码显存控制器也会控制共阳极数码管进行相应的显示操作。
原理图设计根据以上的设计思路,我们可以得到数字秒表电路的原理图如下:原理图原理图EDA设计流程设计环境本次实验使用的是Xilinx ISE Design Suite 14.7,这是一个使用VHDL进行设计的EDA工具。
设计流程1.新建工程并设置工程名、目录、设备等基本信息。
2.添加源文件,包括时钟发生器模块、计数器模块、显示模块,以及顶层模块。
将所有模块综合为一个顶层设计。
3.检查时序约束,以保证电路能够正确运行。
EDA数字秒表设计
北华航天工业学院《EDA技术综合设计》课程设计报告"报告题目:数字秒表设计作者所在系部:电子工程系作者所在专业:电子信息工程作者所在班级:作者姓名:"指导教师姓名:完成时间: 2010年12月12日内容摘要应用VHDL语言设计数字系统,很多设计工作可以在计算机上完成,从而缩短了数字系统的开发时间。
我们尝试利用VHDL为开发工具设计数字秒表。
秒表的逻辑结构较简单,它主要由十进制计数器、六进制计数器、12500的分频器、数据选择器、和显示译码器等组成。
在整个秒表中最关键的是如何获得一个精确的100HZ 计时脉冲,除此之外,整个秒表还需有一个启动信号和一个清零信号,以便秒表能随意停止及启动。
秒表有共有6个输出显示,分别为百分之一秒、十分之一秒、秒、十秒、分、十分,所以共有6个计数器与之相对应,6个计数器的输出全都为BCD码输出,这样便与同显示译码器连接。
开关设置秒表报警器,每10秒钟,蜂鸣器鸣响1声,发光二极管闪烁。
当计时达60分钟后,蜂鸣器鸣响10声。
"关键词:VHDL、数据选择器、计数器、显示器目录一、系统组成框图 (5)/二、各模块原理及其程序 (5)1、六进制计数器 (6)2、十进制计数器 (6)3、蜂鸣器 (7)4、译码器 (8)5、控制器 (9)三、系统仿真 (10)1、: (10)2、六进制计数器3、十进制计数器 (10)4、蜂鸣器 (10)5、译码器 (10)6、控制器 (10)四、心得体会 (11)^~课程设计任务书系统组成框图~二.各模块及的原理及其程序(1)六进制计数器library ieee;use count6 isport (clk,clr,start:in std_logic;daout:out std_logic_vector(3 downto 0);,cout:out std_logic );end count6;architecture behave of count6 issignal temp:std_logic_vector(3 downto 0);beginprocess(clk,clr)beginif clr='1' then temp<="0000";—cout<='0';elsif clk'event and clk='1' thenif start='1'thenif temp>="0101" then temp<="0000";cout<='1';else temp<=temp+1; cout<='0';end if;end if;"end if;end process;daout<=temp;end behave;(2)十进制计数器library ieee;use count10 isport((clr,start,clk:in std_logic;cout:out std_logic;daout:buffer std_logic_vector(3 downto 0));end count10;architecture behave of count10 isbeginprocess(clr,start,clk)begin^if clr='1' then daout<="0000";elsif ( clk'event and clk='1') thenif start='1' thenif daout="1001" then daout<="0000";cout<='1';else daout<=daout+1;cout<='0';end if;end if;end if;;end process;end behave;(3)蜂鸣器library ieee;use alarm isport(clk,I:in std_logic;q:out std_logic);"end alarm;architecture ar of alarm is signal n:integer range 0 to 20; signal q0:std_logic;beginprocess(clk)beginif clk'event and clk='1'~thenif i='0' then q0<='0';n<=0;elsif n<=19 and i='1' thenq0<=not q0;n<=n+1;else q0<='0';end if;:end if;end process;q<=q0;end ar;(4)译码器library ieee;useentity deled is]port(num:in std_logic_vector(3 downto 0);led:out std_logic_vector(6 downto 0));end deled ;architecture a of deled isbeginprocess(num)begincase num is$when"0000"=>led<="0111111";when"0001"=>led<="0000110";when"0010"=>led<="1011011";when"0011"=>led<="1001111";when"0100"=>led<="1100110";when"0101"=>led<="1101101";when"0110"=>led<="1111101";when"0111"=>led<="0100111";-when"1000"=>led<="1111111";when"1001"=>led<="1101111";when others=>led<="0000000";end case;end process;end a;(5)控制器library ieee;^use seltime isport(clr,clk: in bit;dain0,dain1,dain2,dain3,dain4,dain5: in std_logic_vector(3 downto 0); sel: out std_logic_vector(2 downto 0);daout: out std_logic_vector(3 downto 0));end seltime;architecture a of seltime issignal temp:integer range 0 to 5;?beginprocess(clk)beginif (clr='1') thendaout<="0000";sel<="000";temp<=0;elsif (clk='1'and clk'event) then@if temp=5 then temp<=0;else temp<=temp + 1;end if;case temp iswhen 0=>sel<="000";daout<=dain0; when 1=>sel<="001";daout<=dain1; when 2=>sel<="010";daout<=dain2; when 3=>sel<="011";daout<=dain3; ;when 4=>sel<="100";daout<=dain4; when 5=>sel<="101";daout<=dain5; end case;end if;end process;end a;三.系统仿真(1)六进制【(2)十进制(3)蜂鸣器(4)译码器(5)控制器四.心得体会开始做设计时总是会犯一些错误,只有经过不停的改错不停的编译才能得到正确的程序。
EDA课程设计--数字秒表设计
电子课程设计—数字秒表的设计数字秒表的设计数字秒表的设计一、设计任务与要求1、数字秒表的计时范围是0秒~59分59.99秒,显示的最长时间为59分59秒。
秒。
2 2、数字秒表的计时精度是、数字秒表的计时精度是10ms 10ms。
3 3、、复位开关可以在任何情况下使用,复位开关可以在任何情况下使用,即便在计时过程中,即便在计时过程中,即便在计时过程中,只要按一下复位只要按一下复位开关,计时器就清零,并做好下次计时的准备。
开关,计时器就清零,并做好下次计时的准备。
4 4、、具有启具有启//停开关,停开关,即按一下启即按一下启即按一下启//停开关,停开关,启动计时器开始计时,启动计时器开始计时,启动计时器开始计时,再按一下再按一下启/停开关则停止计时。
停开关则停止计时。
二、总体框图由频率信号输出端输出频率为100HZ 的时钟信号,输入到微妙模块的时钟端clk ,高/低电平电平频率信号输入输入微妙模块微妙模块秒模块秒模块分模块分模块置数/位选位选显示模块显示模块进位进位微妙模块为100进制的计数器,产生的进位信号co 输入到下一级秒模块的时钟端,以此类推,直到分模块计数到59进60时,产生的进位信号不输出,计数清零。
将微妙、秒、分产生的计数通过置数/位选再通过显示模块实时显示。
设计方案:利用一块芯片完成除时钟源,利用一块芯片完成除时钟源,按键和显示器之外的所有数字电路功按键和显示器之外的所有数字电路功能。
所有数字逻辑功能都在CPLD 器件上用VHDL 语言实现。
这样设计具有体积小,设计周期短,调试方便,故障率地和修改升级容易等特点,本设计采用自顶向下,混合输入方式(原理图输入——顶层文件链接和VHDL 语言输入——各模块程序设计)实现数字秒表的设计,下载和调试。
三、功能模块1.1. 微秒模块微秒模块采用VHDL 语言输入方式,以时钟clk clk,清零信号,清零信号clr 以及暂停信号STOP 为进程敏感变量,程序如下:为进程敏感变量,程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all; entity MINSECONDb isport(clk,clrm,stop:in std_logic;----时钟时钟//清零信号清零信号secm1,secm0:out std_logic_vector(3 downto 0);----秒高位秒高位//低位co:out std_logic);------- co:out std_logic);-------输出输出输出//进位信号进位信号 end MINSECONDb;architecture SEC of MINSECONDb is signal clk1,DOUT2:std_logic;beginprocess(clk,clrm)variable cnt1,cnt0:std_logic_vector(3 downto 0);---计数计数 VARIABLE COUNT2 :INTEGER RANGE 0 TO 10 beginIF CLK'EVENT AND CLK='1'THENIF COUNT2>=0 AND COUNT2<10 THEN COUNT2:=COUNT2+1; ELSE COUNT2:=0;DOUT2<= NOT DOUT2; END IF; END IF;if clrm='1' then----if clrm='1' then----当当clr 为1时,高低位均为0cnt1:="0000"; cnt0:="0000";elsif clk'event and clk='1' then if stop='1' then cnt0:=cnt0; cnt1:=cnt1; end if;if cnt1="1001" and cnt0="1000" ;then----then----当记数为当记数为9898(实际是经过(实际是经过59个记时脉冲)个记时脉冲) co<='1';----co<='1';----进位进位进位cnt0:="1001";----cnt0:="1001";----低位为低位为9elsif cnt0<"1001" then----elsif cnt0<"1001" then----小于小于9时 cnt0:=cnt0+1;----cnt0:=cnt0+1;----计数计数计数 --elsif cnt0="1001" then --clk1<=not clk1;elsecnt0:="0000";if cnt1<"1001" then----if cnt1<"1001" then----高位小于高位小于9时 cnt1:=cnt1+1; elsecnt1:="0000"; co<='0'; end if; end if; end if;secm1<=cnt1; secm0<=cnt0;end process; end SEC;程序生成器件如图:clk clrm stopsecm1[3..0]secm0[3..0]coMINSECONDbinst3微妙模块生成的器件可以实现带有100进制进位和清零功能,暂停等功能,MINSECONDb 输入为100HZ 脉冲和低电平的清零信号CLR 与暂停信号STOP STOP,输出,输出微妙个位、十位及进位信号CO CO。
EDA秒表设计
3)按键key的功能如下:
按第一下key,开始计数,并输源自计数值;第一个运动员到终点时按第二下key,秒表记住第一个运动员到终点的时间,但还在继续计数并输出计数值;第二个运动员到终点时按第三下key,停止计数,这时输出的计数值就是第二个运动员用的时间;然后按第四下key,秒表输出第一个运动员到终点的时间,即按第二下key时记住的计数值;按第五下key,秒表清0,新的周期开始。
begin
state<=Idle;
cnt<=0;
time1<=0;
end
else
case(state)
Idle: if (key)
begin
state<=Start;
cnt<=cnt+1;
tout<=cnt;
end
else
begin
state<=Idle;
cnt<=0;
tout<=0;
end
Start: if (key)
三、实验过程
1)画出秒表的状态转移图,标明各个状态的转移条件和输出。
2)用Verilog完成秒表的设计并仿真、综合出电路。
四、实验结果
module miaobiao (clk, key,reset, tout);
output [6:0]tout;
input clk,key,reset;
reg [6:0]tout;
end
else
begin
state<=Record;
cnt<=cnt+1;
tout<=cnt;
eda课程设计资料 实验一 数字式秒表
实验一 数字式秒表设计一、设计任务与技术指标试设计并制作一个用七段数码管显示的秒表,并具有如下指标:1. 设计一个用七段数码管显示的秒表,它有“分”、“秒”、“百分之一秒” 十进制显示,如图1所示:图1 秒表表盘示意图2. 开机显示00.00.00,最大显示23.59.99; 3. 能够准确地计时并正确显示时间,计时精度 0.01秒;4. 用户可以随时开始计时,也可随时结束计时。
二、设计原理该系统由时钟信号发生器、分频电路、计时电路、译码显示电路等模块组成。
其总体框图如图2所示:图2 系统总体框图1.时钟信号发生器使用GW48系统主板上的“CL0CK0”时钟频率来实现(信号频率范围:0.5Hz ~50MHz ,建议选用1.5MHz 信号源)。
2.分频电路的设计设输入频率为1.5MHz 的脉冲信号,要求得到100Hz 的脉冲信号,那么分频系数的计算公式如下:分频系数=分频后的频率分频前的频率3.计时电路在数字电路中,计时电路一般是用计数器来实现的,例如时间的“秒”与“分”就是一个60进制的问题。
60进制计数器外部端口图如图3所示:occlky[5…0]图3 计数器外部端口图时钟信号 发 生 器 分频 电路 计时 电路 数码管显示驱动电路计数器其中,oc是计数器进位输出端。
y[5…0]为本位输出端。
三、设计平台及可选器件GW48-CK EDA实验板开发系统、EP1K30、共阴极七段数码管、发光二极管、按键开关、电阻、电容等。
选用平台的模式:No.7四、设计要求1.编制VHDL程序,并在QuartusII环境下编译通过;2.对源程序进行逻辑仿真,仿真结果正确;3.将编译后的程序下载至目标器件,进行硬件测试,硬件测试结果正确;4.各块采用文本编辑的方式生成元件图形,在直接利用元件图形编辑秒表。
五、设计报告要求1.简单叙述设计过程(包括原理、方案);2.画出完整的顶层文件原理图;3.给出完整的程序设计文档;4.说明调试方法与调试过程;。
EDA秒表设计 实验报告
EDA课程设计报告——基于VHDL语言的秒表设计课程名称:EDA技术院系:地球物理及信息工程学院专业班级:电子信息工程08级2班学生姓名:学号:指导老师:完成时间:2011年5月18日秒表设计一. 设计要求利用EDA实验箱,通过VHDL语言进行编程,设计一个简单的秒表,并用EDA实验箱进行实现,具体设计要求如下:(1)有使能、暂停、继续、秒表计数功能;(2)带有异步复位功能;(3)显示分、秒信息,若需要,显示秒表信息。
二. 设计的作用、目的在本次设计中,可以简单的了解EDA技术的应用以及VHDL语言编写的方法。
通过设计一个秒表,可以掌握用VHDL设计多位加法计数器的方法,尤其是调整时钟使得每过一秒就改变一个数,达到设计的要求。
三. 设计的具体实现1.系统概述本次系统设计主要分三个部分,一是通过VHDL语言设计一个八位的加法计数器,来实现秒表的计时功能;二是通过调整时钟使秒表计数为每秒改变一个数;三是加入一些控制按键,实现使能、暂停、继续等功能。
2.程序具体设计秒表显示共有6位,两位显示分,两位显示秒,十分秒和百分秒各一位。
设计时使用一个计数器,随着时钟上升沿的到来循环计数,每计数一次,百分秒位加一,通过百分秒位满十进位来控制十分位的计数,十分位满十进位,依次类推,实现秒表计数。
为实现秒位的计时精确,百秒位必须以0.01秒的时间间隔计数,即时钟的频率是100Hz。
为此,本设计采用3MHz的时钟频率通过分频得到100Hz的时钟频率,再送给控制时钟以得到比较精确的CLK信号。
具体程序设计见附录。
引脚定义如下:其中,时钟信号CLK为3MHz的时钟频率,分频后得到的时钟为CLK2,输出引脚CLK2和输入引脚CLK2在外部相连,实现将分频后的时钟送入。
3.调试应用MAX+plus II软件编译调试实验控制程序, 仿真运行结果如下:(1)给时钟后,实现开始功能:开始键按下(STA=‘1’)后,秒表计数开始。
(2)给时钟后,实现暂停功能:从上图可以看出暂停键按下后(POS=‘1’),输出(CQ)保持不变,直到暂停键再次按下(POS=‘0’),输出才继续计数,从而实现了暂停的功能。
eda电子秒表的课程设计
eda电子秒表的课程设计一、课程目标知识目标:1. 学生能够理解电子秒表的基本原理,掌握EDA技术中电子秒表的设计流程。
2. 学生能够描述电子秒表的各个模块功能,如计时器、触发器、显示等。
3. 学生了解数字电路的基础知识,并掌握基础的编程思想。
技能目标:1. 学生能够运用所学知识,设计并实现一个简单的电子秒表,具备计时、停止、清零等功能。
2. 学生能够通过实验操作,培养动手实践能力,提高问题解决能力。
3. 学生能够运用团队协作,进行项目设计与实施,提高沟通与协作能力。
情感态度价值观目标:1. 学生培养对电子技术和编程的兴趣,激发学习热情,形成积极的学习态度。
2. 学生通过实践操作,培养创新思维和探究精神,提高自信心。
3. 学生在团队协作中,学会尊重他人,培养集体荣誉感和社会责任感。
课程性质:本课程为实践性强的课程,结合电子技术、数字电路和编程知识,培养学生的实际操作能力和团队协作精神。
学生特点:学生为初中生,具备一定的电子知识和编程基础,对实践操作感兴趣,喜欢探索新事物。
教学要求:课程要求教师引导学生主动参与,注重实践操作和团队协作,强调知识与技能的融合,培养学生解决问题的能力。
通过本课程的学习,学生能够达到上述课程目标,实现知识、技能和情感态度价值观的全面发展。
二、教学内容本课程教学内容主要包括以下几部分:1. 电子秒表原理介绍:讲解电子秒表的基本工作原理,包括计时器、触发器、显示等模块的功能和相互关系。
2. 数字电路基础知识:复习与电子秒表相关的数字电路知识,如门电路、触发器、计数器等。
3. EDA技术:介绍EDA技术的基本概念,学习如何利用EDA软件(如Multisim、Protel等)进行电子秒表的设计与仿真。
4. 编程知识:学习与电子秒表相关的编程语言和编程思想,如C语言、汇编语言等。
5. 实践操作:分组进行电子秒表的设计与制作,包括电路图绘制、程序编写、电路板焊接、调试与测试等。
教学内容安排如下:第一课时:电子秒表原理介绍,数字电路基础知识复习。
EDA课程设计:数字秒表的设计
EDA 课程设计报告——数字秒表的设计指导老师:时间:组员:一、设计流程1. 文本编辑:用Active-HDL的编译环境进行编写源代码,编译通过后,保存为.hdl文件格式。
2. 功能仿真:将文件调入Active-HDL仿真环境里进行功能仿真,检查逻辑功能是否正确。
3. 逻辑综合与物理实现:将源代码调入ISE软件中,逻辑综合,管脚分配,下载到FPGA板上调试物理实现。
二、设计规划本系统设计采用自顶向下的设计方案,系统的整体组装设计原理图如图1所示,它主要由控制模块、时基分频模块,计时模块和显示模块四部分组成。
各模块分别完成计时过程的控制功能、计时功能与显示功能。
图1系统组成框图三、各模块的原理及其程序本系统设计由控制模块、时基分频模块,计时模块和显示模块四部分组成。
各模块实现秒表不同的功能。
1、控制模块计时模块的作用是针对计时过程进行控制。
计时控制模块可用俩个按钮来完成秒表的启动、停止和复位。
部分源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CTRL ISPORT( CLR,CLK,SP:IN STD_LOGIC;EN :OUT STD_LOGIC);COM:PROCESS(SP,CURRENT_STATE)BEGINEND IF;END PROCESS;END BEHAVE;2、时基分频模块时基分频模块的作用把输入时钟信号变为分频输出信号。
部分源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CB10 ISPORT( CLK: IN STD_LOGIC;CO : OUT STD_LOGIC);END CB10;ARCHITECTURE ART OF CB10 ISSIGNAL COUNT:STD_LOGIC_VECTOR (3 DOWNTO 0); BEGINPROCESS(CLK)BEGINIF RISING_EDGE(CLK)THENIF COUNT="1001"THENCOUNT<="0000";CO<='1';ELSECOUNT<=COUNT+1;CO<='0';END IF;END IF;END PROCESS;END ART;3、计时模块计时模块执行计时功能,计时方法和计算机一样是对标准时钟脉冲计数。
基于EDA技术的数字秒表的设计.EDA课程设计
EDA 课程设计报告书课题名称 基于VHDL 语言的数字秒表的设计姓 名胡杨学 号 0812201-40 院 系 物理与电信工程系 专 业 电子信息工程 指导教师周来秀 讲师2011年 6月10日※※※※※※※※※ ※※ ※※ ※※※※※※※※※※※2008级学生 EDA 课程设计基于VHDL语言的数字秒表的设计胡杨(湖南城市学院物理与电信工程系电子信息工程专业,益阳,413000)1设计目的(1)熟悉简单的VHDL程序。
(2)掌握相关的EDA知识。
(3)了解数字秒表的设计原理。
(4)熟悉掌握程序设计思路及运用VHDL语言控制。
(5)熟悉QuartusⅡ5.0软件的使用方法。
2设计的主要内容和要求要求设计一个简易的数字秒表,最低能精确显示到百分之一秒,最大显示到59分59.99秒。
采用数码管作为显示屏。
同时要求秒表具有暂停功能和计时暂停以及停止等秒表的基本功能首先,熟悉设计任务,查看相关资料。
然后,在理解程序的基础上自行编写代码。
之后,调试程序并软件仿真。
最后,在设计基础上,认真分析设计结果,撰写设计报告。
3 整体设计方案3.1秒表系统的设计模块秒表共有三个模块:分频模块、计时模块和显示模块。
分频模块,只提供了40 MHz和22 MHz的时钟信号,而秒表设计中要用到100 Hz的时钟作为基本时钟来产生0.01秒的精确度。
所以分频的任务就是从40 MHz(或22 MHz)的系统时钟信号中产生出100 Hz的时钟信号作为计时模块的基本时钟。
计时模块,这部分事秒表的最重要的部分。
由0.01秒到1秒进位事100进制的,而由秒到分和由分到时的进制是60进制的,秒表计时系统可以由一个100进制计数器和两个60进制计数器连接而成,即给100进制计数器提供100 Hz的时钟信号,让它产生0.01秒的精确度,即它每隔0.01秒计数一次,所以可以把其计数输出cq 连接到数码管显示上,作为0.01秒和0.1秒的计时显示,而100进制计数器的进位输出carry_out是频率为1 Hz(即周期为1秒)的另一个新的时钟信号,可以将其连接到下一个60进制计数器的时钟输入端口上,作为秒的计数精确度产生时钟,其输出是每隔1秒加1的,因此要将其输出cq显示到数码管上,作为“秒”单位的显示,相同的,这个60进制计数器的进位输出carry_out也是一个周期为1分钟的新的时钟信号,将它作为下一个60进制计数器的时钟输入,该计数器的输出就事“分”的计数输出。
数字秒表设计EDA课设报告
数字秒表设计EDA课设报告概述本课设要求设计一款加减计时秒表,需要实现的功能如下: - 显示秒表计时的数字; - 点击“开始”按钮开始计时; - 点击“停止”按钮停止计时; - 点击“复位”按钮清零计时; - 点击“加号”和“减号”按钮可以每次增加或减少1秒计时。
为了完成上述功能,我们选择EDA软件进行仿真和布图设计。
设计思路我们首先需要构思秒表的实现流程,考虑到需要实时更新读取的数据,所以我们选择使用FPGA芯片作为逻辑控制基础。
FPGA芯片是可编程逻辑芯片,可以对逻辑电路进行可编程配置,实现各种功能,如:加法器、减法器、触发器等。
整体设计思路我们将秒表的设计思路划分为以下步骤: 1. 使用时钟信号,设置计时寄存器和数码管显示寄存器; 2. 配合开始、停止两个开关控制开始和停止计时; 3. 设置加减计时器,在每次计时加减操作时使用; 4. 清零操作使用复位开关实现。
时钟信号和计时寄存器时钟信号可以使用EDA软件自带的时钟模块实现,设置计时寄存器用于记录加减后的计时结果。
这部分主要有以下几个步骤: - 外部时钟进入FPGA芯片中;- 引出一个指定频率的时钟信号; - 将时钟信号连接到计时寄存器的时钟端; - 计时寄存器向外部输出计时结果。
开始、停止控制实现开始、停止控制实现需要引入开关电路,可以使用EDA软件预设的开关模块。
我们可以将开关模块与数码管显示寄存器和计时寄存器进行连接,参考以下步骤进行实现: - 设计电路,将“开始”和“停止”两个开关用于控制计时器寄存器的启动和停止; - 将时钟信号连接到开关电路中,作为同步信号; - 将开关电路输出的信号连接到计时器寄存器和数码管显示寄存器。
这样,在开始计时时,计时寄存器会开始计时,并输出计时结果到数码管;而停止计时时,计时寄存器和数码管都会停止更新。
加减计时器和清零操作加减计时器和清零操作也可以使用EDA软件中的加减器模块和复位模块来实现。
实现步骤如下: - 设计加减计时器模块,包含加减按钮、加减器、计时寄存器,将加减按钮连接至加减器,加减器连接至计时寄存器; - 设计一个带复位功能的复位模块,将复位按钮连接至计时器寄存器和数码管。
EDA数字秒表课程设计报告
数字秒表设计专业:自动化班级学号:509姓名:2011年 6 月14日目录数字秒表设计实验任务书 (2)一、设计实验目的: (2)二、设计实验说明及要求: (2)三、数字秒表组成及功能: (2)四、系统硬件要求: (2)五、设计内容及步骤: (3)六、硬件实现 (3)实验报告 (3)一、数字秒表顶层设计 (3)二、数字秒表内部设计 (4)1、分频器 (4)2、十进制计数器 (5)3、六进制计数器 (6)4、二十四进制计数器 (8)5、数据选择和数码管选择模块 (9)6、数码管驱动模块: (10)三、数字秒表仿真波形 (12)四、硬件验证 (12)五、实验总结 (12)数字秒表设计实验任务书一、设计实验目的:在MAX+plusII软件平台上,熟练运用VHDL语言,完成数字时钟设计的软件编程、编译、综合、仿真,使用EDA实验箱,实现数字秒表的硬件功能。
二、设计实验说明及要求:1、数字秒表主要由:分频器、扫描显示译码器、一百进制计数器、六十进制计数器(或十进制计数器与6进制计数器)、十二进制计数器(或二十四进制计数器)电路组成。
在整个秒表中最关键的是如何获得一个精确的100H Z 计时脉冲,除此之外,数字秒表需有清零控制端,以及启动控制端、保持保持,以便数字时钟能随意停止及启动。
2、数字秒表显示由时(12或24进制任选)、分(60进制)、秒(60进制)、百分之一秒(一百进制)组成,利用扫描显示译码电路在八个数码管显示。
3、能够完成清零、启动、保持(可以使用键盘或拨码开关置数)功能。
4、时、分、秒、百分之一秒显示准确。
三、数字秒表组成及功能:1、分频率器:用来产生100H Z计时脉冲;2、二十四进制计数器:对时进行计数;3、六进制计数器:分别对秒十位和分十位进行计数;4、十进制计数器:分别对秒个位和分个位进行计数;5、扫描显示译码器:完成对7字段数码管显示的控制;四、系统硬件要求:1、时钟信号为10MHz;2、FPGA芯片型号EPM7128LC84—15、EP1K30TC144—3或EP1K100QC208—3(根据实验箱上FPGA芯片具体选择);3、8个7段扫描共阴级数码显示管;4、按键开关(清零、启动、保持);五、设计内容及步骤:1、根据电路持点,用层次设计概念。
eda数字秒表课程设计
eda数字秒表课程设计一、教学目标本课程旨在让学生了解和掌握eda数字秒表的基本原理和设计方法。
通过本课程的学习,学生将能够:1.理解数字秒表的功能和应用;2.掌握eda数字秒表的设计原理和流程;3.学会使用eda工具进行数字秒表的设计和仿真;4.培养动手实践能力和团队协作精神。
二、教学内容本课程的教学内容主要包括以下几个部分:1.eda简介:介绍eda的基本概念、发展历程和常用工具;2.数字秒表设计原理:讲解数字秒表的组成部分、工作原理和设计方法;3.eda数字秒表设计实例:通过具体实例,演示如何使用eda工具进行数字秒表的设计和仿真;4.实践操作:学生分组进行数字秒表的设计和仿真,培养动手实践能力和团队协作精神。
三、教学方法为了提高教学效果,本课程将采用以下几种教学方法:1.讲授法:讲解eda的基本概念、发展历程和常用工具;2.案例分析法:通过分析具体案例,让学生了解数字秒表的设计方法和流程;3.实验法:学生动手进行数字秒表的设计和仿真,培养实践能力;4.讨论法:分组讨论,引导学生主动思考和解决问题。
四、教学资源为了支持本课程的教学,我们将准备以下教学资源:1.教材:选用权威、实用的教材,为学生提供系统、科学的学习资料;2.多媒体资料:制作精美的PPT,生动展示数字秒表的设计原理和流程;3.实验设备:准备充足的设计和仿真实验设备,确保每位学生都能动手实践;4.网络资源:提供在线学习平台和参考资料,方便学生随时查阅和复习。
五、教学评估本课程的评估方式包括以下几个方面:1.平时表现:考察学生在课堂上的参与程度、提问回答等情况,占总评的20%;2.作业:布置适量作业,检查学生对知识点的掌握程度,占总评的30%;3.实验报告:评估学生在实验过程中的操作能力和解决问题的能力,占总评的20%;4.期末考试:全面考察学生的知识掌握和应用能力,占总评的30%。
六、教学安排本课程的教学安排如下:1.课时:共计32课时,每课时45分钟;2.教学时间:安排在每周的二、四、六下午;3.教学地点:实验室和教室;4.教学进度:按照教材的章节顺序进行,确保每个章节都有足够的时间进行讲解和实践。
EDA秒表设计报告
课程设计报告题目:秒表电路设计课程:《EDA技术》课程设计专业班级:08级电本学生姓名:罗海山学号:26指导老师:刘炜课程设计目的1、通过课程设计使学生能熟练掌握一种EDA 软件(QUARTUSII )的使用方法,能熟练进行设计输入、编译、管脚分配、下载等过程,为以后进行工程实际问题的研究打下设计基础。
2、通过课程设计使学生能利用EDA 软件(QUARTUSII )进行至少一个电子技术综合问题的设计,设计输入可采用图形输入法或VHDL 硬件描述语言输入法。
课程设计内容本次课程设计的题目是:秒表电路设计。
设计要求:1、秒计数显示功能;2、具有清零,调节小时、分钟功能;进行课程设计时,首先对所设计的题目进行分析,然后进行电路设计,最后在微机上进行原理图输入、编译和软件仿真,满足设计要求后,再进行下载和硬件实验。
如硬件实验结果不满足要求,需要修改设计,直到满足要求为止。
课程设计原理根据数字秒表的设计要求,可以使用多个不同的计数器单元模块,通过有机的组合来得到数字秒表系统。
要满足数字秒表的精度,首先应获得精确地计时基准信号,这里的系统精度要求为0.01s ,因此必须设置周期为0.01s 的时钟脉冲,由于数字秒表输入的脉冲为3MHz ,因此将来每3000个外界输入脉冲就输出一个频率,该频率的时间周期正好为0.01s ,即先将外界脉冲进行3MHz----100Hz 分频;试验箱模式7的电路如图一所示:CLOCK9CLOCK5CLOCK2CLOCK0D16D15D14D13D12D11D9D8PIO47D7PIO46D6PIO45D5PIO44D4PIO43D3PIO42D2PIO41PIO40D1NO.7实验电路结构图S P E A K E R扬声器FPGA/CPLD 目标芯片12345678PIO0PIO2PIO3PIO4PIO5PIO6PIO7单脉冲单脉冲单脉冲键1键2键3键4键5键6键7键8PIO47-PIO40PIO39-PIO36PIO35-PIO32PIO31-PIO28PIO27-PIO24PIO23-PIO20PIO19-PIO16译码器译码器译码器译码器译码器译码器设计过程图一 模式七实验电路图1、部分VHDL源程序及说明数字秒表的顶层程序miaobiao.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY miaobiao ISPORT(CLR:IN STD_LOGIC;CLK:IN STD_LOGIC;ENA:IN STD_LOGIC;DOUT:OUT STD_LOGIC_VECTOR(23 DOWNTO 0)); END miaobiao;ARCHITECTURE ART OF miaobiao ISCOMPONENT CLKGENPORT(CLK:IN STD_LOGIC;NEWCLK:OUT STD_LOGIC);END COMPONENT;COMPONENT CNT10PORT(CLK,CLR,ENA:IN STD_LOGIC;CQ:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);CARRY_OUT:OUT STD_LOGIC);END COMPONENT;COMPONENT CNT6PORT(CLK,CLR,ENA:IN STD_LOGIC;CQ:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);CARRY_OUT:OUT STD_LOGIC);END COMPONENT;SIGNAL NEWCLK:STD_LOGIC;SIGNAL CARRY1:STD_LOGIC;SIGNAL CARRY2:STD_LOGIC;SIGNAL CARRY3:STD_LOGIC;SIGNAL CARRY4:STD_LOGIC;SIGNAL CARRY5:STD_LOGIC;BEGINU0:CLKGEN PORT MAP(CLK=>CLK,NEWCLK=>NEWCLK);U1:CNT10 PORT MAP(CLK=>NEWCLK,CLR=>CLR,ENA=>ENA,CQ=>DOUT(3 DOWNTO 0),CARRY_OUT=>CARRY1);U2:CNT10 PORT MAP(CLK=>CARRY1,CLR=>CLR,ENA=>ENA,CQ=>DOUT(7 DOWNTO 4),CARRY_OUT=>CARRY2);U3:CNT10 PORT MAP(CLK=>CARRY2,CLR=>CLR,ENA=>ENA,CQ=>DOUT(11 DOWNTO 8),CARRY_OUT=>CARRY3);U4:CNT10 PORT MAP(CLK=>CARRY3,CLR=>CLR,ENA=>ENA,CQ=>DOUT(15 DOWNTO 12),CARRY_OUT=>CARRY4);U5:CNT10 PORT MAP(CLK=>CARRY4,CLR=>CLR,ENA=>ENA,CQ=>DOUT(19 DOWNTO 16),CARRY_OUT=>CARRY5);U6:CNT10 PORT MAP(CLK=>CARRY5,CLR=>CLR,ENA=>ENA,CQ=>DOUT(23 DOWNTO 20));END ART;分频器模块程序CLKGEN.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY CLKGEN ISPORT(CLK:IN STD_LOGIC;NEWCLK:OUT STD_LOGIC;END CLKGEN;ARCHITECTURE ART OF CLKGEN ISSIGNAL CNTER:INTEGER RANGE 0 TO 10#29999#;BEGINU1:PROCESS(CLK)BEGINIF CLK'EVENT AND CLK='1' THENIF CNTER=10#29999# THEN CNTER=<0;ELSECNTER<=CNTER+1;END IF;END IF;END PROCESS U1;U2:PROCESS(CNTER)BEGINIF CNTER=10#29999# THEN NEWCLK<='1';ELSE NEWCLK<='0';END IF;END PROCESS U2;END ART;十进制模块程序CNT10.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT10 ISPORT(CLK:IN STD_LOGIC;CLR:IN STD_LOGIC;ENA:IN STD_LOGIC;CQ:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);CARRY_OUT:OUT STD_LOGIC );END CNT10;ARCHITECTURE ART OF CNT10 ISSIGNAL CQI:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGINU1:PROCESS(CLK,CLR,ENA)BEGINIF CLR='1' THEN CQI<="0000";ELSIF CLK'EVENT AND CLK='1' THENIF ENA='1' THENIF CQI="1001" THEN CQI<="0000";ELSE CQI<=CQI+1;END IF;END IF;END IF;END PROCESS U1;U2:PROCESS(CQI)BEGINIF CQI="0000" THEN CARRY_OUT<='1';ELSE CARRY_OUT<='0';END IF;END PROCESS U2;CQ<=CQI;END ART;六进制模块程序CNT6.vhdLIBRARY IEEE;USE 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;CQ:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); CARRY_OUT:OUT STD_LOGIC);END CNT6;ARCHITECTURE ART OF CNT6 ISSIGNAL CQI:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINU1:PROCESS(CLK,CLR,ENA)BEGINIF CLR='1'THEN CQI<="0000";ELSIF CLK'EVENT AND CLK='1'THENIF ENA='1' THENIF CQI="0101" THEN CQI<="0000";ELSE CQI<=CQI+'1';END IF ;END IF ;END IF ;END PROCESS U1;U2:PROCESS(CQI)BEGINIF CQI="0000" THEN CARRY_OUT<='1';ELSE CARRY_OUT<='0';END IF;END PROCESS U2;CQ<=CQI;END ART;系统仿真十进制计数器仿真图电路功能验证问题分析经过源程序的编辑、逻辑综合、逻辑适配、编程下载成功后,在EDA 实验开发系统进行硬件验证时却发现实验结果不正确。
EDA设计报告数字秒表设计
JIU JIANG UNIVERSITY数字逻辑系统课程设计报告设计课题:数字秒表设计专业:电子信息工程班级学号:学生姓名:指导教师:设计时间:2012-12-24——2012-12-28数字秒表1.设计任务与要求1.1、设计出的是一个能够精确反映计时时间,且具有复位、计时、暂停功能的数字秒表,老师要求是计下的时间存储下来并能以后调出显示出来。
1.2、设计的秒表输入脉冲为3MHz,秒表的最大计时范围为1h,精确度为0.01s,其度量单位有0.1s、1s、1min等档位,并且各档位可实现进位。
2.方案设计及主要技术思路2.1、方案一:用LED灯来显示计数结果。
将系统分为四个模块,分别为:顶层模块程序、3MHz--->100Hz分频模块、十进制计数器模块、六进制计数器模块。
顶层模块:由于十进制计数模块和六进制计数模块会产生计数溢出信号,而这些溢出信号有可能作为下一计数模块的时钟输入脉冲,因此需要使用一个顶层模块将这些基本模块通过元件调用与映射的关系进行有机结合。
分频模块:就是实现3MHz到100Hz的分频,实体定义3MHz时钟频率输入端和100Hz的时钟脉冲输出端。
十进制计数器模块:用来实现0.01s、0.1s、1s和1min单位单元的计数。
六进制计数器模块:用来实现10s、10min为单位单元的计数。
2.2、方案二:用数码管来显示计数结果。
将系统分为六个模块,分别为:3MHz->100Hz分频模块、48MHz->1KHz分频模块、十进制计数模块、六进制计数模块、锁存模块、数码管显示模块。
3MHz->100Hz分频模块:由于系统的精度是0.01s,因此要设置周期为100Hz 的时钟脉冲。
又因为数字秒表输入的脉冲为3MHz,所以外界每输入3000Hz的脉冲系统就输出一个频率,这时频率的时间周期刚好为0.01s,还有就是实现48MHz —>1KHz的功能给显示模块时钟信号的,而分频模块就是完成这样的功能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
北华航天工业学院《EDA技术综合设计》课程设计报告报告题目:数字秒表设计作者所在系部:电子工程系作者所在专业:自动化作者所在班级: B08221作者姓名:赵天娇指导教师姓名:崔瑞雪完成时间: 2010年12月1日内容摘要EDA技术是电子设计技术和电子制造技术的核心,目前,电子系统的EDA 技术正从主要着眼于数字逻辑向模拟电路和数模混合电路的方向发展。
本设计主要内容是数字逻辑电路——数字秒表,数字秒表在日常生活中有广泛的用途,秒表的逻辑结构较简单,它主要由显示译码器、十进制计数器、六进制计数器和报警器组成。
四个10进制计数器:用来分别对百分之一秒、十分之一秒、秒和分进行计数;两个6进制计数器:用来分别对十秒和十分进行计数;显示译码器:完成对显示的控制。
根据电路持点,用层次设计概念将此设计任务分成若干模块,规定每一模块的功能和各模块之间的接口,然后再将各模块合起来联试。
通过MAX+plusⅡ软件,对上述模块设计,仿真无误后,设计顶层文件,仿真无误后,下载到主芯片EPF10K10LC84-4中,按适配划分后的管脚定位,同相关功能块硬件电路接口连线,进行硬件实验。
EPF10K10LC84-4是Altera公司生产的FLEX10K系列可编程逻辑器件。
主要采用了嵌入式阵列,容量高达百万门,为可重复配置的CMOS SRAM工艺,系统工作过程中可随时改变配置,有利于现场编程,完成秒表设计的修改于完善。
关键词EDA、可编程逻辑器件、计数器、显示器目录(字体?)一、概述 (1)二、实验目的 (1)三、单元模块设计 (1)1十进制计数器 (1)2.六进制计数器 (2)3.时间数据分时扫描模块 (3)4.显示译码模块 (4)5.报警电路模块 (6)四、顶层文件原理图 (7)五、硬件要求 (8)六、实验连线 (8)七、实验总结 (8)八、心得体会 (9)九、参考文献 (10)课程设计任务书一、概述秒表的逻辑结构较简单,它主要由显示译码器、分频器、十进制计数器、六进制计数器和报警器组成。
秒表共有6个输出显示,分别为百分之一秒、十分之一秒、秒、十秒、分、十分,所以共有6个计数器与之相对应,6个计数器的输出全都为BCD码输出,这样便于和显示译码器的连接。
当计时达60分钟后,蜂鸣器鸣响10声。
除此之外,整个秒表还需有一个启动信号和一个归零信号,以便秒表能随意停止及启动。
二、实验目的(看课设报告模板)1.掌握多位计数器相连的设计方法2.掌握十进制、六进制计数器的设计方法3.巩固多位共阴极扫描显示数码管的驱动及编码4.掌握扬声器的驱动5. 掌握EDA技术的层次化设计方法三、单元模块设计1.十进制计数器(count10.vhd)四个10进制计数器:用来分别对百分之一秒、十分之一秒、秒和分进行计数,其程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity count10 isport(clr,start,clk:in std_logic;cout:out std_logic;daout:buffer std_logic_vector(3 downto 0));end count10;architecture behave of count10 isbeginprocess(clr,start,clk)beginif clr='1' then daout<="0000";cout<='0';elsif ( clk'event and clk='1') thenif start='1' thenif daout="1001" then daout<="0000";cout<='1';else daout<=daout+1;cout<='0';end if;end if;end if;end process;end behave;对程序进行编译仿真后,仿真结果如下图:2.六进制计数器(count6.vhd)两个6进制计数器:用来分别对十秒和十分进行计数,其程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity count6 isport(clr,start,clk:in std_logic;cout:out std_logic;daout:buffer std_logic_vector(3 downto 0));end count6;architecture behave of count6 isbeginprocess(clr,start,clk)beginif clr='1' then daout<="0000";cout<='0';elsif ( clk'event and clk='1') thenif start='1' thenif daout="0101" then daout<="0000";cout<='1';else daout<=daout+1;cout<='0';end if;end if;end if;end process;end behave;对程序进行编译仿真后,仿真结果如下图:3.时间数据分时扫描模块(seltime.vhd) 其程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity seltime isport(clr,clk:in std_logic;dain1:in std_logic_vector(3 downto 0);dain2:in std_logic_vector(3 downto 0);dain3:in std_logic_vector(3 downto 0);dain4:in std_logic_vector(3 downto 0);dain5:in std_logic_vector(3 downto 0);dain6:in std_logic_vector(3 downto 0);sel:out std_logic_vector(2 downto 0);daout:out std_logic_vector(3 downto 0));end seltime;architecture behave of seltime issignal count: std_logic_vector(2 downto 0);beginsel<=count;process(clr,clk)beginif( clk'event and clk='1') thenif clr='1' thencount<="000";elsif count="101" then count<="000";else count<=count+1;end if;end if;case count iswhen"000"=>daout<=dain1;when"001"=>daout<=dain2;when"010"=>daout<=dain3;when"011"=>daout<=dain4;when"100"=>daout<=dain5;when"101"=>daout<=dain6;when others=>null;end case;end process;end behave;对程序进行编译仿真后,仿真结果如下图:4.显示译码模块(deled.vhd)显示译码器:完成对显示的控制。
其程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity deled isport(num: in std_logic_vector(3 downto 0);led: out std_logic_vector(6 downto 0));end deled;architecture behave of deled isbeginprocess(num)--abcdefgbegincase num iswhen"0000"=>led<="1111110"; when"0001"=>led<="0110000"; when"0010"=>led<="1101101"; when"0011"=>led<="1111001"; when"0100"=>led<="0110011"; when"0101"=>led<="1011011"; when"0110"=>led<="1011111"; when"0111"=>led<="1110000"; when"1000"=>led<="1111111"; when"1001"=>led<="1111011";when others=>null;end case;end process;end behave;对程序进行编译仿真后,仿真结果如下图:5.报警电路模块 (alarm.vhd)其程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity alarm isport(clk,i:in std_logic;q:out std_logic);end alarm;architecture behave of alarm issignal count:integer range 0 to 20;signal q0:std_logic;beginprocess(clk,i)beginif ( clk'event and clk='1') thenif i='0' then count<=0;q0<='0';elsif i='1' thenif count<=19 thencount<=count+1;q0<=not q0;end if;end if;end if;end process;q <=q0;end behave;对程序进行编译仿真后,仿真结果如下图:四、顶层文件原理图1. 总原理图(second_top.gdf)2.编译过程3.仿真结果五、硬件要求:1.主芯片EPF10K10LC84-4。