EDA实验报告-数字秒表

合集下载

EDA数字秒表课程设计报告

EDA数字秒表课程设计报告

课程设计任务书学生姓名:专业班级:电子科学与技术电子00901班指导教师:工作单位:武汉理工大学信息工程学院题目: 数字秒表一、设计目的①根据设计要求,完成对数字秒表的设计。

②进一步加强对QuartusⅡ的应用和对VHDL语言的使用。

二、设计内容和要求①计时精度应大于1/100S,计时器能显示1/100S的时间,提供给计时器内部定时的时钟频率应大于100Hz,这里选用1KHz。

②计时器的最大计时时间为1小时,为此需要6位的显示器,显示的最长时间为59分59.99秒。

③设置有复位和起/停开关,复位开关用来使计数器清零,做好计时准备。

起停开关的使用方法与传统的机械式计数器相同,即按一下,启动计时器开始计时,再按一下计时终止。

三、初始条件CPLD,按键,时钟信号等。

四、时间安排:EDA课程设计布置工作 6.11设计 6.12~6.15硬件调试 6.17~6.19撰写设计报告 6.20~6.21检查硬件、答辩、提交设计报告 6.22指导教师签名:年月日系主任(或责任教师)签名年月日目录摘要 (I)Abstract (II)绪论............................................................................................................................ I II 一系统设计方案. (1)二底层模块设计 (2)2.1 计时电路 (2)2.1.1 时基分频器 (2)2.1.2 100进制计数器 (2)2.1.3 60进制计数器 (3)2.2 计时控制电路 (3)2.3 显示电路 (4)2.3.1 七段译码器 (4)2.3.2 扫描模块 (4)三顶层原理图 (5)四系统仿真 (6)4.1计时电路的仿真 (6)4.2计时控制电路的仿真 (7)4.3 显示电路的仿真 (8)五器件编程与硬件下载 (9)六心得体会 (10)七参考文献 (11)附录 (12)摘要随着人们生活水平的日益提高,社会体系的日益完善,人们对于各种应用器件的要求也越来越高。

EDA秒表实训报告

EDA秒表实训报告

EDA实训报告专业:电子信息班级:电信1013班姓名:赵健时间:2012.6.25——2012.6.29一、EDA实验箱中相关的硬件资源及用法1.点动按键:实验箱提供12个点动按键,按下时输出“低电平”,弹起时输出“高电平”。

本项目中的清零(复位)信号、ON_OFF信号均有点动按键提供。

2.LED数码显示器:实验箱提供8位共阴LED数码管,内部设置了段限流电路和位译码驱动电路。

对外提供一组8位“段码”(a、b 、c 、d 、e、f、g,dp)输入接口和一组3位“位选”(se12 se11 se10)输入接口。

这种电路结构决定了显示多位数码只能采用动态扫描显示方式(各位数码管轮流显示),而不能采用静态显示方式(各位数码管同时显示)。

本项目需要四位LED数码管分别显示10位秒、个位秒、1/10位秒、1/100位秒,如下图所示。

因此,只需要用到se11和se10。

也就是说,所设计的电路要有se11和se10位选择输出信号,要分别与实验箱的se11、se10相连接。

本设计要有8位段码(7位段码+1位dp)输出信号,分别与实验箱的“段码”输入端a、b、c、d、e、f、g、dp 相连。

3、时钟信号:实验箱的DIGITALCLOCK模块提供时钟信号和多级2分频电路,时钟信号最高频率20MHz,通过堆积2分频电路可得到不同频率的时钟信号,f=20MHz/2n,试中n表示2分频的次数。

本项目需要100Hz的时钟脉冲,但是本实验想不能直接提供精准的100Hz 时钟信号,仅能提供接近(100HZ)的152Hz和76Hz的信号。

为了简化设计,突出重点,本项目选用152Hz信号作为时钟脉冲,而不考虑由此产生的误差。

152Hz信号由20MHz信号进行2分频17次得到。

即f=20MHz/2^17。

如果要得到精确的设计结果,就必须产生精确的100Hz信号进行5次2分频,CLK4端输出625000Hz的信号,将该信号作为本设计的时钟输入信号。

EDA秒表实验报告

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课程设计数字秒表设计

目录数字秒表设计性实验任务书 ........................................................ 错误!未定义书签。

一、设计性实验目的 ............................................................... 错误!未定义书签。

二、设计性实验说明 ............................................................... 错误!未定义书签。

三、实验箱给定硬件 ............................................................... 错误!未定义书签。

四、要求 ................................................................................... 错误!未定义书签。

