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、一级一级向上进行元件例化(本实验只需例化一次即可),设计顶层文件。
实验一 数字式秒表设计一、设计任务与技术指标试设计并制作一个用七段数码管显示的秒表,并具有如下指标: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课程设计报告——基于VHDL语言的秒表设计课程名称:EDA技术院系:地球物理及信息工程学院专业班级:电子信息工程08级2班学生姓名:学号:指导老师:完成时间:2011年5月18日秒表设计一. 设计要求利用EDA实验箱,通过VHDL语言进行编程,设计一个简单的秒表,并用EDA实验箱进行实现,具体设计要求如下:(1)有使能、暂停、继续、秒表计数功能;(2)带有异步复位功能;(3)显示分、秒信息,若需要,显示秒表信息。
二. 设计的作用、目的在本次设计中,可以简单的了解EDA技术的应用以及VHDL语言编写的方法。
通过设计一个秒表,可以掌握用VHDL设计多位加法计数器的方法,尤其是调整时钟使得每过一秒就改变一个数,达到设计的要求。
三. 设计的具体实现1.系统概述本次系统设计主要分三个部分,一是通过VHDL语言设计一个八位的加法计数器,来实现秒表的计时功能;二是通过调整时钟使秒表计数为每秒改变一个数;三是加入一些控制按键,实现使能、暂停、继续等功能。
2.程序具体设计秒表显示共有6位,两位显示分,两位显示秒,十分秒和百分秒各一位。
设计时使用一个计数器,随着时钟上升沿的到来循环计数,每计数一次,百分秒位加一,通过百分秒位满十进位来控制十分位的计数,十分位满十进位,依次类推,实现秒表计数。
为实现秒位的计时精确,百秒位必须以0.01秒的时间间隔计数,即时钟的频率是100Hz。
为此,本设计采用3MHz的时钟频率通过分频得到100Hz的时钟频率,再送给控制时钟以得到比较精确的CLK信号。
具体程序设计见附录。
引脚定义如下:其中,时钟信号CLK为3MHz的时钟频率,分频后得到的时钟为CLK2,输出引脚CLK2和输入引脚CLK2在外部相连,实现将分频后的时钟送入。
3.调试应用MAX+plus II软件编译调试实验控制程序, 仿真运行结果如下:(1)给时钟后,实现开始功能:开始键按下(STA=‘1’)后,秒表计数开始。
(2)给时钟后,实现暂停功能:从上图可以看出暂停键按下后(POS=‘1’),输出(CQ)保持不变,直到暂停键再次按下(POS=‘0’),输出才继续计数,从而实现了暂停的功能。
eda课程设计报告秒表一、教学目标本课程的教学目标是让学生掌握EDA(电子设计自动化)的基本概念、原理和应用方法。
通过本课程的学习,学生将能够:1.理解EDA的定义、发展历程和作用;2.掌握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 课程设计报告书课题名称 基于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课设报告概述本课设要求设计一款加减计时秒表,需要实现的功能如下: - 显示秒表计时的数字; - 点击“开始”按钮开始计时; - 点击“停止”按钮停止计时; - 点击“复位”按钮清零计时; - 点击“加号”和“减号”按钮可以每次增加或减少1秒计时。
为了完成上述功能,我们选择EDA软件进行仿真和布图设计。
设计思路我们首先需要构思秒表的实现流程,考虑到需要实时更新读取的数据,所以我们选择使用FPGA芯片作为逻辑控制基础。
FPGA芯片是可编程逻辑芯片,可以对逻辑电路进行可编程配置,实现各种功能,如:加法器、减法器、触发器等。
整体设计思路我们将秒表的设计思路划分为以下步骤: 1. 使用时钟信号,设置计时寄存器和数码管显示寄存器; 2. 配合开始、停止两个开关控制开始和停止计时; 3. 设置加减计时器,在每次计时加减操作时使用; 4. 清零操作使用复位开关实现。
时钟信号和计时寄存器时钟信号可以使用EDA软件自带的时钟模块实现,设置计时寄存器用于记录加减后的计时结果。
这部分主要有以下几个步骤: - 外部时钟进入FPGA芯片中;- 引出一个指定频率的时钟信号; - 将时钟信号连接到计时寄存器的时钟端; - 计时寄存器向外部输出计时结果。
开始、停止控制实现开始、停止控制实现需要引入开关电路,可以使用EDA软件预设的开关模块。
我们可以将开关模块与数码管显示寄存器和计时寄存器进行连接,参考以下步骤进行实现: - 设计电路,将“开始”和“停止”两个开关用于控制计时器寄存器的启动和停止; - 将时钟信号连接到开关电路中,作为同步信号; - 将开关电路输出的信号连接到计时器寄存器和数码管显示寄存器。
这样,在开始计时时,计时寄存器会开始计时,并输出计时结果到数码管;而停止计时时,计时寄存器和数码管都会停止更新。
加减计时器和清零操作加减计时器和清零操作也可以使用EDA软件中的加减器模块和复位模块来实现。
实现步骤如下: - 设计加减计时器模块,包含加减按钮、加减器、计时寄存器,将加减按钮连接至加减器,加减器连接至计时寄存器; - 设计一个带复位功能的复位模块,将复位按钮连接至计时器寄存器和数码管。
eda数字秒表课程设计一、课程目标知识目标:1. 学生能够理解EDA(电子设计自动化)的基本概念,掌握数字秒表的设计原理;2. 学生能够运用所学知识,分析并描述数字秒表的电路结构、工作原理及各部分功能;3. 学生能够掌握数字秒表中计时、清零、启动/停止等基本操作。
技能目标:1. 学生能够运用EDA软件进行数字秒表的原理图绘制和仿真;2. 学生能够根据设计要求,编写数字秒表的Verilog HDL代码,并进行功能验证;3. 学生能够通过实际操作,调试并优化数字秒表的性能。
情感态度价值观目标:1. 学生培养对电子设计自动化技术的兴趣,激发学习热情;2. 学生培养团队协作精神,学会与他人共同解决问题;3. 学生培养严谨、细致、求实的科学态度,提高创新意识和实践能力。
课程性质:本课程为实践性较强的电子技术课程,旨在让学生通过实际操作,掌握EDA数字秒表的设计与实现。
学生特点:本年级学生已具备一定的电子技术基础,对EDA技术有一定了解,具有较强的学习能力和动手能力。
教学要求:教师需引导学生运用所学知识,通过实际操作,完成数字秒表的设计与制作。
在教学过程中,注重培养学生的实践能力、创新意识和团队协作能力。
通过本课程的学习,使学生能够将理论知识与实践相结合,提高综合素养。
二、教学内容本课程教学内容紧密围绕课程目标,结合教材相关章节,组织以下内容:1. EDA技术简介:使学生了解EDA技术的发展、应用及优势,为后续学习打下基础。
2. 数字秒表原理:讲解数字秒表的电路结构、工作原理,引导学生掌握计时、清零、启动/停止等基本功能。
3. 原理图绘制与仿真:教授学生使用EDA软件绘制数字秒表的原理图,并进行功能仿真。
4. Verilog HDL编程:教授学生编写数字秒表的Verilog HDL代码,掌握代码编写规范和技巧。
5. 功能验证与优化:指导学生进行数字秒表的功能验证,分析并解决可能出现的问题,优化设计。
具体教学内容安排如下:1. 第1-2课时:EDA技术简介,数字秒表原理学习。
数字秒表设计专业:自动化班级学号:509姓名:2011年 6 月14日目录数字秒表设计实验任务书 (2)一、设计实验目的: (2)二、设计实验说明及要求: (2)三、数字秒表组成及功能: (2)四、系统硬件要求: (2)五、设计内容及步骤: (3)六、硬件实现 (3)实验报告 (3)一、数字秒表顶层设计 (3)二、数字秒表内部设计 (4)1、分频器 (4)2、十进制计数器 (5)3、六进制计数器 (6)4、二十四进制计数器 (8)5、数据选择和数码管选择模块 (9)6、数码管驱动模块: (10)三、数字秒表仿真波形 (12)四、硬件验证 (12)五、实验总结 (12)数字秒表设计实验任务书一、设计实验目的:在MAX+plusII软件平台上,熟练运用VHDL语言,完成数字时钟设计的软件编程、编译、综合、仿真,使用EDA实验箱,实现数字秒表的硬件功能。
二、设计实验说明及要求:1、数字秒表主要由:分频器、扫描显示译码器、一百进制计数器、六十进制计数器(或十进制计数器与6进制计数器)、十二进制计数器(或二十四进制计数器)电路组成。
在整个秒表中最关键的是如何获得一个精确的100H Z 计时脉冲,除此之外,数字秒表需有清零控制端,以及启动控制端、保持保持,以便数字时钟能随意停止及启动。
2、数字秒表显示由时(12或24进制任选)、分(60进制)、秒(60进制)、百分之一秒(一百进制)组成,利用扫描显示译码电路在八个数码管显示。
3、能够完成清零、启动、保持(可以使用键盘或拨码开关置数)功能。
4、时、分、秒、百分之一秒显示准确。
三、数字秒表组成及功能:1、分频率器:用来产生100H Z计时脉冲;2、二十四进制计数器:对时进行计数;3、六进制计数器:分别对秒十位和分十位进行计数;4、十进制计数器:分别对秒个位和分个位进行计数;5、扫描显示译码器:完成对7字段数码管显示的控制;四、系统硬件要求:1、时钟信号为10MHz;2、FPGA芯片型号EPM7128LC84—15、EP1K30TC144—3或EP1K100QC208—3(根据实验箱上FPGA芯片具体选择);3、8个7段扫描共阴级数码显示管;4、按键开关(清零、启动、保持);五、设计内容及步骤:1、根据电路持点,用层次设计概念。
课程设计报告题目:秒表电路设计课程:《EDA技术》课程设计专业班级: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 实验开发系统进行硬件验证时却发现实验结果不正确。
数字秒表设计专业:自动化班级学号: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段数码管的驱动,使数码管显示出对应的数字。