EDA数字秒表课程设计报告
- 格式:doc
- 大小:216.52 KB
- 文档页数:14
课程设计任务书学生姓名:专业班级:电子科学与技术电子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课程设计——秒表》题目数字秒表学院信息学院专业电子信息工程班级 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实验报告专业班级 07级电信一班学号实验名称秒表设计学生姓名2010年12月秒表设计一、实验说明:秒表的逻辑结构较简单,它主要由显示译码器、分频器、十进制计数器、报警器和6进制计数器组成。
在整个秒表中最关键的是如何获得一个精确的100HZ计时脉冲,除此之外,整个秒表还需有一个启动信号和一个归零信号,以便秒表能随意停止及启动。
秒有共有6个输出显示,分别为百分之一秒、十分之一秒、秒、十秒、分、十分,所以共有6个计数器与之相对应,6个计数器的输出全都为BCD码输出,这样便与同显示译码器的连接。
当计时达60分钟后,蜂鸣器鸣响10声二、结构组成:四个10进制计数器:用来分别对百分之一秒、十分之一秒、秒和分进行计数;两个6进制计数器:用来分别对十秒和十分进行计数;分频率器:用来产生100HZ计时脉冲;显示译码器:完成对显示的控制。
三、硬件要求:1.主芯片Cyclone。
2.6位八段扫描共阴级数码显示管。
3.二个按键开关(归零,启动)。
四、实验内容及步骤:1.根据电路持点,可在教师指导下用层次设计概念。
将此设计任务分成若干模块,规定每一模块的功能和各模块之间的接口。
让几个学生分做和调试其中之一,然后再将各模块合起来联试。
以培养学生之间的合作精神,同时加深层次化设计概念。
2.了解软件的元件管理深层含义,以及模块元件之间的连接概念,对于不同目录下的同一设计,如何熔合。
3.适配划分前后的仿真内容有何不同概念,仿真信号对象有何不同,让学生有更深一步了解。
熟悉了CPLD设计的调试过程中手段的多样化。
4.按适配划分后的管脚定位,同相关功能块硬件电路接口连线。
5.所有模块全用VHDL语言描述。
6.内部结构图如图50-1所示。
五、实验连线:输入接口:1.代表归零,启动信号RESET, START的管脚分别连接按键开关。
2.蜂鸣器鸣响信号SPEAKER接蜂鸣器的输入。
3.代表计数时钟信号CLK的管脚同2. 5MHz时钟源相连。
基于EDA的数字秒表课程设计一、课程目标知识目标:1. 学生能理解EDA(电子设计自动化)的基本概念,掌握数字秒表的基本原理;2. 学生能描述数字秒表的电路结构,了解各个部分的功能和相互关系;3. 学生能掌握数字秒表设计中所涉及的数字逻辑,如计时、清零、启动/停止等功能的实现。
技能目标:1. 学生能够运用所学知识,使用EDA工具进行数字秒表的电路设计和仿真;2. 学生能够分析并解决数字秒表设计过程中遇到的问题,提高实际操作能力;3. 学生能够通过小组合作,完成数字秒表的调试与优化,提高团队协作能力。
情感态度价值观目标:1. 学生通过本课程的学习,培养对电子设计的兴趣和热情,提高探究精神;2. 学生能够认识到科技发展对日常生活的影响,增强社会责任感和创新意识;3. 学生在小组合作中学会尊重他人意见,培养良好的沟通能力和团队精神。
分析课程性质、学生特点和教学要求,本课程目标将分解为以下具体学习成果:1. 学生能够独立完成数字秒表的电路设计和仿真;2. 学生能够通过小组合作,完成数字秒表的调试与优化,并撰写实验报告;3. 学生能够对课程中所学知识进行总结,以口头或书面的形式进行分享。
二、教学内容本课程教学内容依据课程目标,紧密结合教材,制定以下详细教学大纲:1. 数字电路基础知识回顾- 复习数字逻辑基础,强调触发器、计数器等基本组件的工作原理。
2. EDA工具介绍- 介绍EDA软件的使用方法,如Multisim、Proteus等。
3. 数字秒表的原理与设计- 讲解数字秒表的电路结构,分析各部分功能;- 引导学生理解秒表的计时原理,探讨如何实现启动、停止、清零等功能。
4. 电路设计与仿真- 指导学生使用EDA工具进行数字秒表的电路设计;- 教学过程中,针对设计过程中可能遇到的问题进行讲解和指导。
5. 小组合作调试与优化- 学生分组进行电路调试,优化设计;- 引导学生学会分析问题、解决问题,提高实际操作能力。
《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工具设计一个数字秒表电路,通过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数字秒表的设计设计报告——数字秒表的设计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实验报告数字秒表的设计指导老师:谭会生班级:电技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的仿真。
实验三秒表的设计一、实验目的:1、熟练利用VHDL语言进行数字系统设计;2、掌握数字系统的设计方法——自顶向下的设计思想;3、掌握计数器的设计与使用;4、根据秒表的功能要求设计一个秒表;二、实验设备:PC机一台、EDA教学实验系统一台、下载电缆一根(已接好)、导线若干三、实验要求:1、有秒、分计数,数码扫描显示输出;2、有清零端和计数使能端;3、在功能允许的情况下,可自由发挥;四、实验原理:1、功能描述:秒表是一种计时的工具,有着很广泛的用途。
本实验中的秒表要求有两个功能按钮:一个是计数和停止计数按钮,当第一次按下此按钮时,秒表开始计数,再一次按下时,秒表停止计数,并显示所计的数字;另一个是清零按钮,当按下此按钮时,秒表清零。
在数码管上采用扫描显示输出。
2、基本原理:本实验中用到的主要元件有计数器、控制逻辑、数据选择器和译码器等。
秒、分都是60 进制计数,所以必须采用两个60 进制的计数器(或6 进制计数器与10 进制计数器的组合);控制逻辑主要是用来实现计数和清零。
基本方框图如下:注意:计数器必须有进位输出、计数使能端和清零端。
3、自顶向下的设计方法:自顶向下的设计方法是数字系统设计中最常用的设计方法,也是基于芯片的系统设计的主要方法。
它的基本原理框图如下:自顶向下的设计方法利用功能分割手段将设计由上到下进行层次化和模块化,即分层次、分模块进行设计和仿真。
功能分割时,将系统功能分解为功能块,功能块再分解为逻辑块,逻辑块再分解为更少的逻辑块和电路。
如此分割,逐步的将系统细化,将功能逐步具体化,模块化。
高层次设计进行功能和接口描述,说明模块的功能和接口,模块功能的更详细描述在下一设计层次说明,最底层的设计才涉及具体寄存器和逻辑门电路等实现方式的描述。
(注意:这里所说的模块可能是芯片或电路板。
)五、实验步骤:1、采用自顶向下的设计方法,首先将系统分块;2、设计元件,即逻辑块;3、一级一级向上进行元件例化(本实验只需例化一次即可),设计顶层文件。
数字秒表设计专业:自动化班级学号: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、根据电路持点,用层次设计概念。
将此设计任务分成若干模块,规定每一模块的功能和各模块之间的接口,同时加深层次化设计概念;2、软件的元件管理深层含义,以及模块元件之间的连接概念,对于不同目录下的同一设计,如何熔合;3、适配划分前后的仿真内容有何不同概念,仿真信号对象有何不同,有更深一步了解。
熟悉了CPLD/FPGA设计的调试过程中手段的多样化;4、按适配划分后的管脚定位,同相关功能块硬件电路接口连线;5、所有模块尽量采用VHDL语言设计。
六、硬件实现将时序仿真正确的文件下载到实验箱中的EPM7128LC84—15、EP1K30TC144—3或EP1K100QC208—3中,通过合适的管脚分配,将相应的管脚连接起来,验证设计是否完成设计要求;实验报告一、数字秒表顶层设计外部输入:启动/停止信号(start);10MHZ的时钟信号(clk);清零信号(clr);外部输出:位选控制信号(sel0、sel1、sel2);7段数码管显示信号(led0、led1、led2、led3、led4、led5、led6、led7);数字秒表顶层原理图二、数字秒表内部设计1、分频器功能:将10MHz的时钟信号转换成100Hz的计时脉冲,使秒表正常工作。
图标:VHDL语言:library ieee;use ieee.std_logic_1164.all;entity div isport(clr,clk: in bit;q: buffer bit);end div;architecture a of div issignal counter:integer range 0 to 49999;beginprocess(clr,clk)beginif (clk='1' and clk'event) thenif clr='1' thencounter<=0;elsif counter=49999 thencounter<=0;q<= not q;elsecounter<=counter+1;end if;end if;end process;end a;波形仿真:2、十进制计数器功能:通过在计时脉冲的作用下进行逢十进一,从而完成对秒个位和分个位进行计数的功能。
图标:VHDL语言:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity count10 isport(clr,start,clk: in bit;cout: out bit;daout: out std_logic_vector(3 downto 0));end count10;architecture a of count10 issignal temp:std_logic_vector(3 downto 0);begindaout<=temp;process(clk,clr)beginif clr='1' thentemp<="0000";cout<='0';elsif (clk'event and clk='1') thenif start='1' thenif temp>="1001" thentemp<="0000";cout<='1';elsetemp<=temp+1;cout<='0';end if;end if;end if;end process;end a;波形仿真:3、六进制计数器功能:通过在计时脉冲的作用下进行逢六进一,完成秒表秒的十位部分和分的十位部分的计数功能。
图标:VHDL语言:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity count6 isport(clr,start,clk: in bit;cout: out std_logic;daout: out std_logic_vector(3 downto 0)); end count6;architecture a of count6 issignal temp:std_logic_vector(3 downto 0);begindaout<=temp;process(clk,clr)beginif clr='1' thentemp<="0000";cout<='0';elsif (clk'event and clk='1') then if start='1' thenif temp>="0101" thentemp<="0000";cout<='1';elsetemp<=temp+1;cout<='0';end if;end if;end if;end process;end a;波形仿真:4、二十四进制计数器功能:通过在计时脉冲的作用下进行逢二十四进一,从而对时进行计数。
图标:VHDL语言:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity count24 isport(clr,start,clk:in std_logic;hour0,hour1:out std_logic_vector(3 downto 0));end count24;architecture a of count24 isbegin process(clr,clk)variable cnt1,cnt0:std_logic_vector(3 downto 0);beginif clr='1' then cnt0:="0000"; cnt1:="0000";elsif clk'event and clk='1' thenif start='1' thenif cnt1="0010" and cnt0="0011"then cnt1:="0000";cnt0:="0000";elsif cnt0<"1001" then cnt0:=cnt0+1;else cnt0:="0000";cnt1:=cnt1+1;end if;end if;end if;hour0<=cnt0;hour1<=cnt1;end process;end a;波形仿真:5、数据选择和数码管选择模块功能:通过每个计数器输入的dain信号对数码管进行选择。
图标:VHDL语言:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity seltime isport(clk: in bit;dain0,dain1,dain2,dain3,dain4,dain5,dain6,dain7: 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 7;beginprocess(clk)beginif (clk='1'and clk'event) thenif temp=7 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;when 6=>sel<="110";daout<=dain6;when 7=>sel<="111";daout<=dain7;end case;end if;end process;end a;波形仿真:6、数码管驱动模块:功能:通过对输入的信号进行编码,完成对7段数码管的驱动,使数码管显示出对应的数字。