实验报告 .. (3)一、数字秒表顶层设计 (3)二、数字秒表内部设计 (3)1、分频器 (3)2、十进制计数器 (4)3、六进制计数器 (6)4、二十四进制计数器 (7)5、数据选择和数码管选择模块 (8)6、数码管驱动模块: (10)三、数字秒表仿真波形 (11)四、实验总结 (11)数字秒表设计性实验任务书一、设计性实验目的:在MAX-PLUS II软件平台上,熟练运用VHDL硬件描述语言,完成数字时钟的文本输入或原理图输入、编译、综合、仿真,利用EDA实验箱,实现数字秒表的硬件实现。

二、设计性实验说明:1、数字秒表电路主要由:分频器、扫描显示译码器、六十进制计数器(或由十进制计数器与六进制计数器组成),十二进制计数器(或二十四进制计数器)、一百进制计数器电路组成;2、数字秒表显示由小时(十二或二十四进制任选)、分钟(六十进制)、秒(六十进制)、十分之一秒、百分之一秒组成;3、各模块功能:(1)分频器模块:用来产生100Hz计时脉冲;(2)十二或二十四进制计数器模块:对小时进行计数;(3)六十进制计数器模块:对分秒进行计数;(4)六进制计数器模块:分别对分十位和秒十位进行计数;(5)十进制计数器模块:分别对分个位、秒个位、十分之一秒、百分之一秒进行计数;(6)扫描显示译码器模块:完成对7字段数码管/液晶显示的控制;(7)一百进制计数器模块:对十分之一秒和百分之一秒进行计数;三、实验箱给定硬件:1、系统时钟脉冲信号为10MHz;2、CPLD/FPGA芯片型号:EPM7128SLC84-5、EPM1K30TC144-3、EPM1K100QC208-3(根据实验箱上的芯片型号选择);3、8个7字段共阴显示数码管(选用);4、液晶显示器1602(选用);5、拨码开关、按键;四、要求:1、精确显示小时、分钟、秒;2、具有清零、启动、保持功能;3、显示采用数码管显示或液晶显示;实验报告一、数字秒表顶层设计外部输入:启动/停止信号(start);10MHZ的时钟信号(clk);清零信号(clr);外部输出:位选控制信号(sel0、sel1、sel2);7段数码管显示信号(led0、led1、led2、led3、led4、led5、led6、led7);数字秒表顶层原理图二、数字秒表内部设计1、分频器功能:将10MHz的时钟信号转换成100Hz的计时脉冲,使秒表正常工作。

EDA课程--数字秒表设计

EDA课程--数字秒表设计

《EDA技术综合设计》课程设计报告报告题目:数字秒表设计作者所在系部:电子工程系作者所在专业:自动化内容摘要本次设计的目的就是在掌握EDA实验开发系统的初步使用基础上,了解EDA技术,对计算机系统中时钟控制系统进一步了解,掌握状态机工作原理,同时了解计算机时钟脉冲是怎么产生和工作的。

在掌握所学的计算机组成与结构课程理论知识时。

通过对数字秒表的设计,进行理论与实际的结合,提高与计算机有关设计能力,提高分析、解决计算机技术实际问题的能力。

通过课程设计深入理解计算机结构与控制实现的技术,达到课程设计的目标。

利用VHDL语言设计基于计算机电路中时钟脉冲原理的数字秒表。

该数字秒表能对0秒~59分59.99秒范围进行计时,显示最长时间是59分59秒,到了一小时后,报警器开始报警,计时精度达到10ms。

设计了复位开关和启停开关。

复位开关可以在任何情况下使用,使用以后计时器清零,并做好下一次计时的准备。

字体、格式、图号不对、重新修改关键词EDA、可编程逻辑器件、计数器、显示目录1.设计要求 (1)2.实验目的 (1)3.实验原理 (1)4.源程序(*.vhd)和原理图(*gdf) (2)4.1计数器模块 (2)4.2报警模块 (3)4.3显示模块 (4)4.4选择模块 (5)4.5秒表模块 (6)5.仿真调试和下载结果 (7)6.收获和体会 (8)课程设计任务书课题名称数字秒表设计完成时间2010-11-30 指导教师崔瑞雪职称副教授学生姓名赵敏班级B08221总体设计要求和技术要点1.秒表共有6个输出显示,分别为百分之一秒、十分之一秒、秒、十秒、分、十分,所以共有6个计数器与之相对应,6个计数器的输出全都为BCD码输出,这样便于和显示译码器的连接。

当计时达60分钟后,蜂鸣器鸣响10声。

2.整个秒表还需有一个启动信号和一个归零信号,以便秒表能随意停止及启动。

3.秒表的逻辑结构较简单,它主要由显示译码器、分频器、十进制计数器、六进制计数器和报警器组成。

EDA课程设计数字秒表

EDA课程设计数字秒表

