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)控制器四.心得体会开始做设计时总是会犯一些错误,只有经过不停的改错不停的编译才能得到正确的程序。

  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的仿真。

相关文档
最新文档