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实训报告专业:电子信息班级:电信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课程设计——秒表》题目数字秒表学院信息学院专业电子信息工程班级 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课程设计数字秒表设计
目录数字秒表设计性实验任务书 ........................................................ 错误!未定义书签。
一、设计性实验目的 ............................................................... 错误!未定义书签。
二、设计性实验说明 ............................................................... 错误!未定义书签。
三、实验箱给定硬件 ............................................................... 错误!未定义书签。
四、要求 ................................................................................... 错误!未定义书签。
实验报告 .. (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课程设计数字秒表
课程设计目录第一章:系统设计要求 (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工具设计一个数字秒表电路,通过FPGA开发板进行验证,具体要求如下:1.实现毫秒计时,并可以在数码管上显示当前计时数值。
2.支持开始/暂停、清零等操作。
设计思路本次实验的数字秒表电路由以下模块构成:1.时钟发生器模块:用于产生时钟信号,以驱动计数器进行计数。
2.计数器模块:通过时钟信号进行计数,并将计数结果传递给显示模块。
3.显示模块:将计数结果转换为数码管显示的数码信号,并控制数码管进行显示。
其中,时钟发生器模块和计数器模块都是基础电路模块,在这里不再赘述,下面将着重介绍显示模块的设计。
显示模块设计显示模块主要由控制模块和数码管模块构成。
控制模块根据计数结果和当前时间,控制数码管模块显示相应的数码。
在这里,我们采用的是共阳极的数码管。
具体来说,我们将控制模块分为两个子模块:时分秒计数器和数码显存控制器。
时分秒计数器时分秒计数器通过接收计数器模块的计数结果,将其转换为时分秒,并存储在计数器寄存器中。
计数器寄存器是一个64位的寄存器,由三个16位的子寄存器组成,用于存储时分秒。
当计数器模块的计数结果为0时,时分秒计数器会重置计数器寄存器。
数码显存控制器数码显存控制器由一个6位的数据存储器和一个6位的显示寄存器组成。
当计数器模块进行计数时,显示寄存器中存储的数码信号会根据时分秒计数器的值进行更新。
同时,数码显存控制器也会控制共阳极数码管进行相应的显示操作。
原理图设计根据以上的设计思路,我们可以得到数字秒表电路的原理图如下:原理图原理图EDA设计流程设计环境本次实验使用的是Xilinx ISE Design Suite 14.7,这是一个使用VHDL进行设计的EDA工具。
设计流程1.新建工程并设置工程名、目录、设备等基本信息。
2.添加源文件,包括时钟发生器模块、计数器模块、显示模块,以及顶层模块。
将所有模块综合为一个顶层设计。
3.检查时序约束,以保证电路能够正确运行。
数字秒表的设计与实现实验报告
电子科技大学《数字秒表课程设计》姓名: xxx学号:学院:指导老师:xx1摘要EDA技术作为电子工程领域的一门新技术,极大的提高了电子系统设计的效率和可靠性。
文中介绍了一种基于FPGA在ISE10.1软件下利用VHDL语言结合硬件电路来实现数字秒表的功能的设计方法。
采用VHDL硬件描述语言,运用ModelSim等EDA仿真工具。
该设计具有外围电路少、集成度高、可靠性强等优点。
通过数码管驱动电路动态显示计时结果。
给出部分模块的VHDL源程序和仿真结果,仿真结果表明该设计方案的正确,展示了VHDL语言的强大功能和优秀特性。
关键词:FPGA, VHDL, EDA, 数字秒表2目录第一章引言 (4)第二章设计背景 (5)2.1 方案设计 (5)2.2 系统总体框图 (5)2.3 -FPGA实验板 (5)2.4 系统功能要求 (6)2.5 开发软件 (6)2.5.1 ISE10.1简介 (6)2.5.2 ModelSim简介 (6)2.6 VHDL语言简介 (7)第三章模块设计 (8)3.1 分频器 (8)3.2 计数器 (8)3.3 数据锁存器 (9)3.4 控制器 (9)3.5 扫描控制电路 (10)3.6 按键消抖电路 (11)第四章总体设计 (12)第五章结论 (13)附录 (14)3第一章引言数字集成电路作为当今信息时代的基石,不仅在信息处理、工业控制等生产领域得到普及应用,并且在人们的日常生活中也是随处可见,极大的改变了人们的生活方式。
面对如此巨大的市场,要求数字集成电路的设计周期尽可能短、实验成本尽可能低,最好能在实验室直接验证设计的准确性和可行性,因而出现了现场可编程逻辑门阵列FPGA。
对于芯片设计而言,FPGA的易用性不仅使得设计更加简单、快捷,并且节省了反复流片验证的巨额成本。
对于某些小批量应用的场合,甚至可以直接利用FPGA实现,无需再去订制专门的数字芯片。
文中着重介绍了一种基于FPGA利用VHDL硬件描述语言的数字秒表设计方法,在设计过程中使用基于VHDL的EDA工具ModelSim对各个模块仿真验证,并给出了完整的源程序和仿真结果。
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课程设计报告题目: 秒表指导教师:姓名学号EDA课程设计报告一、设计任务秒表设计基本功能:1、四位数码管显示秒表,计时范围:00-00至59-99,前两位单位是秒。
2、有一个开始计时、一个停止计时、一个复位按键。
其他要求:1.晶振为12 MHz2. 采用CPLD 器件为ALTERA 的EPM7064SL-443.采用数码管显示二、设计方案基于CPLD的数字秒表设计,应用Verilog 语言编写源程序,用QuartusⅡ对程序编译、仿真。
最终下载至已焊接组合好的电路中应用。
实物元件清单:印制电路板一块电阻(1KΩ的4个,10KΩ的7个,220Ω的11个)三极管4个芯片ALTERA 的EPM7064SL-44基对应插槽1对按键3个数码管(共阴极)1个晶振1个下载线,电源线若干电路原理图:核心控制部分:功率放大显示部分:电路工作原理:印制板电路主要分为两部分,即核心控制部分和数码显示部分。
通过QuartusⅡ软件将源程序下载至电路芯片中,接通电源,由晶振提供震源,在数码显示部分(功率放大部分)显示数字秒表,通过三个按键来控制秒表显示状态。
三、设计程序系统总体框图数字秒表主要有分频器、计数模块、功能控制模块、势能控制模块和显示输出模块组成。
系统框图下图所示(只显示程序部分)。
各部分源程序及说明 (一)分频模块设计所用晶振提供12MHz 的震源,通过分频将其转化为要求的100Hz ,程序如下:module int_div(clock,clk_out);//I/O 口声明 input clock;//输入时钟 output clk_out;//输出时钟//内部寄存器 reg clk_p_r; //上升沿输出时钟 reg clk_n_r;//下降沿输出时钟reg[F_DIV_WIDTH - 1:0] count_p; //上升沿脉冲计数器reg[F_DIV_WIDTH - 1:0] count_n; //下降沿脉冲计数器//参数--分频系数parameter F_DIV = 120000; //分频系数<<<<-----修改这里parameter F_DIV_WIDTH = 32; //分频计数器宽度wire full_div_p; //上升沿计数满标志wire half_div_p; //上升沿计数半满标志wire full_div_n; //下降沿计数满标志wire half_div_n; //下降沿计数半满标志//判断计数标志位置位与否assign full_div_p = (count_p < F_DIV - 1);assign half_div_p = (count_p < (F_DIV>>1) - 1);assign full_div_n = (count_n < F_DIV - 1);assign half_div_n = (count_n < (F_DIV>>1) - 1);//时钟输出assign clk_out = (F_DIV == 1) ?clock : (F_DIV[0] ? (clk_p_r & clk_n_r) : clk_p_r);//上升沿脉冲计数always @(posedge clock)beginif(full_div_p)begincount_p <= count_p + 1'b1;if(half_div_p)clk_p_r <= 1'b0;elseclk_p_r <= 1'b1;endelsebegincount_p <= 0;clk_p_r <= 1'b0;endend//下降沿脉冲计数always @(negedge clock)beginif(full_div_n)begincount_n <= count_n + 1'b1;if(half_div_n)clk_n_r <= 1'b0;elseclk_n_r <= 1'b1;endelsebegincount_n <= 0;clk_n_r <= 1'b0;endendendmodule(二)计数模块计数模块中,时钟信号是100 Hz作为秒表的百分秒输入,百分秒为100进制计数器,其进位输出作为秒的计数时钟,秒为60进制计数器。
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课程设计资料 实验一 数字式秒表
实验一 数字式秒表设计一、设计任务与技术指标试设计并制作一个用七段数码管显示的秒表,并具有如下指标: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课程设计实验电子秒表
目录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 课程设计报告——数字秒表的设计指导老师:时间:组员:一、设计流程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实验指导书曾令智电信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 课程设计报告书课题名称 基于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.1 基本功能:a.精度达到0.1秒。
b.有一个开始和暂停计时按键、一个加减计时按键、一个复位按键。
1.2 其它功能:有倒计时功能1.3 其他要求:a.系统时钟采用12 MHz有源晶振;b. 主芯片采用CPLD 器件,型号为ALTERA 的EPM7064SL-44;c.采用数码管显示。
二.设计方案2.1 实现方法:a.先根据所要实现的基本要求和基本功能,用protel2004软件画出其原理图;b.画出PCB版(老师代做),设计程序并进行仿真,成功后将PCB板做出;c.将所需器件购买齐全,即可进行焊接测试,注意由于焊接难度较大,焊接时一定要仔细认真;d. 将设计好的EDA程序,进行编译仿真测试,成功后,下载到芯片上即可,观察是否为其所要求的功能,并进行调试,达到要求为止。
2.2 电路原理图电路原理如图(一)所示:)2.3 所需器件a.ALTERA 的EPM7064SL-44CPLD芯片一个b.有源晶振一个c.插针一排d.四位数码管一个e.四腿插槽一个f.C8550三极管四个g.按键三个h.220欧电阻10个i.1k电阻四个7个j.导线两根2.4 工作原理将晶振分频,产生时钟信号,每次0.05秒,则每隔0.1秒产生时钟进位,将产生的信号通过数码管进行译码显示,进行动态扫描。
根据几个按键按下与否判断是否暂停,倒计时,秒表显示。
整个电路有芯片程序控制,外围按键间接控制,数码显示,下载链接部分组成。
三.设计程序3.1 系统组成框图系统组成框图如图(二)所示:图(二)图(三)3.3 设计程序及主要部分说明设计程序如附(一)所示:3.4 管脚分配管脚分配如表(一)所示:表(一)3.5 部分仿真图形部分仿真图如图(四)所示:图(四)四.总结及心得1. 总结通过这次课程设计让我对EDA这门课有了更深刻的了解,对电路板的焊接有了一定的经验。
但是在制作的过程中困难重重现总结如下:1.电路板部分管脚较为密集复杂,比较难以准确焊接,由于细心不够,我组曾经将芯片座的两根导线误短路,造成下载不成功,后经万用表仔细排查,找出原因,最终问题得以解决;2.在程序编写时,先要在心中规划一个大概流程,然后编写,经过与其他同学多次合作修改最终编译而成,在如何编写程序方面收获颇多;2.心得体会在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。
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课程设计数字秒表设计
程序生成器件如图:
微妙模块生成的器件可以实现带有100进制进位和清零功能,暂停等功能,MINSECONDb输入为100HZ脉冲和低电平的清零信号CLR与暂停信号STOP,输出微妙个位、十位及进位信号CO。
2、秒模块
library ieee;
entity SECOND is
port(clk,clr:in std_logic;----时钟/清零信号
when"0110" =>q<="1111101";--显示6
when"0111" =>q<="0100111";--显示7
when"1000" =>q<="1111111";--显示8
when others =>q<="1101111";--显示9
end case;
end process;
end disp_are;
sec1,sec0:out std_logic_vector(3 downto 0);----秒高位/低位
co:out std_logic);-------输出/进位信号
end SECOND;
architecture SEC of SECOND is
begin
process(clk,clr)
variable cnt1,cnt0:std_logic_vector(3 downto 0);---计数
end MINUTE;
architecture MIN of MINUTE is
begin
if cnt1<"0101" then
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
EDA实验报告数字秒表的设计指导老师:谭会生班级:电技1503学号:15401700314:冯博交通工程学院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的仿真。