课程设计目录第一章:系统设计要求 (3)第二章:实验目的 (3)第三章:实验原理 (3)第四章:系统设计方案 (3)第五章:主要VHDL源程序 (4)1) 十进制计数器的VHDL源程序 (4)2) 六进制计数器的VHDL源程序 (5)3)蜂鸣器的VHDL源程序 (5)4)译码器的VHDL源程序 (6)5)控制选择器的VHDL源程序 (7)6)元原件例化的VHDL源程序 (8)第六章:系统仿真 (10)第七章:系统扩展思路 (11)第八章:设计心得总结 (11)数字秒表的设计一、系统设计要求1.秒表共有6个输出显示,分别为百分之一秒、十分之一秒、秒、十秒、分、十分,所以共有6个计数器与之相对应,6个计数器的输出全都为BCD码输出,这样便于和显示译码器的连接。

当计时达60分钟后,蜂鸣器鸣响10声。

2.整个秒表还需有一个启动信号和一个归零信号,以便秒表能随意停止及启动。

3.秒表的逻辑结构较简单,它主要由显示译码器、分频器、十进制计数器、六进制计数器和报警器组成。

在整个秒表中最关键的是如何获得一个精确的100HZ计时脉冲。

二、实验目的通过本次课设,加深对EDA技术设计的理解,学会用QuartusⅡ工具软件设计基本电路,熟练掌握VHDL语言,为以后工作使用打下坚实的基础。

三、实验原理秒表由于其计时精确,分辨率高(0.01秒),在各种竞技场所得到了广泛的应用。

秒表的工作原理与数字时基本相同,唯一不同的是秒表的计时时钟信号,由于其分辨率为0.01秒,所以整个秒表的工作时钟是在100Hz的时钟信号下完成。

当秒表的计时小于1个小时时,显示的格式是mm-ss-xx(mm表示分钟:0~59;ss表示秒:0~59;xx表示百分之一秒:0~99),当秒表的计时大于或等于一个小时时,显示的和多功能时钟是一样的,就是hh-mm-ss(hh表示小时:0~99),由于秒表的功能和钟表有所不同,所以秒表的hh表示的范围不是0~23,而是0~99,这也是和多功能时钟不一样的地方。

EDA数字秒表的设计

EDA数字秒表的设计

EDA数字秒表的设计第一篇:EDA数字秒表的设计设计报告——数字秒表的设计EDA 一设计目的1.根据设计要求,完成对数字秒表的设计。

2.进一步加强对QuartusⅡ的应用和对Verilog HDL语言的使用。

二设计内容和要求1.计时精度应大于1/100S,计时器能显示1/100S的时间,提供给计时器内部定时的时钟频率应大于100Hz,这里选用KHz。

2.计时器的最大计时时间为1小时,为此需要6位的显示器,显示的最长时间为59分59.99秒。

3.设置有复位和起/停开关,复位开关用来使计数器清零,做好计时准备。

起停开关的使用方法与传统的机械式计数器相同,即按一下,启动计时器开始计时,再按一下计时终止。

三系统设计方案自顶向下的设计自顶向下的设计方法是数字系统设计中最常用的设计方法.也是基于芯片的系统设计的主要方法。

自顶向下的设计方法利用功能分割手段将设计由上到下进行层次话和模块化,及分层次、分模块进行设计和仿真。

功能分割时,将系统功能分解为功能块,功能块再分解为逻辑块,逻辑块再分解为更少的逻辑块和电路。

如此分割,逐步的将系统细化,将功能逐步的具体化,模块化。

高层次设计进行功能和接口描述,说明模块的功能和接口,模块功能的更详细描述在下一设计层次说明,最底层的设计才涉及具体寄存器和逻辑门电路等实现方式的描述。

四模块设计1.分频模块将输入1KHZ的系统时钟经过十分频分为100HZ的单位时钟。

编程原理跟计数器原理相似。

2.定时模块采用2个60进制、1个100进制的BCD码全加器作为定时器,分为分,秒,百分秒,输入时钟信号为分频器输出信号100HZ时钟,外界两个拨码开关作为清零按钮和暂停按钮。

3.位选发生器:根据显示的数据位和人眼暂留效应,设计显示分为分、秒、百分秒位,每位需要2个数码管进行显示,因此变化频率至少为300HZ,为了方便则采用1KHZ,循环码则从000循环到101。

4.多路选择器根据位选信号,输出对应位显示的数据。

EDA数字秒表设计

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课程设计--数字秒表设计

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实验报告-数字秒表

EDA实验报告-数字秒表

EDA实验报告数字秒表的设计指导老师:谭会生班级:电技1503学号::博交通工程学院2017.10.28实验二数字秒表电路的设计一、实验目的1.学习Quartus Ⅱ软件的使用方法。

