EDA数字秒表设计课程设计
- 格式:docx
- 大小:356.62 KB
- 文档页数:12
课程设计任务书学生姓名:专业班级:电子科学与技术电子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的数字秒表课程设计一、课程目标知识目标:1. 学生能理解EDA(电子设计自动化)的基本概念,掌握数字秒表的基本原理;2. 学生能描述数字秒表的电路结构,了解各个部分的功能和相互关系;3. 学生能掌握数字秒表设计中所涉及的数字逻辑,如计时、清零、启动/停止等功能的实现。
技能目标:1. 学生能够运用所学知识,使用EDA工具进行数字秒表的电路设计和仿真;2. 学生能够分析并解决数字秒表设计过程中遇到的问题,提高实际操作能力;3. 学生能够通过小组合作,完成数字秒表的调试与优化,提高团队协作能力。
情感态度价值观目标:1. 学生通过本课程的学习,培养对电子设计的兴趣和热情,提高探究精神;2. 学生能够认识到科技发展对日常生活的影响,增强社会责任感和创新意识;3. 学生在小组合作中学会尊重他人意见,培养良好的沟通能力和团队精神。
分析课程性质、学生特点和教学要求,本课程目标将分解为以下具体学习成果:1. 学生能够独立完成数字秒表的电路设计和仿真;2. 学生能够通过小组合作,完成数字秒表的调试与优化,并撰写实验报告;3. 学生能够对课程中所学知识进行总结,以口头或书面的形式进行分享。
二、教学内容本课程教学内容依据课程目标,紧密结合教材,制定以下详细教学大纲:1. 数字电路基础知识回顾- 复习数字逻辑基础,强调触发器、计数器等基本组件的工作原理。
2. EDA工具介绍- 介绍EDA软件的使用方法,如Multisim、Proteus等。
3. 数字秒表的原理与设计- 讲解数字秒表的电路结构,分析各部分功能;- 引导学生理解秒表的计时原理,探讨如何实现启动、停止、清零等功能。
4. 电路设计与仿真- 指导学生使用EDA工具进行数字秒表的电路设计;- 教学过程中,针对设计过程中可能遇到的问题进行讲解和指导。
5. 小组合作调试与优化- 学生分组进行电路调试,优化设计;- 引导学生学会分析问题、解决问题,提高实际操作能力。
目录数字秒表设计性实验任务书 ........................................................ 错误!未定义书签。
一、设计性实验目的 ............................................................... 错误!未定义书签。
二、设计性实验说明 ............................................................... 错误!未定义书签。
三、实验箱给定硬件 ............................................................... 错误!未定义书签。
四、要求 ................................................................................... 错误!未定义书签。
实验报告 .. (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的计时脉冲,使秒表正常工作。
课程设计目录第一章:系统设计要求 (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多功能秒表课程设计一、课程目标知识目标:1. 学生能理解EDA多功能秒表的基本原理和功能。
2. 学生能掌握秒表的计时、计次和闹钟等功能操作。
3. 学生了解秒表在日常生活和运动竞赛中的应用。
技能目标:1. 学生能运用所学知识,独立操作多功能秒表,进行计时和计次。
2. 学生能通过分析秒表数据,提高解决问题的能力。
3. 学生能运用秒表进行简单的运动计时和数据分析。
情感态度价值观目标:1. 学生培养对电子产品的兴趣,激发学习电子技术知识的热情。
2. 学生在团队协作中,培养合作精神和沟通能力。
3. 学生通过运用秒表进行运动计时,培养公平竞争和尊重规则的意识。
课程性质:本课程为实践性较强的电子技术课程,结合多功能秒表的实用功能,使学生掌握基本操作和运用。
学生特点:学生处于好奇心强、动手能力逐渐增强的阶段,对新鲜事物充满兴趣,善于合作与分享。
教学要求:教师需引导学生主动参与,注重实践操作,培养学生动手能力和解决问题的能力。
在教学过程中,关注学生的情感态度,激发学生的学习兴趣,提高学生的综合素质。
通过本课程的学习,使学生将所学知识应用于实际生活,达到学以致用的目的。
二、教学内容本章节教学内容主要包括以下几部分:1. 多功能秒表的原理与结构:介绍秒表的电子元件、工作原理和整体结构,使学生了解秒表的内部构造和功能实现方式。
教材章节:第一章 电子元件与电路基础2. 多功能秒表的操作与使用:详细讲解秒表的计时、计次、闹钟等功能操作,以及如何进行复位、设置等操作。
教材章节:第二章 数字电路与计时器3. 秒表在运动计时中的应用:通过实例分析,使学生了解秒表在运动竞赛中的实际应用,如田径、游泳等项目的计时。
教材章节:第三章 计时器在体育运动中的应用4. 秒表数据的分析与处理:教授学生如何分析秒表数据,进行简单的数据处理,提高学生解决问题的能力。
教材章节:第四章 数据分析与处理5. 实践操作:安排学生进行实际操作,如使用秒表进行计时、计次,分析数据等,巩固所学知识。
电子课程设计—数字秒表的设计数字秒表的设计数字秒表的设计一、设计任务与要求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课程设计报告一、设计任务秒表设计基本功能: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进制计数器。
Xxxxxxxx 大学课程设计2021年7 月12日东北石油大学课程设计任务书课程硬件课程设计题目电子秒表设计专业姓名学号要紧内容、大体要求等一、要紧内容:利用KX_DN教学实验箱、微机和QuartusⅡ软件系统,利用VHDL语言输入方式设计数字秒表。
它要紧由显示译码器、分频器、十进制计数器、报警器和计数器组成。
秒共有6个输出显示,别离为百分之一秒、十分之一秒、秒、十秒、分、十分,因此共有6个计数器与之相对应,6个计数器的输出全都为BCD码输出,如此便于同显示译码器的连接。
要求能够利用层次设计方式和VHDL语言,完成硬件设计设计和仿真。
最后在KX_DN教学实验箱中实现。
二、大体要求:1.四个10进制计数器:用来别离对百分之一秒、十分之一秒、秒和分进行计数;2.两个6进制计数器:用来别离对十秒和十分进行计数;3.显示译码器:完成对显示的操纵;4. 能任意启动和归零。
三、扩展要求依照标准写出论文,要求字数在4000字以上,并进行答辩。
论文内容包括概述(学习、调研、分析、设计的内容摘要)、EDA技术的现状和进展趋势、对KX_DN教学实验箱和Quartus Ⅱ软件的把握程度、数字钟的设计进程(包括原理图或程序设计、编译、仿真分析、硬件测试的全进程),论文中含有原理图、程序、仿真波形图及其分析报告。
完成期限第19—20周指导教师专业负责人2021年6 月25 日摘要EDA技术是在电子CAD技术基础上进展起来的运算机软件系统,是指以运算机为工作平台,融合了应用电子技术、运算机技术、信息处置及智能化技术的最新功效,进行电子产品的自动设计。
本文通过硬件语言VHDL的描述,完成能够记录两次的秒表的设计和实现,先设计秒表的各个底层模块,运用底层各个模块产生的进位将各个模块连接起来实现一个一般秒表。
然后再将两个一般秒表用选择电路连接在一路,完成能够记录两次的秒表。
本次设计的目的确实是在把握EDA初步利用的基础上,运用VHDL语言对数字秒表进行设计,将理论和实践相结合,提高与运算机硬件有关设计能力,提高分析、解决运算机技术实际问题的能力。
实验一 数字式秒表设计一、设计任务与技术指标试设计并制作一个用七段数码管显示的秒表,并具有如下指标: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.说明调试方法与调试过程;。
学号:11446129常州大学EDA技术课程设计报告题目: _________________ 秒表电路设计___________________ 学生:________________ 袁李飞 ________________________ 学院(系:)信息科学与工程专业班级:电子111指导教师: ________________ 李文杰______________________EDA课程设计任务书四、设计步骤和安排:(1) 题目安排;图书馆查相关资料;(2) 设计原理研究,总体设计;(3) 各主要模块的VHDL设计。
各模块的设计仿真分析。
(4) 完成系统顶层文件设计,系统总体功能的仿真分析。
(5) 将设计内容进行硬件配置,在GW4实验箱上进行调试。
(6) 撰写课程设计报告、答辩并提交报告。
目录1. 前言2. 设计要求 (1)3. 实验目的 (1)4. 实验原理 (2)5. 设计框图 (2)6. 模块说明 (3)6.1分频器 (3)6.2十进制计数器 (4)6.3六进制计数器 (5)7. 顶层文件 (7)7.1整体连接图 (7)7.2仿真波形 (7)8. 硬件调试 (8)8.1硬件要求 (8)8.2引脚锁定 (8)9. 实验总结 (9)9.1错误与解决方法 (9)9.2心得体会 (9)10. 参考文献 (10)1.前言本次设计的目的就是在掌握EDA 实验开发系统的初步使用基础上,了解EDA 技术,对计算机系统中时钟控制系统进一步了解,掌握状态机工作原理,同时了解计算机时钟脉冲是怎么产生和工作的。
在掌握所学的计算机组成与结构课程理论知识时,通过对数字秒表的设计,进行理论与实际的结合,提高与计算机有关设计能力,提高分析,解决计算机与控制实现的技术,达到课程设计的目标。
利用VHDL 语言设计基于计算机电路中时钟脉冲原理的数字秒表,显示最长时间是59 分59 秒99,设计了复位和启停开关。
复位开关reset 可以在任何情况下使用,使用以后计时器清零,并做好下一次计时的准备,启停开关为en,高电平时秒表工作,低电平时秒表停止计时,在触发高电平时接着上次的计时继续计时。
EDA数字秒表设计专业:自动化班级学号:5090431姓名:2011年 6 月15 日数字秒表设计实验任务书一、设计实验目的:在MAX+plusII软件平台上,熟练运用VHDL语言,完成数字时钟设计的软件编程、编译、综合、仿真,使用EDA实验箱,实现数字秒表的硬件功能。
二、设计实验说明及要求:1、数字秒表主要由:分频器、扫描显示译码器、一百进制计数器、六十进制计数器(或十进制计数器与6进制计数器)、十二进制计数器(或二十四进制计数器)电路组成。
在整个秒表中最关键的是如何获得一个精确的100H Z计时脉冲,除此之外,数字秒表需有清零控制端,以及启动控制端、保持保持,以便数字时钟能随意停止及启动。
2、数字秒表显示由时(12或24进制任选)、分(60进制)、秒(60进制)、百分之一秒(一百进制)组成,利用扫描显示译码电路在八个数码管显示。
3、能够完成清零、启动、保持(可以使用键盘或拨码开关置数)功能。
4、时、分、秒、百分之一秒显示准确。
三、数字时钟组成及功能:1、分频率器:用来产生100H Z计时脉冲;2、十二或二十四进制计数器:对时进行计数3、六十进制计数器:对分和秒进行计数;4、六进制计数器:分别对秒十位和分十位进行计数;5、十进制计数器:分别对秒个位和分个位进行计数;6、扫描显示译码器:完成对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中,通过合适的管脚分配,将相应的管脚连接起来,验证设计是否完成设计要求;设计过程一、各模块的原理及其程序2.1分频模块分频器电路将10MHz的时钟信号来产生100Hz的计时脉冲。
分频器源程序:libraryieee;use ieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;entity COUNTER100000 isport(clk_in:instd_logic;clk_out:outstd_logic);end COUNTER100000;architecture b of COUNTER100000 issignalcountQ: std_logic_vector( 16 downto 0);beginprocess(clk_in)beginif(clk_in'event and clk_in='1') thenif(countQ<99999) thencountQ<=countQ+1;elsecountQ<=(others=>'0');end if;end if;end process;process(countQ)beginif(countQ<50000)thenclk_out<='0';elseclk_out<='1';end if;end process;end b;2.2计数模块计时模块执行计时功能,计时方法和计算机一样是对标准时钟脉冲计数。
它是由四个十进制计数器、两个六进制计数器和一个十二进制计数器构成,其中毫秒位采用两个十进制计数器构成一百进制计数器,秒位和分位采用一个十进制和一个六进制计数器构成六十进制计数器,时位采用十二进制计数器。
每个计数器有清零端、使能端和保持端。
十进制计数器源程序:libraryieee;use ieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entity count_10 isport(count:outstd_logic_vector(3 downto 0);cout:outstd_logic;cin,rst,clk:instd_logic);end count_10;architecture behavioral ofcount_10 issignalcounter:std_logic_vector(3 downto 0);beginprocess(clk,rst,cin)beginifrst='1'then counter<="0000";cout<='0';elsifclk'event and clk='1' thenifcin='1' thenif counter="1001"then counter<="0000";cout<='1';else counter<=counter+"0001"; cout<='0';end if;end if;end if;end process;count<=counter;end behavioral;六进制计数器源程序:libraryieee;use ieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entity count_6 isport(count:outstd_logic_vector(3 downto 0);cout:outstd_logic; cin,rst,clk:instd_logic);end count_6;architecture behavioral of count_6 issignalcounter:std_logic_vector(2 downto 0);begin process(clk,rst)begin if rst='1'then counter<="000";cout<='0';elsifclk'event and clk='1' then if cin='1' then if counter="101"then counter<="000";cout<='1';else counter<=counter+"001"; cout<='0';end if;end if;end if;end process;count(2 downto 0)<=counter; count(3)<='0';end behavioral;十二进制计数器源程序:libraryieee;use ieee.std_logic_1164.all;useieee.std_logic_unsigned.all;ENTITY count_12 ISPORT(en: IN std_logic;clr: IN std_logic;clk: IN std_logic;cout: out std_logic;s1: buffer std_logic_vector(3 downto 0);s2: buffer std_logic_vector(3 downto 0));END count_12;ARCHITECTURE behave of count_12 ISBEGINcout<='1' when(s1="0001" and s2="0001" and en='1')else'0'; PROCESS(clk,clr)BEGINIF(clr='1')THENs1<="0000";s2<="0000";elsif(clk'EVENT AND CLK='1')THENif(en='1')thenif(s1=9)thens1<="0000";if(s2=1)thens2<="0000";elses2<=s2+1;end if;elses1<=s1+1;end if;if(s2=1 and s1=1) thens1<="0000";s2<="0000";end if;end if;end if;end PROCESS;end behave;2.3显示模块计时显示电路的作用是将计时值在LED数码管上显示出来。
计时电路产生的值经过BCD七段译码后,驱动LED数码管。
计时显示电路的实现方案采用扫描显示。
扫描显示译码器源程序:libraryieee;use ieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityseltime isport(clk:instd_logic;sum8:instd_logic_vector(3 downto 0);sum7:instd_logic_vector(3 downto 0);sum6:instd_logic_vector(3 downto 0);sum5:instd_logic_vector(3 downto 0);sum4:instd_logic_vector(3 downto 0);sum3:instd_logic_vector(3 downto 0);sum2:instd_logic_vector(3 downto 0);sum1:instd_logic_vector(3 downto 0);selout:outstd_logic_vector(2 downto 0);segout:outstd_logic_vector(6 downto 0));endseltime;architecture fun of seltime issignaltemp:std_logic_vector(2 downto 0);signalseg:std_logic_vector(6 downto 0);signalsel:std_logic_vector(2 downto 0);beginselout<=sel;segout<=seg;process(clk)variablenum:std_logic_vector(3 downto 0);beginif (clk'event and clk='1' ) thenif temp>="111" thentemp<="000";elsetemp<=temp+1;end if;case temp iswhen "111" =>num:=sum8(3 downto 0);sel<="111";when "110" =>num:=sum7(3 downto 0);sel<="110";when "101" =>num:=sum6(3 downto 0);sel<="101";when "100" =>num:=sum5(3 downto 0);sel<="100";when "011" =>num:=sum4(3 downto 0);sel<="011";when "001" =>num:=sum3(3 downto 0);sel<="010";when "000" =>num:=sum2(3 downto 0);sel<="001";when others=>num:=sum1(3 downto 0);sel<="000";end case;casenum iswhen"0000"=>seg<="0111111";when"0001"=>seg<="0000110";when"0010"=>seg<="1011011";when"0011"=>seg<="1001111";when"0100"=>seg<="1100110";when"0101"=>seg<="1101101";when"0110"=>seg<="1111101";when"0111"=>seg<="0000111";when"1000"=>seg<="1111111";when"1001"=>seg<="1101111";when others=>seg<="0000000";end case;end if;end process;end fun;系统仿真十进制计数器时序仿真当清零端为0,使能端为1,电路处于由0—9计数的状态,每计十个数有一个进位输出。