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的数字秒表课程设计一、课程目标知识目标: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课程设计数字秒表设计
目录数字秒表设计性实验任务书 ........................................................ 错误!未定义书签。
一、设计性实验目的 ............................................................... 错误!未定义书签。
二、设计性实验说明 ............................................................... 错误!未定义书签。
三、实验箱给定硬件 ............................................................... 错误!未定义书签。
四、要求 ................................................................................... 错误!未定义书签。
实验报告 .. (3)一、数字秒表顶层设计 (3)二、数字秒表内部设计 (3)1、分频器 (3)2、十进制计数器 (4)3、六进制计数器 (6)4、二十四进制计数器 (7)5、数据选择和数码管选择模块 (8)6、数码管驱动模块: (10)三、数字秒表仿真波形 (11)四、实验总结 (11)数字秒表设计性实验任务书一、设计性实验目的:在MAX-PLUS II软件平台上,熟练运用VHDL硬件描述语言,完成数字时钟的文本输入或原理图输入、编译、综合、仿真,利用EDA实验箱,实现数字秒表的硬件实现。
二、设计性实验说明:1、数字秒表电路主要由:分频器、扫描显示译码器、六十进制计数器(或由十进制计数器与六进制计数器组成),十二进制计数器(或二十四进制计数器)、一百进制计数器电路组成;2、数字秒表显示由小时(十二或二十四进制任选)、分钟(六十进制)、秒(六十进制)、十分之一秒、百分之一秒组成;3、各模块功能:(1)分频器模块:用来产生100Hz计时脉冲;(2)十二或二十四进制计数器模块:对小时进行计数;(3)六十进制计数器模块:对分秒进行计数;(4)六进制计数器模块:分别对分十位和秒十位进行计数;(5)十进制计数器模块:分别对分个位、秒个位、十分之一秒、百分之一秒进行计数;(6)扫描显示译码器模块:完成对7字段数码管/液晶显示的控制;(7)一百进制计数器模块:对十分之一秒和百分之一秒进行计数;三、实验箱给定硬件:1、系统时钟脉冲信号为10MHz;2、CPLD/FPGA芯片型号:EPM7128SLC84-5、EPM1K30TC144-3、EPM1K100QC208-3(根据实验箱上的芯片型号选择);3、8个7字段共阴显示数码管(选用);4、液晶显示器1602(选用);5、拨码开关、按键;四、要求:1、精确显示小时、分钟、秒;2、具有清零、启动、保持功能;3、显示采用数码管显示或液晶显示;实验报告一、数字秒表顶层设计外部输入:启动/停止信号(start);10MHZ的时钟信号(clk);清零信号(clr);外部输出:位选控制信号(sel0、sel1、sel2);7段数码管显示信号(led0、led1、led2、led3、led4、led5、led6、led7);数字秒表顶层原理图二、数字秒表内部设计1、分频器功能:将10MHz的时钟信号转换成100Hz的计时脉冲,使秒表正常工作。
EDA多功能秒表课程设计
EDA多功能秒表课程设计一、课程目标知识目标:1. 学生能理解EDA多功能秒表的基本原理和功能。
2. 学生能掌握秒表的计时、计次和闹钟等功能操作。
3. 学生了解秒表在日常生活和运动竞赛中的应用。
技能目标:1. 学生能运用所学知识,独立操作多功能秒表,进行计时和计次。
2. 学生能通过分析秒表数据,提高解决问题的能力。
3. 学生能运用秒表进行简单的运动计时和数据分析。
情感态度价值观目标:1. 学生培养对电子产品的兴趣,激发学习电子技术知识的热情。
2. 学生在团队协作中,培养合作精神和沟通能力。
3. 学生通过运用秒表进行运动计时,培养公平竞争和尊重规则的意识。
课程性质:本课程为实践性较强的电子技术课程,结合多功能秒表的实用功能,使学生掌握基本操作和运用。
学生特点:学生处于好奇心强、动手能力逐渐增强的阶段,对新鲜事物充满兴趣,善于合作与分享。
教学要求:教师需引导学生主动参与,注重实践操作,培养学生动手能力和解决问题的能力。
在教学过程中,关注学生的情感态度,激发学生的学习兴趣,提高学生的综合素质。
通过本课程的学习,使学生将所学知识应用于实际生活,达到学以致用的目的。
二、教学内容本章节教学内容主要包括以下几部分:1. 多功能秒表的原理与结构:介绍秒表的电子元件、工作原理和整体结构,使学生了解秒表的内部构造和功能实现方式。
教材章节:第一章 电子元件与电路基础2. 多功能秒表的操作与使用:详细讲解秒表的计时、计次、闹钟等功能操作,以及如何进行复位、设置等操作。
教材章节:第二章 数字电路与计时器3. 秒表在运动计时中的应用:通过实例分析,使学生了解秒表在运动竞赛中的实际应用,如田径、游泳等项目的计时。
教材章节:第三章 计时器在体育运动中的应用4. 秒表数据的分析与处理:教授学生如何分析秒表数据,进行简单的数据处理,提高学生解决问题的能力。
教材章节:第四章 数据分析与处理5. 实践操作:安排学生进行实际操作,如使用秒表进行计时、计次,分析数据等,巩固所学知识。
EDA课程设计--数字秒表设计
电子课程设计—数字秒表的设计数字秒表的设计数字秒表的设计一、设计任务与要求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课程设计报告题目: 秒表指导教师:姓名学号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课程设计资料 实验一 数字式秒表
实验一 数字式秒表设计一、设计任务与技术指标试设计并制作一个用七段数码管显示的秒表,并具有如下指标: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秒表电路课程设计
学号: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课程设计:数字秒表的设计
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课程设计
--进程开始
begin
if clr='0' then
cqi<=0;
elsif clk'event and clk='1' then --采取时钟信号的上升沿
技术
if ena='1' then
if cqi<99 then
cqi<=cqi+1;
else
cqi<=0;
end if;
end if;
end if;
总体方案设计图如图3.1:
图3.1总体方案设计图
3.2秒表系统各模块直接的连接
从设计的秒表的顶层实体上来看,这个秒表有一个系统时钟输入, 有清零键CLR,暂停键STOP二个使能控制输入,输出则是、都是接到数 码管上的。因此,我们要把系统时钟接到分频器的输入端,将分频器的 输出即100 Hz标准时钟接到即使系统的输入端上。计时系统有一个100
entity cnt100 is
port (clk:in std_logic;
--声明clk是标准逻辑位类型的
输入端口
clr:in std_logic;
--声明clr是标准逻辑位类型的输
入端口
ห้องสมุดไป่ตู้
ena:in std_logic;
--声明ena是标准逻辑位类型的输
入端口
cq:out std_logic_vector(6 downto 0);
口
clr:in std_logic; --声明clr是标准逻辑位类型的输入端
口
ena:in std_logic; --声明ena是标准逻辑位类型的输入端口
cq:out std_logic_vector(6 downto 0);
EDA数字秒表课程设计
程序:(1)时基分频模块的VHDL源程序(LIBRARY IEEE;USE CB10 ISPORT(CLK:IN STD_LOGIC; ——输入时钟信号CO:OUT STD_LOGIC); ——分频输出信号END CB10; ——实体描述ARCHITECTURE ART OF CB10 IS ——结构体描述SIGNAL 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;(2)控制模块的VHDL源程序(LIBRARY IEEE;USE CTRL ISPORT(CLR,CLK,SP:IN STD_LOGIC;EN:OUT STD_LOGIC); ——CLR:清零信号CLK:脉冲输入端SP:计数输入端EN :输出端END;ARCHITECTURE BEHAVE OF CTRL ISCONSTANT S0:STD_LOGIC_VECTOR(1 DOWNTO 0):="00";CONSTANT S1:STD_LOGIC_VECTOR(1 DOWNTO 0):="01";CONSTANT S2:STD_LOGIC_VECTOR(1 DOWNTO 0):="10";CONSTANT S3:STD_LOGIC_VECTOR(1 DOWNTO 0):="11";TYPE STATES IS(S0,S1,S2,S3); ——表达四个状态的位矢量 SIGNAL CURRENT_STATE,NEXT_STATE:STATES;BEGINCOM:PROCESS(SP,CURRENT_STATE) ——决定转换状态的进程BEGINCASE CURRENT_STATE ISWHEN S0=>EN<='0'; ——选中状态为S0、EN='0' IF SP='1'THENNEXT_STATE<=S1;ELSENEXT_STATE<=S0;END IF;WHEN S1=>EN<='1'; ——选中状态为S1、EN='1' IF SP='1'THENNEXT_STATE<=S1;ELSENEXT_STATE<=S2;END IF;WHEN S2=>EN<='1'; ——选中状态为S2、EN='1' IF SP='1'THENNEXT_STATE<=S3;ELSENEXT_STATE<=S2;END IF;WHEN S3=>EN<='0'; ——选中状态为S3、EN='0' IF SP='1'THENNEXT_STATE<=S3;ELSENEXT_STATE<=S0;END IF;END CASE;END PROCESS;SYNCH:PROCESS(CLK) ——时序进程BEGINIF CLR='1'THENCURRENT_STATE<=S0;ELSIF CLK'EVENT AND CLK='1'THENCURRENT_STATE<=NEXT_STATE;END IF;END PROCESS;END BEHAVE;(3)计时模块的VHDL源程序①十进制计数器的VHDL源程序——LIBRARY IEEE;USE cdu10 ISPORT(CLK:IN STD_LOGIC; ——时钟信号CLR:IN STD_LOGIC; ——清零信号EN:IN STD_LOGIC; ——计数使能信号CN:OUT STD_LOGIC; ——计数输出信号COUNT10:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); ——计数值END cdu10;ARCHITECTURE ART OF cdu10 ISSIGNAL SCOUNT10:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINCOUNT10 <= SCOUNT10;PROCESS(CLK,CLR,EN)BEGINIF (CLR='1')THENSCOUNT10 <= "0000";CN <= '0';ELSIF RISING_EDGE(CLK) THEN ——脉冲为上跳沿触发IF(EN='1') THENIF SCOUNT10="1001"THENCN <= '1';SCOUNT10 <= "0000";ELSECN <= '0';SCOUNT10 <= SCOUNT10+'1';END IF;END IF;END IF;END PROCESS;END ART;②六进制计数器的VHDL源程序——LIBRARY IEEE;USE cdu6 ISPORT(CLK:IN STD_LOGIC;CLR:IN STD_LOGIC;EN:IN STD_LOGIC;CN:OUT STD_LOGIC; ——计数输出信号COUNT6:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); ——计数值END cdu6;ARCHITECTURE ART OF cdu6 ISSIGNAL SCOUNT6:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINCOUNT6 <= SCOUNT6;PROCESS(CLK,CLR,EN)BEGINIF (CLR='1')THENSCOUNT6 <= "0000";CN <= '0';ELSIF RISING_EDGE(CLK) THENIF(EN='1') THENIF SCOUNT6="0101"THENCN <= '1';SCOUNT6 <= "0000";ELSECN <= '0';SCOUNT6 <= SCOUNT6+'1';END IF;END IF;END IF;END PROCESS;END ART;③计时器的VHDL源程序——LIBRARY IEEE;USE count ISPORT(CLK:IN STD_LOGIC;CLR:IN STD_LOGIC;EN:IN STD_LOGIC;S_1MS: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); ——毫秒计数值S_10MS: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); ——十毫秒计数值 S_100MS: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); ——百毫秒计数值 S_1S: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); ——秒计数值S_10S: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); ——十秒计数值M_1MIN: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); ——分计数值M_10MIN: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); ——十分计数值HOUR: OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); ——小时计数值END count ;ARCHITECTURE ART OF count ISCOMPONENT cdu10 ——元件例化PORT(CLK:IN STD_LOGIC;CLR:IN STD_LOGIC;EN:IN STD_LOGIC;CN:OUT STD_LOGIC;COUNT10:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END COMPONENT cdu10;COMPONENT cdu6 ——元件例化PORT(CLK:IN STD_LOGIC;CLR:IN STD_LOGIC;EN:IN STD_LOGIC;CN:OUT STD_LOGIC;COUNT6:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END COMPONENT cdu6;SIGNAL A,B,C,D,E,F,G,H:STD_LOGIC;BEGINU1:cdu10 PORT MAP(CLK,CLR,EN,A,S_1MS);U2:cdu10 PORT MAP(A,CLR,EN,B,S_10MS);U3:cdu10 PORT MAP(B,CLR,EN,C,S_100MS);U4:cdu10 PORT MAP(C,CLR,EN,D,S_1S);U5:cdu6 PORT MAP(D,CLR,EN,E,S_10S);U6:cdu10 PORT MAP(E,CLR,EN,F,M_1MIN);U7:cdu6 PORT MAP(F,CLR,EN,G,M_10MIN);U8:cdu10 PORT MAP(G,CLR,EN,H,HOUR);END ART;(4)显示模块的VHDL源程序①数据选择器的VHDL源程序(LIBRARY IEEE;USE MULX ISPORT(CLK,CLR,EN:IN STD_LOGIC;S_1MS: IN STD_LOGIC_VECTOR(3 DOWNTO 0); ——毫秒计数器 S_10MS: IN STD_LOGIC_VECTOR(3 DOWNTO 0); ——十毫秒计数器 S_100MS: IN STD_LOGIC_VECTOR(3 DOWNTO 0); ——百毫秒计数器 S_1S: IN STD_LOGIC_VECTOR(3 DOWNTO 0); ——秒计数器S_10S: IN STD_LOGIC_VECTOR(3 DOWNTO 0); ——十秒计数器 M_1MIN: IN STD_LOGIC_VECTOR(3 DOWNTO 0); ——分计数器M_10MIN: IN STD_LOGIC_VECTOR(3 DOWNTO 0); ——十分计数器 HOUR: IN STD_LOGIC_VECTOR(3 DOWNTO 0); ——小时计数器 OUTBCD: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); ——BCD码输出SEG: OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); ——七段译码输出END MULX;ARCHITECTURE ART OF MULX ISSIGNAL COUNT:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(CLK)BEGINIF CLR='1'THENCOUNT<="1111";ELSIF RISING_EDGE(CLK)THENIF EN='1'THENIF COUNT="1001"THENCOUNT<="0000";ELSECOUNT<=COUNT+1;END IF;END IF;END IF;END PROCESS;PROCESS(CLK)BEGINIF CLK'EVENT AND CLK='1'THEN ——时钟上升沿触发输出各位数据CASE COUNT ISWHEN"0000"=>OUTBCD<=S_1MS; SEG<="";WHEN"0001"=>OUTBCD<=S_10MS; SEG<="";WHEN"0010"=>OUTBCD<=S_100MS; SEG<="";WHEN"0011"=>OUTBCD<=S_1S; SEG<="";WHEN"0100"=>OUTBCD<=S_10S; SEG<="";WHEN"0101"=>OUTBCD<=M_1MIN; SEG<="";WHEN"0110"=>OUTBCD<=M_10MIN; SEG<="";WHEN"0111"=>OUTBCD<=HOUR; SEG<="01111111";WHEN"1000"=>OUTBCD<=S_1MS; SEG<="";WHEN"1001"=>OUTBCD<=S_10MS; SEG<="";WHEN OTHERS=>OUTBCD<="0000"; SEG<="00000000";END CASE;END IF;END PROCESS;END ART;②BCD七段译码驱动器的VHDL源程序LIBRARY IEEE;USE BCD7 ISPORT(BCD:IN STD_LOGIC_VECTOR(3 DOWNTO 0);——输入为4位二进制数,范围从0到9LED:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));——7段译码输出END BCD7;ARCHITECTURE ART OF BCD7 ISBEGINLED<="1111110"WHEN BCD="0000"ELSE ——0的7段译码(以下类推) "0110000"WHEN BCD="0001"ELSE"1101101"WHEN BCD="0010"ELSE"1111001"WHEN BCD="0011"ELSE"0110011"WHEN BCD="0100"ELSE"1011011"WHEN BCD="0101"ELSE"1011111"WHEN BCD="0110"ELSE"1110000"WHEN BCD="1000"ELSE"1111011"WHEN BCD="1001"ELSE"0000000"; ——其他情况的输出END ART;(5)顶层设计的的VHDL源程序LIBRARY IEEE;USE mb ISPORT(SP:IN STD_LOGIC;CLR:IN STD_LOGIC;CLK:IN STD_LOGIC;CO:OUT STD_LOGIC;EN:OUT STD_LOGIC;LED:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);OUTBCD:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);SEG:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END mb;ARCHITECTURE ART OF mb ISCOMPONENT CTRLPORT(SP:IN STD_LOGIC;CLR:IN STD_LOGIC;CLK:IN STD_LOGIC;EN:OUT STD_LOGIC);END COMPONENT;COMPONENT CB10PORT(CLK:IN STD_LOGIC;CO:OUT STD_LOGIC);END COMPONENT;COMPONENT countPORT(CLK:IN STD_LOGIC;CLR:IN STD_LOGIC;EN:IN STD_LOGIC;S_1MS: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);S_10MS: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);S_100MS: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);S_1S: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);S_10S: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);M_1MIN: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);M_10MIN: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);HOUR: OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END COMPONENT ;COMPONENT BCD7PORT(BCD:IN STD_LOGIC_VECTOR(3 DOWNTO 0);LED:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));END COMPONENT ;COMPONENT MULXPORT(CLK:IN STD_LOGIC;CLR:IN STD_LOGIC;EN:IN STD_LOGIC;S_1MS: IN STD_LOGIC_VECTOR(3 DOWNTO 0);S_10MS: IN STD_LOGIC_VECTOR(3 DOWNTO 0);S_100MS: IN STD_LOGIC_VECTOR(3 DOWNTO 0);S_1S: IN STD_LOGIC_VECTOR(3 DOWNTO 0);S_10S: IN STD_LOGIC_VECTOR(3 DOWNTO 0);M_1MIN: IN STD_LOGIC_VECTOR(3 DOWNTO 0);M_10MIN: IN STD_LOGIC_VECTOR(3 DOWNTO 0);HOUR: IN STD_LOGIC_VECTOR(3 DOWNTO 0);OUTBCD:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);SEG:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END COMPONENT ;SIGNAL C,E:STD_LOGIC;SIGNAL MS1_S,MS10_S,MS100_S: STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL S1S_S,S10_S: STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL MIN1_S,MIN10_S: STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL H: STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL BCD_S: STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINU0:CTRL PORT MAP(CLR,CLK,SP,E);U1:CB10 PORT MAP(CLK,C);U2:count PORTMAP(C,CLR,E,MS1_S,MS10_S,MS100_S,S1S_S,S10_S,MIN1_S,MIN10_S,H);U3:MULX PORTMAP(CLR,CLK,E,MS1_S,MS10_S,MS100_S,S1S_S,S10_S,MIN1_S,MIN10_S,H,BCD_S, SEG);U4:BCD7 PORT MAP(BCD_S,LED);CO <= C;EN <= E;OUTBCD <= BCD_S;END ART;设计原理图:。
数字秒表设计EDA课设报告
数字秒表设计EDA课设报告概述本课设要求设计一款加减计时秒表,需要实现的功能如下: - 显示秒表计时的数字; - 点击“开始”按钮开始计时; - 点击“停止”按钮停止计时; - 点击“复位”按钮清零计时; - 点击“加号”和“减号”按钮可以每次增加或减少1秒计时。
为了完成上述功能,我们选择EDA软件进行仿真和布图设计。
设计思路我们首先需要构思秒表的实现流程,考虑到需要实时更新读取的数据,所以我们选择使用FPGA芯片作为逻辑控制基础。
FPGA芯片是可编程逻辑芯片,可以对逻辑电路进行可编程配置,实现各种功能,如:加法器、减法器、触发器等。
整体设计思路我们将秒表的设计思路划分为以下步骤: 1. 使用时钟信号,设置计时寄存器和数码管显示寄存器; 2. 配合开始、停止两个开关控制开始和停止计时; 3. 设置加减计时器,在每次计时加减操作时使用; 4. 清零操作使用复位开关实现。
时钟信号和计时寄存器时钟信号可以使用EDA软件自带的时钟模块实现,设置计时寄存器用于记录加减后的计时结果。
这部分主要有以下几个步骤: - 外部时钟进入FPGA芯片中;- 引出一个指定频率的时钟信号; - 将时钟信号连接到计时寄存器的时钟端; - 计时寄存器向外部输出计时结果。
开始、停止控制实现开始、停止控制实现需要引入开关电路,可以使用EDA软件预设的开关模块。
我们可以将开关模块与数码管显示寄存器和计时寄存器进行连接,参考以下步骤进行实现: - 设计电路,将“开始”和“停止”两个开关用于控制计时器寄存器的启动和停止; - 将时钟信号连接到开关电路中,作为同步信号; - 将开关电路输出的信号连接到计时器寄存器和数码管显示寄存器。
这样,在开始计时时,计时寄存器会开始计时,并输出计时结果到数码管;而停止计时时,计时寄存器和数码管都会停止更新。
加减计时器和清零操作加减计时器和清零操作也可以使用EDA软件中的加减器模块和复位模块来实现。
实现步骤如下: - 设计加减计时器模块,包含加减按钮、加减器、计时寄存器,将加减按钮连接至加减器,加减器连接至计时寄存器; - 设计一个带复位功能的复位模块,将复位按钮连接至计时器寄存器和数码管。
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数字秒表课程设计一、课程目标知识目标: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技术简介,数字秒表原理学习。
沈阳理工EDA数字秒表课程设计报告
目录1设计实验目的 (1)2设计要求和任务 (1)3数字秒表组成及功能 (1)4总体设计思路及原理描述 (2)4.1设计思路 (2)4.2系统框图 (2)5数字秒表顶层设计 (3)6数字秒表内部设计 (4)6.1分频器 (4)6.2十进制计数器 (5)6.3六进制计数器 (6)6.4二十四进制计数器 (7)6.5数据选择和数码管选择模块 (8)6.6数码管驱动模块 (9)7数字秒表仿真波形 (10)8实验总结 (13)9参考文献 (13)1设计实验目的在Quartus II软件平台上,熟练运用VHDL语言,完成数字秒表设计的软件编程、编译、综合、仿真。
2设计要求和任务1.数字秒表主要由:分频器、扫描显示译码器、一百进制计数器、六十进制计数器(或十进制计数器与6进制计数器)、十二进制计数器(或二十四进制计数器)电路组成。
在整个秒表中最关键的是如何获得一个精确的计时脉冲,除此之外,数字秒表需有清零控制端,以及启动控制端、100HZ保持保持,以便数字时钟能随意停止及启动。
2.数字秒表显示由时(12或24进制任选)、分(60进制)、秒(60进制)、百分之一秒(一百进制)组成,利用扫描显示译码电路在八个数码管显示。
3.能够完成清零、启动、保持功能。
4.时、分、秒、百分之一秒显示准确。
3数字秒表组成及功能1、分频率器:用来产生100H Z计时脉冲;2、二十四进制计数器:对时进行计数;3、六进制计数器:分别对秒十位和分十位进行计数;4、十进制计数器:分别对秒个位和分个位进行计数;5、扫描显示译码器:完成对7字段数码管显示的控制;4总体设计思路及原理描述4.1设计思路1.根据电路持点,用层次设计概念。
将此设计任务分成若干模块,规定每一模块的功能和各模块之间的接口,同时加深层次化设计概念;2.软件的元件管理深层含义,以及模块元件之间的连接概念,对于不同目录下的同一设计,如何融合;3.适配划分前后的仿真内容有何不同概念,仿真信号对象有何不同,有更深一步了解。
eda电子秒表课程设计
eda电子秒表课程设计一、课程目标知识目标:1. 让学生掌握EDA电子秒表的基本原理和功能,理解数字电路基础知识;2. 学会使用EDA工具进行电子秒表的电路设计和仿真;3. 掌握电子秒表中计时、计数、复位等模块的工作原理和相互关系。
技能目标:1. 培养学生运用EDA工具进行电子电路设计和仿真的能力;2. 提高学生分析问题和解决问题的能力,能针对电子秒表设计过程中出现的问题进行调试和优化;3. 培养学生的团队合作能力,学会在团队中沟通、协作、共同完成任务。
情感态度价值观目标:1. 激发学生对电子工程的兴趣和热情,培养其探索精神和创新意识;2. 引导学生树立正确的工程观念,认识到电子工程在现代社会中的重要作用;3. 培养学生严谨、认真、负责的学习态度,养成良好的学习习惯。
本课程针对高中年级学生,结合其知识水平和认知特点,注重理论与实践相结合,以项目为导向,让学生在实际操作中掌握电子秒表的设计与制作。
通过课程学习,使学生能够将所学知识应用于实际工程问题,提高其创新能力和实践能力。
同时,注重培养学生的团队合作精神和责任感,为其未来的学习和职业发展奠定基础。
二、教学内容1. 电子秒表基本原理:介绍EDA电子秒表的工作原理,包括计时、计数、显示等模块的功能和相互关系,对应教材第三章第二节。
2. EDA工具使用:讲解如何使用EDA工具进行电子秒表的电路设计和仿真,包括电路图的绘制、元件库的选择、仿真参数的设置等,对应教材第四章。
a. 电路图绘制b. 元件库使用c. 仿真参数设置3. 电子秒表电路设计与仿真:指导学生进行电子秒表的电路设计和仿真,分析并解决设计过程中可能出现的问题,对应教材第五章。
a. 设计计时模块b. 设计计数模块c. 设计显示模块d. 整体电路调试与优化4. 团队合作与项目实施:组织学生分组进行项目实践,培养学生的团队合作能力和沟通协作能力,对应教材第六章。
a. 分组讨论b. 制定项目计划c. 项目实施与汇报教学内容的安排和进度:共安排6个课时,具体分配如下:1-2课时:电子秒表基本原理及EDA工具使用;3-4课时:电子秒表电路设计与仿真;5-6课时:团队合作与项目实施。
eda数字秒表课程设计
eda数字秒表课程设计一、教学目标本课程旨在让学生了解和掌握eda数字秒表的基本原理和设计方法。
通过本课程的学习,学生将能够:1.理解数字秒表的功能和应用;2.掌握eda数字秒表的设计原理和流程;3.学会使用eda工具进行数字秒表的设计和仿真;4.培养动手实践能力和团队协作精神。
二、教学内容本课程的教学内容主要包括以下几个部分:1.eda简介:介绍eda的基本概念、发展历程和常用工具;2.数字秒表设计原理:讲解数字秒表的组成部分、工作原理和设计方法;3.eda数字秒表设计实例:通过具体实例,演示如何使用eda工具进行数字秒表的设计和仿真;4.实践操作:学生分组进行数字秒表的设计和仿真,培养动手实践能力和团队协作精神。
三、教学方法为了提高教学效果,本课程将采用以下几种教学方法:1.讲授法:讲解eda的基本概念、发展历程和常用工具;2.案例分析法:通过分析具体案例,让学生了解数字秒表的设计方法和流程;3.实验法:学生动手进行数字秒表的设计和仿真,培养实践能力;4.讨论法:分组讨论,引导学生主动思考和解决问题。
四、教学资源为了支持本课程的教学,我们将准备以下教学资源:1.教材:选用权威、实用的教材,为学生提供系统、科学的学习资料;2.多媒体资料:制作精美的PPT,生动展示数字秒表的设计原理和流程;3.实验设备:准备充足的设计和仿真实验设备,确保每位学生都能动手实践;4.网络资源:提供在线学习平台和参考资料,方便学生随时查阅和复习。
五、教学评估本课程的评估方式包括以下几个方面:1.平时表现:考察学生在课堂上的参与程度、提问回答等情况,占总评的20%;2.作业:布置适量作业,检查学生对知识点的掌握程度,占总评的30%;3.实验报告:评估学生在实验过程中的操作能力和解决问题的能力,占总评的20%;4.期末考试:全面考察学生的知识掌握和应用能力,占总评的30%。
六、教学安排本课程的教学安排如下:1.课时:共计32课时,每课时45分钟;2.教学时间:安排在每周的二、四、六下午;3.教学地点:实验室和教室;4.教学进度:按照教材的章节顺序进行,确保每个章节都有足够的时间进行讲解和实践。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计目录第一章:系统设计要求 (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,这也是和多功能时钟不一样的地方。
在设计秒表的时候,时钟的选择为100Hz。
变量的选择:因为xx(0.01秒)和hh(小时)表示的范围都是0~99,所以用两个4位二进制码(BCD码)表示;而ss(秒钟)和mm(分钟)表示的范围是0~59,所以用一个3位的二进制码和一个4位的二进制码(BCD)码表示。
显示的时候要注意的问题就是小时的判断,如果小时是00,则显示格式为mm-ss-xx,如果小时不为00,则显示hh-mm-ss。
四、系统设计方案秒表的逻辑结构较简单,它主要由显示译码器、分频器、十进制计数器、六进制计数器和报警器组成。
四个10进制计数器:用来分别对百分之一秒、十分之一秒、秒和分进行计数;两个6进制计数器:用来分别对十秒和十分进行计数;分频器:用来产生100HZ计时脉冲;显示译码器:完成对显示的控制。
根据电路持点,用层次设计概念将此设计任务分成若干模块,规定每一模块的功能和各模块之间的接口。
按适配划分后的管脚定位,同相关功能块硬件电路接口连线。
用VHDL语言描述所有底层模块。
清零信号为异步清零。
当最高位记到6时停止计数显示译码器全部显示零,并发出十声警报声。
按下复位按钮后继续计数。
数字秒表拟由单片的CPLD/FPGA来实现,经分析设计要求,拟定整个系统由10个模块组成,原理图如下:五、主要VHDL源程序1.十进制计数器的VHDL源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity count10 isport (clk,start,clr : in std_logic;cout : out std_logic;daout : out std_logic_vector(3 downto 0));end count10;architecture one of count10 issignal q0 : std_logic_vector(3 downto 0);signal q1 : std_logic;beginprocess(clk,clr)beginif clr='1' then q0<="0000";elsif ( clk'event and clk='1') thenif start='1' thenif q0="1001" then q0<="0000";q1<='1';else q0<=q0+1;q1<='0';end if;end if;end if;end process;daout<= q0;cout<=q1;end one;2.六进制计数器的VHDL源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity count6 isport (clk,start,clr : in std_logic;cout : out std_logic;daout : out std_logic_vector(3 downto 0)); end count6;architecture two of count10 issignal q0 : std_logic_vector(3 downto 0);signal q1 : std_logic;beginprocess(clk,clr)beginif clr='1' then q0<="0000";elsif ( clk'event and clk='1') thenif start='1' thenif q0="0101" then q0<="0000";q1<='1';else q0<=q0+1;q1<='0';end if;end if;end if;end process;daout<= q0;cout<=q1;end two;3.蜂鸣器的VHDL源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity alarm isport(clk,I:in std_logic;q:out std_logic);end alarm;architecture ar of alarm issignal 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.译码器的VHDL源程序library ieee;use ieee.std_logic_1164.all;entity deled isport(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 iswhen"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.控制选择器的VHDL源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity 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) thenif 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;6.分频器的VHDL源程序library ieee;use ieee.std_logic_1164.all;entity div isport(clr,clk: in std_logic;q: buffer std_logic);end div;architecture a of div issignal count:integer range 0 to 99999;beginprocess(clr,clk)beginif (clk'event and clk='1') thenif clr='1' thencount<=0;elsif count=99999 thencount<=0;q<= not q;elsecount<=count+1;end if;end if;end process;end a;7.元原件例化的VHDL源程序library ieee;use ieee.std_logic_1164.all;entity mb_top isport (stop,start,clk:in std_logic;a,b,c,d,e,f,g,speaker:out std_logic;sel:out std_logic_vector(2 downto 0)); end mb_top;architecture a of mb_top iscomponent divport(clr,clk: in std_logic;q: buffer std_logic);end component;component count10port(clr,start,clk:in std_logic;cout:out std_logic;daout:buffer std_logic_vector(3 downto 0)); end component;component count6port(clr,start,clk:in std_logic;cout:out std_logic;daout:buffer std_logic_vector(3 downto 0));end component;component seltimeport(clr,clk:in std_logic;dain1:in std_logic_vector(3 downto 0);dain2:in std_logic_vector(3 downto 0);dain3:in std_logic_vector(3 downto 0);dain4:in std_logic_vector(3 downto 0);dain5:in std_logic_vector(3 downto 0);dain6:in std_logic_vector(3 downto 0);sel:out std_logic_vector(2 downto 0);daout:out std_logic_vector(3 downto 0));end component;component deledport(num:in std_logic_vector(3 downto 0);led:out std_logic_vector(6 downto 0));end component;component alarmport(clk,i:in std_logic;q:out std_logic);end component;signal div_q,b_cout,s_cout,m_cout,sm_cout,f_cout,sf_cout:std_logic;signalb_daout,s_daout,m_daout,sm_daout,f_daout,sf_daout,seltime_daout:std_logic_v ector(3 downto 0);signal ledout:std_logic_vector(6 downto 0);begina<=ledout(0);b<=ledout(1);c<=ledout(2);d<=ledout(3);e<=ledout(4);f<=ledout(5);g<=ledout(6);u1:div port map(stop,clk,div_q);u2:count10 port map(stop,start,div_q,b_cout,b_daout);u3:count10 port map(stop,start,b_cout,s_cout,s_daout);u4:count10 port map(stop,start,s_cout,m_cout,m_daout);u5:count6 port map(stop,start,m_cout,sm_cout,sm_daout);u6:count10 port map(stop,start,sm_cout,f_cout,f_daout);u7:count6 port map(stop,start,f_cout,sf_cout,sf_daout);u8:seltime port map(stop,div_q,b_daout,s_daout,m_daout,sm_daout,f_daout,sf_daout,sel,seltime _daout);u9:deled port map(seltime_daout,ledout);u10:alarm port map(div_q,sf_cout,speaker); end a;六、系统仿真1.十进制2.六进制3.蜂鸣器4.译码器5.控制选择器七、系统扩展思路根据实验的内容可以适当的添加一些有实际作用和可行性的功能,如可以记录并显示多个数据。