2.学习GW48系列或其他EDA实验开发系统的基本使用方法。

3.学习VHDL程序的基本结构和基本语句的使用。

二、实验容设计并调试一个计时围为0.01s~1h的数字秒表,并用GW48系列或其他EDA实验开发系统进行硬件验证。

三、实验要求1.画出系统的原理框图,说明系统中各主要组成部分的功能。

2.编写各个VHDL源程序。

3.根据系统的功能,选好测试用例,画出测试输入信号波形或编好测试程序。

4.根据选用的EDA实验开发装置偏好用于硬件验证的管脚锁定表格或文件。

5.记录系统仿真,逻辑综合及硬件验证结果。

6.记录实验过程中出现的问题及解决方法。

四、实验条件1.开发软件:Quartus Ⅱ13.0.2.实验设备:GW48系列EDA实验开发系统。

3.拟用芯片:EP3C55F484C7五、实验设计1.设计思路要设计一个计时为0.01S~1h的数字秒表,首先要有一个比较精确的计时基准信号,这里是周期为1/100s的计时脉冲。

其次,除了对每一个计数器需要设置清零信号输入外,还需为六个技术器设置时钟使能信号,即计时允许信号,以便作为秒表的计时起、停控制开关。

因此数字秒表可由一个分频器、四个十进制计数器以及两个六进制记数器组成,如图1所示。

系统原理框图2.VHDL程序(1)3MHz→100Hz分频器的源程序CLKGEN.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY CLKGEN ISPORT(CLK: IN STD_LOGIC; --3MHZ信号输入NEWCLK: OUT STD_LOGIC); --100HZ计时时钟信号输出END ENTITY CLKGEN;ARCHITECTURE ART OF CLKGEN ISSIGNAL CNTER: INTEGER RANGE 0 TO 10#239999#; --十进制计数预置数BEGINPROCESS(CLK) ISBEGINIF CLK' EVENT AND CLK='1'THENIF CNTER=10#239999#THEN CNTER<=0; --3MHZ信号变为100MHZ,计数常熟为30000ELSE CNTER<=CNTER+1;END IF;END IF;END PROCESS;PROCESS(CNTER) IS --计数溢出信号控制BEGINIF CNTER=10#239999#THEN NEWCLK<='1';ELSE NEWCLK<='0';END IF;END PROCESS;END ARCHITECTURE 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);CO: OUT STD_LOGIC);END ENTITY CNT6;ARCHITECTURE ART OF CNT6 ISSIGNAL CQI: STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(CLK,CLR,ENA) ISBEGINIF 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;PROCESS(CQI) ISBEGINIF CQI="0000" THEN CO<='1';ELSE CO<='0';END IF;END PROCESS;CQ<=CQI;END ARCHITECTURE 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);CO: OUT STD_LOGIC );END ENTITY CNT10;ARCHITECTURE ART OF CNT10 ISSIGNAL CQI:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGINPROCESS(CLK,CLR,ENA) ISBEGINIF 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;PROCESS(CQI) ISBEGINIF CLK'EVENT AND CLK='1' THENIF CQI<"1001" THEN CO<='0';ELSE CO<='1';END IF;END IF;END PROCESS;CQ<=CQI;END ARCHITECTURE ART;数字秒表的源程序TIMES.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY TIMES ISPORT(CLR: IN STD_LOGIC;CLK: IN STD_LOGIC;CLK2: IN STD_LOGIC;ENA: IN STD_LOGIC;COM: OUT STD_LOGIC_VECTOR(7 DOWNTO 0);SEG: OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); END ENTITY TIMES;ARCHITECTURE ART OF TIMES ISCOMPONENT CLKGEN ISPORT(CLK: IN STD_LOGIC;NEWCLK: OUT STD_LOGIC);END COMPONENT CLKGEN;COMPONENT CNT10 ISPORT(CLK, CLR, ENA: IN STD_LOGIC;CQ: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);CO: OUT STD_LOGIC);END COMPONENT CNT10;COMPONENT CNT6 ISPORT(CLK, CLR, ENA: IN STD_LOGIC;CQ: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);CO: OUT STD_LOGIC);END COMPONENT CNT6;COMPONENT CTRLS IS --元件定义语句PORT(CLK: IN STD_LOGIC; --端口说明语句(端口名:端口模式数据类型)SEL: OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END COMPONENT CTRLS;COMPONENT DISPLAY IS --元件定义语句PORT(SEL: IN STD_LOGIC_VECTOR(2 DOWNTO 0);DATAIN: IN STD_LOGIC_VECTOR(23 DOWNTO 0);COM: OUT STD_LOGIC_VECTOR(7 DOWNTO 0);SEG: OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END COMPONENT DISPLAY;SIGNAL S0: STD_LOGIC;SIGNAL S1, S2, S3, S4, S5: STD_LOGIC;SIGNAL SEL: STD_LOGIC_VECTOR(2 DOWNTO 0); --定义1个标准位矢量的位矢量信号SEL,含有3个元素SIGNAL DOUT:STD_LOGIC_VECTOR(23 DOWNTO 0); --定义1个标准位矢量的位矢量信号DOUT,有24个数组元素BEGINU0: CLKGEN PORT MAP(CLK=>CLK, NEWCLK=>S0); --名字关联U1: CNT10 PORT MAP(S0, CLR, ENA, DOUT(3 DOWNTO 0), S1);U2: CNT10 PORT MAP(S1, CLR, ENA, DOUT(7 downto 4), S2); --位置关联U3: CNT10 PORT MAP(S2, CLR, ENA, DOUT(11 DOWNTO 8), S3);U4: CNT6 PORT MAP(S3, CLR, ENA, DOUT(15 DOWNTO 12), S4);U5: CNT10 PORT MAP(S4, CLR, ENA, DOUT(19 DOWNTO 16), S5);U6: CNT6 PORT MAP(S5, CLR, ENA, DOUT(23 DOWNTO 20));U7: CTRLS PORT MAP(CLK2,SEL);U8: DISPLAY PORT MAP(SEL(2 DOWNTO 0),DOUT(23 DOWNTO 0),COM(7 DOWNTO 0),SEG(7 DOWNTO 0)); --位置关联方式END ARCHITECTURE ART;六、实验结果及总结(1)仿真波形本设计包括两个层次,先进行底层的分频器CLKGEN、十进制计数器CNT10和六进制计数器CNT6的仿真,再进行顶层TIMES的仿真。

EDA秒表设计 实验报告

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.【摘要】 (6)2.【实验目的】 (6)3.【实验原理】 (6)3.1秒表功能 (6)3.2秒表设计结构 (7)3.3秒表设计思路 (7)3.4系统组成框图 (7)4.【实验步骤与容】 (8)4.1六进制计数器 (8)4.2 十进制计数器 (8)4.3蜂鸣器控制电路 (9)4.4 Pins/引脚绑定 (10)4.5顶层文件设计 (10)5.【实验箱操作效果】 (11)6.【实验心得和体会】 (13)7.【参考文献】 (14)附录 (14)课程设计实验题目:电子秒表的设计1.【摘要】电子秒表是生活家都很熟悉的事物,在EDA设计中也是一个不错的选题。

设计首先需要考虑秒表的整体构成,主要由分频器与计数器组成。

通过计数器进位端相联系。

设计好顶层原理图后,需要用VHDL语言对各个模块进行行为描述,完成对各模块的设计。

这应该属于自定向下,模块化的设计方法。

2.【实验目的】完成具有多计数功能的秒表,并可将结果逐一显示在7段数码管上,具体要求如下:(1)输入时钟10khz,采用Altera EP1T3C144C8 FPGA;(2)异步、同步复位,计时精度1ms,最大计时240秒;(3)至少对6个目标计时,并可显示于7段数码管,秒表的显示围是00:00:00-59:59:99;(4)可清零与复位;3.【实验原理】3.1秒表功能秒表的显示围是00:00:00-59:59:99,显示精度为1ms,可控的启动功能(通过计数器的cin端口来控制计数器的启动,也即控制数字秒表的启动)及数字秒表清零功能(通过控制计数器清零端来实现,当清零端为高电平时,计数器清零,也即数字秒表清零,否则秒表正常计数),清零时蜂鸣器报警。

3.2秒表设计结构秒表的物理结构比较简单,它主要由十进制计数器、六进制计数器、数据选择器、显示译码器蜂鸣器等组成。

此外,秒表还需有一个启动信号、清零信号及报时信号,以便实现对秒表的控制和有效应用(启动和清零信号及报时信号由使用者给出,设计时主要任务是将此外界信号的功能准确的通过数字秒表体现出来,也即,当使用者给出启动信号时数字秒表能够正常启动,上面已经给出,启动和清零的功能是通过将此信号送给计数器来实现的)。

数字秒表EDA

数字秒表EDA

EDA实验指导书曾令智电信1003班学号10401701205电气与信息工程学院EDA实验室实验三数字秒表的设计一.实验目的1.巩固和加深对QUARUSII CPLD开发系统的理解和使用;2.掌握VHDL编程设计方法;3. 掌握硬件实验装置使用方法;4.掌握综合性电路的设计、仿真、下载、调试方法。

二.实验仪器设备1.PC机1台2.QUARUSII CPLD软件开发系统,1套3. CPLD/FPGA实验系统及下载装置,1套三.实验内容设计一个计时范围为0秒~90秒的数字秒表,用数码管显示当前秒表的计时值,并设置一个计时清零开关、一个计时起、停控制开关。

设计思路:1.秒表的计时基准信号:以周期为1秒的计时脉冲CLK1作为一个比较精准的计时基准信号输入到秒个位计数器的时钟端;(计时脉冲CLK1接实验箱的脉冲输出模块,并将上面的拨码开关切换成0000)注:控制计数器逢10进1,每到90自动回0。

2. 数码管译码显示和动态扫描电路:将计数器输出的值用数码管显示需要BCD-七段数码管译码显示程序;而将秒表的各位动态显示在数码管上,需要扫描电路注:其中扫描电路输入端口:CLK2(1KHZ)为扫描时钟输入;四.实验预习要求1.预习VDHL语言关于时序电路的描述方法;2.理解本实验的基本结构;3.预先设计好该VHDL程序:五.实验操作步骤(1)开机,进入MAX+PLUSII CPLD开发系统;(2)在F盘建立自己的目录(注意要以英文命名);(3)在主菜单中选NEW,从输入文件类型选择VHDL文本编辑输入方式,(4)输入VHDL源程序并保存,后缀名为.VHD。

(5)检查修改语法错误。

(6)编译.10进制数library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity zeng10 isport(clk:in std_logic;clr:in std_logic;ena:in std_logic;cq:out std_logic_vector(3 downto 0);co:out std_logic);end entity zeng10;architecture art of zeng10 issignal cq1:std_logic_vector(3 downto 0); beginprocess(clk,clr,ena) isbeginif clr='1' then cq1<="0000";elsif clk'event and clk='1' thenif ena='1' thenif cq1="1001" then cq1<="0000";else cq1<=cq1+'1';end if;end if;end if;end process;process(clk,cq1) isbeginif clk'event and clk='1' thenif cq1<"1001" then co<='0';else co<='1';end if;end if;end process;cq<=cq1;end architecture art;9进制数library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity zeng9 isport(clk:in std_logic;clr:in std_logic;cq:out std_logic_vector(3 downto 0);co:out std_logic);end entity zeng9;architecture art1 of zeng9 issignal cq1:std_logic_vector(3 downto 0); beginprocess(clk,clr,ena) isbeginif clr='1' then cq1<="0000";elsif clk'event and clk='1' thenif ena='1' thenif cq1="1000" then cq1<="0000";else cq1<=cq1+'1';end if;end if;end if;end process;process(clk,cq1) isbeginif clk'event and clk='1' thenif cq1<"1000" then co<='0';else co<='1';end if;end if;end process;cq<=cq1;end architecture art1;0到90秒library ieee;use ieee.std_logic_1164.all;entity zeng3 isport(clk:in std_logic;clr:in std_logic;ena:in std_logic;dout:out std_logic_vector(7 downto 0)); end entity zeng3;architecture art2 of zeng3 iscomponent zeng10 isport(clk:in std_logic;clr:in std_logic;ena:in std_logic;cq:out std_logic_vector(3 downto 0);end component zeng10;component zeng9 isport(clk:in std_logic;clr:in std_logic;ena:in std_logic;cq:out std_logic_vector(3 downto 0);co:out std_logic);end component zeng9;signal s0,s1:std_logic;beginu0:zeng10 port map( clk,clr,ena,dout(3 downto 0),s0); u1:zeng9 port map (s0,clr,ena,dout(7 downto 4),s1); end architecture art2;显示程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity zeng isport (clk:in std_logic;sel:out std_logic_vector(2 downto 0));end entity zeng;architecture art3 of zeng issignal cnt:std_logic_vector(2 downto 0);beginprocess(clk) isbeginif clk'event and clk='1' thenif cnt="111" thencnt<="000";else cnt<=cnt+'1';end if;end if;end process;sel<=cnt;end architecture art3;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity zeng4 isport(sel:in std_logic_vector(2 downto 0);zeng:in std_logic_vector(7 downto 0);com: out std_logic_vector(7 downto 0);seg: out std_logic_vector(7 downto 0)); end entity zeng4;architecture art4 of zeng4 issignal data: std_logic_vector(3 downto 0); beginp1: process(sel) isbegincase sel iswhen "000"=>com<="11111110";when "001"=>com<="11111101";when "010"=>com<="11111011";when "011"=>com<="11110111";when "100"=>com<="11101111";when "101"=>com<="11011111";when "110"=>com<="10111111";when "111"=>com<="01111111";when others=>com<="11111111";end case;end process p1;p2: process(sel)begincase sel iswhen "000"=>data<=zeng(3 downto 0); when "001"=>data<=zeng(7 downto 4); when others=>data<="0000";end case;case data iswhen "0000"=>seg<="00111111";when "0001"=>seg<="00000110";when "0010"=>seg<="01011011";when "0011"=>seg<="01001111";when "0100"=>seg<="01100110";when "0101"=>seg<="01101101";when "0110"=>seg<="01111101";when "0111"=>seg<="00000111";when "1000"=>seg<="01111111";when "1001"=>seg<="01101111";when others=>seg<="00000000";end case;end process p2;end architecture art4;。

eda课程设计报告秒表

eda课程设计报告秒表

eda课程设计报告秒表一、教学目标本课程的教学目标是让学生掌握EDA(电子设计自动化)的基本概念、原理和应用方法。

通过本课程的学习,学生将能够:1.理解EDA的定义、发展历程和作用;2.掌握EDA工具的基本操作和功能;3.熟悉EDA设计流程和工程实践;4.了解EDA在电子工程领域的应用案例;5.培养动手实践能力和团队协作精神。

二、教学内容本课程的教学内容主要包括以下几个部分:1.EDA概述:介绍EDA的定义、发展历程、分类和作用;2.EDA工具及其应用:讲解常见EDA工具的基本操作和功能,如Cadence、Altium Designer等;3.EDA设计流程:阐述从需求分析、电路设计、仿真测试到生产制造的整个设计流程;4.EDA工程实践:通过实际案例,让学生动手实践,掌握EDA工具的应用;5.EDA应用领域:介绍EDA在电子工程、通信、嵌入式系统等领域的应用案例。

三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式:1.讲授法:讲解EDA的基本概念、原理和设计流程;2.案例分析法:分析实际案例,让学生了解EDA在工程实践中的应用;3.实验法:让学生动手实践,熟练掌握EDA工具的操作;4.小组讨论法:分组进行讨论,培养学生的团队协作能力和创新思维。

四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:选用权威、实用的EDA教材,为学生提供系统性的知识体系;2.参考书:推荐一些经典的EDA参考书籍,方便学生课后自学;3.多媒体资料:制作精美的PPT、教学视频等,提高课堂效果;4.实验设备:准备充足的实验设备,确保每个学生都能动手实践。

五、教学评估本课程的评估方式将包括以下几个方面:1.平时表现:评估学生在课堂上的参与程度、提问回答等情况,占比20%;2.作业:评估学生完成作业的质量、创新性和解决问题的能力,占比30%;3.实验报告:评估学生在实验过程中的操作技能、数据分析和总结能力,占比20%;4.期末考试:评估学生对课程知识的掌握程度,占比30%。

基于EDA技术的数字秒表的设计.EDA课程设计

基于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秒表设计报告

课程设计报告题目:秒表电路设计课程:《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 实验开发系统进行硬件验证时却发现实验结果不正确。

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

EDA实验报告数字秒表的设计指导老师:谭会生班级:电技1503学号::博交通工程学院2017.10.28实验二数字秒表电路的设计一、实验目的1.学习Quartus Ⅱ软件的使用方法。

2.学习GW48系列或其他EDA实验开发系统的基本使用方法。

3.学习VHDL程序的基本结构和基本语句的使用。

二、实验容设计并调试一个计时围为0.01s~1h的数字秒表,并用GW48系列或其他EDA实验开发系统进行硬件验证。

三、实验要求1.画出系统的原理框图,说明系统中各主要组成部分的功能。

2.编写各个VHDL源程序。

3.根据系统的功能,选好测试用例,画出测试输入信号波形或编好测试程序。

4.根据选用的EDA实验开发装置偏好用于硬件验证的管脚锁定表格或文件。

5.记录系统仿真,逻辑综合及硬件验证结果。

6.记录实验过程中出现的问题及解决方法。

四、实验条件1.开发软件:Quartus Ⅱ13.0.2.实验设备:GW48系列EDA实验开发系统。

3.拟用芯片:EP3C55F484C7五、实验设计1.设计思路要设计一个计时为0.01S~1h的数字秒表,首先要有一个比较精确的计时基准信号,这里是周期为1/100s的计时脉冲。

其次,除了对每一个计数器需要设置清零信号输入外,还需为六个技术器设置时钟使能信号,即计时允许信号,以便作为秒表的计时起、停控制开关。

因此数字秒表可由一个分频器、四个十进制计数器以及两个六进制记数器组成,如图1所示。

系统原理框图2.VHDL程序(1)3MHz→100Hz分频器的源程序CLKGEN.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY CLKGEN ISPORT(CLK: IN STD_LOGIC; --3MHZ信号输入NEWCLK: OUT STD_LOGIC); --100HZ计时时钟信号输出END ENTITY CLKGEN;ARCHITECTURE ART OF CLKGEN ISSIGNAL CNTER: INTEGER RANGE 0 TO 10#239999#; --十进制计数预置数BEGINPROCESS(CLK) ISBEGINIF CLK' EVENT AND CLK='1'THENIF CNTER=10#239999#THEN CNTER<=0; --3MHZ信号变为100MHZ,计数常熟为30000ELSE CNTER<=CNTER+1;END IF;END IF;END PROCESS;PROCESS(CNTER) IS --计数溢出信号控制BEGINIF CNTER=10#239999#THEN NEWCLK<='1';ELSE NEWCLK<='0';END IF;END PROCESS;END ARCHITECTURE 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);CO: OUT STD_LOGIC);END ENTITY CNT6;ARCHITECTURE ART OF CNT6 ISSIGNAL CQI: STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(CLK,CLR,ENA) ISBEGINIF 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;PROCESS(CQI) ISBEGINIF CQI="0000" THEN CO<='1';ELSE CO<='0';END IF;END PROCESS;CQ<=CQI;END ARCHITECTURE 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);CO: OUT STD_LOGIC );END ENTITY CNT10;ARCHITECTURE ART OF CNT10 ISSIGNAL CQI:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGINPROCESS(CLK,CLR,ENA) ISBEGINIF 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;PROCESS(CQI) ISBEGINIF CLK'EVENT AND CLK='1' THENIF CQI<"1001" THEN CO<='0';ELSE CO<='1';END IF;END IF;END PROCESS;CQ<=CQI;END ARCHITECTURE ART;数字秒表的源程序TIMES.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY TIMES ISPORT(CLR: IN STD_LOGIC;CLK: IN STD_LOGIC;CLK2: IN STD_LOGIC;ENA: IN STD_LOGIC;COM: OUT STD_LOGIC_VECTOR(7 DOWNTO 0);SEG: OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); END ENTITY TIMES;ARCHITECTURE ART OF TIMES ISCOMPONENT CLKGEN ISPORT(CLK: IN STD_LOGIC;NEWCLK: OUT STD_LOGIC);END COMPONENT CLKGEN;COMPONENT CNT10 ISPORT(CLK, CLR, ENA: IN STD_LOGIC;CQ: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);CO: OUT STD_LOGIC);END COMPONENT CNT10;COMPONENT CNT6 ISPORT(CLK, CLR, ENA: IN STD_LOGIC;CQ: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);CO: OUT STD_LOGIC);END COMPONENT CNT6;COMPONENT CTRLS IS --元件定义语句PORT(CLK: IN STD_LOGIC; --端口说明语句(端口名:端口模式数据类型)SEL: OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END COMPONENT CTRLS;COMPONENT DISPLAY IS --元件定义语句PORT(SEL: IN STD_LOGIC_VECTOR(2 DOWNTO 0);DATAIN: IN STD_LOGIC_VECTOR(23 DOWNTO 0);COM: OUT STD_LOGIC_VECTOR(7 DOWNTO 0);SEG: OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END COMPONENT DISPLAY;SIGNAL S0: STD_LOGIC;SIGNAL S1, S2, S3, S4, S5: STD_LOGIC;SIGNAL SEL: STD_LOGIC_VECTOR(2 DOWNTO 0); --定义1个标准位矢量的位矢量信号SEL,含有3个元素SIGNAL DOUT:STD_LOGIC_VECTOR(23 DOWNTO 0); --定义1个标准位矢量的位矢量信号DOUT,有24个数组元素BEGINU0: CLKGEN PORT MAP(CLK=>CLK, NEWCLK=>S0); --名字关联U1: CNT10 PORT MAP(S0, CLR, ENA, DOUT(3 DOWNTO 0), S1);U2: CNT10 PORT MAP(S1, CLR, ENA, DOUT(7 downto 4), S2); --位置关联U3: CNT10 PORT MAP(S2, CLR, ENA, DOUT(11 DOWNTO 8), S3);U4: CNT6 PORT MAP(S3, CLR, ENA, DOUT(15 DOWNTO 12), S4);U5: CNT10 PORT MAP(S4, CLR, ENA, DOUT(19 DOWNTO 16), S5);U6: CNT6 PORT MAP(S5, CLR, ENA, DOUT(23 DOWNTO 20));U7: CTRLS PORT MAP(CLK2,SEL);U8: DISPLAY PORT MAP(SEL(2 DOWNTO 0),DOUT(23 DOWNTO 0),COM(7 DOWNTO 0),SEG(7 DOWNTO 0)); --位置关联方式END ARCHITECTURE ART;六、实验结果及总结(1)仿真波形本设计包括两个层次,先进行底层的分频器CLKGEN、十进制计数器CNT10和六进制计数器CNT6的仿真,再进行顶层TIMES的仿真。

相关文档
最新文档