数字跑表实验报告(电子科技大学)

合集下载

数字跑表实验报告

数字跑表实验报告

数字跑表实验报告实验目的本次实验的目的是通过使用数字跑表来计时,观察和记录不同跑步速度下所用的时间,并分析结果,以便更好地了解跑步速度与所需时间之间的关系。

实验设备和材料•数字跑表•计时器•记事本和笔实验步骤步骤一:准备实验设备和材料在实验开始之前,我们需要确保所有实验设备和材料都准备好。

首先,确保数字跑表的电池已经装好并且能正常运行。

检查计时器是否正常工作,并确保记事本和笔可用以记录实验结果。

步骤二:设定实验参数在进行实验之前,我们需要设定实验参数。

首先,确定跑步的起点和终点,并测量两点之间的距离。

然后,选择不同的跑步速度,例如慢跑、中速跑和快跑。

最后,确定每个速度下的跑步时间,例如跑步5分钟或10分钟。

步骤三:进行实验在完成设定实验参数之后,我们可以开始实验了。

首先,将数字跑表复位,确保计时器显示为零。

然后,根据设定的跑步速度进行跑步,并同时启动计时器。

在到达终点后,立即停止计时器,并记录所用的时间。

步骤四:分析实验结果完成实验后,我们需要分析实验结果以得出结论。

首先,将记录的时间转换为分钟或秒。

然后,根据跑步速度和所用时间的关系,绘制速度与时间之间的关系图。

通过观察图表,我们可以看到跑步速度与所需时间之间的趋势和规律。

步骤五:总结实验结果最后,根据分析的实验结果,我们可以总结实验的结论。

根据观察到的趋势和规律,我们可以得出跑步速度越快,所需时间越短的结论。

此外,我们还可以根据实验结果提出一些改进的建议,例如如何提高跑步速度或减少所需时间。

实验注意事项•在进行实验时,确保跑道的条件和环境一致,以减少外界因素对实验结果的影响。

•在进行不同速度的跑步时,确保每次跑步的起点和终点位置相同。

•在记录实验结果时,要准确记录所用的时间,并避免人为误差。

结论通过本次实验,我们使用数字跑表进行了跑步计时实验,并观察和记录了不同跑步速度下所用的时间。

通过分析实验结果,我们得出了跑步速度与所需时间之间的关系。

实验结果表明,跑步速度越快,所需时间越短。

数字电路EDA课程设计数字跑表

数字电路EDA课程设计数字跑表

EDA课程设计报告书题目:数字跑表姓名:班级:学号:成绩:一、设计题目及要求设计题目:数字跑表要求:1 具有暂停,启动功能。

2 具有重新开始功能。

3 用六个数码管分别显示百分秒,秒和分钟。

二、设计过程及内容拿到题目后,我在图书馆进行了相关书籍的查阅,首先明确了题目中设计项目要实现的功能,再进一步确定实现其功能的组成部分和使用器件,对于本次设计的总体思路,首先是设计一个控制模块,可以使跑表具有启动、暂停及重新开始的功能;然后,利用一个分频模块即15进制计数器得到100HZ的时钟脉冲,接入到一个100*60*60三个计数器的模块中,完成对时间的计时工作和对选时模块的输出工作,使选时模块得到对应的时间,其次将选时模块与显示模块连接,使数码管显示选中的当前时间,从而完成了这次课程设计的设计工作,进入到实现过程中去。

根据课程设计要求将设计分为5个模块:1、控制模块,使跑表具有启动、暂停及重新开始的功能;2、分频模块,用于得到频率为100HZ的时钟脉冲;3、计时模块,进行时间的计时,同时将当前时间输出给选时模块;4、选时模块,从计时器得到当前时间输出给显示模块;5、显示模块,进行时间的显示。

总图如下:与门可控制时钟信号的输出与否,当跑表为START状态时CLK端为高电平,QA为1,时钟信号输出,当跑表为STOP状态时CLK端为低电平,QA为0,时钟信号不输出,从而实现开始和暂停的功能。

REST是清零按钮,REST接到控制模块和总计时器模块的清零端,当REST为高电平时,控制模块和总计数器模块清零,跑表重新开始工作。

第二个模块:分频器模块将74161接成15进制计数器,将1465HZ的时钟频率转换成近似于100HZ的时钟信号即所需的输入时钟信号,从而实现分频功能。

将得到的时钟信号输入到总计数器模块中去。

计时模块本模块由两个60进制计数器和一个100进制计数器构成,从而实现百分秒向秒、秒向分的计数功能需求。

60进制计数器及100进制计数器均采用两个74LS160,采用整体置数方式接成。

【精品完整版】电子科技大学现代电子综合实验报告数字秒表设计

【精品完整版】电子科技大学现代电子综合实验报告数字秒表设计

【精品完整版】电⼦科技⼤学现代电⼦综合实验报告数字秒表设计现代电⼦综合实验报告项⽬名称数字秒表设计学⽣姓名学号指导⽼师⽬录【摘要】 (1)关键词 (1)引⾔ (1)第1章背景知识介绍 (2)1.1 FPGA (2)1.2 EDA (2)1.3 VHDL语⾔ (2)1.4 ModelSim软件 (3)1.5 ISE软件 (3)1.6 时间简介 (3)第2章系统设计 (4)2.1设计要求 (4)2.2 设计分析 (4)2.2.1 输⼊输出分析 (4)2.2.2 系统设计原理 (4)2.2.3 系统内部模块分析 (5)第3章模块电路的实现与仿真 (6)3.1 按键消抖 (6)3.2 分频器 (7)3.3 控制器 (8)3.4 计数器 (10)3.5 锁存器 (11)3.6 显⽰模块 (12)第4章实验设计 (14)4.1 顶层设计 (14)4.2 管脚设置 (15)第5章实验结论 (15)第6章结果分析 (15)参考⽂献: (16)附录: (16)1.分频模块源程序 (16)2.消抖模块源程序 (17)3.控制模块源程序 (18)4.计数器模块源程序 (20)(1)计数器顶层⽂件程序 (20)(2)10进制仿真程序源程序 (22)(3)6进制仿真程序源程序 (23)5.锁存器模块源程序 (24)6.显⽰模块源程序 (25)(1)显⽰模块顶层⽂件源程序 (25)(2)扫描模块源程序 (27)(3)数据选择模块源程序 (27)(4)译码器模块源程序 (28)7.顶层⽂件源程序 (29)8.管脚分配源程序 (32)【摘要】利⽤VHDL硬件设计语⾔基于FPGA实验板设计⼀个数字表秒。

该数字秒表及时范围是00’00”00 ~ 59’59”99,并利⽤两个按钮开关Start/Stop 和Split/Reset来控制秒表的启动、暂停、继续、停⽌、复位。

根据该要求,将该实验设计分为6个模块,分别为:分频模块、按键消抖模块、计数器模块和按键控制模块、锁存模块和显⽰模块。

跑表-《现代电子技术综合实验》实验报告

跑表-《现代电子技术综合实验》实验报告

电子科技大学《现代电子技术综合实验》实验报告实验题目基于FPGA的数字跑表设计姓名xxx学号xx学院通信与信息工程学院专业通信工程指导老师陈学英指标1、跑表精度为0.01秒2、跑表计时范围为:1小时3、设置开始计时/停止计时、复位两个按钮4、显示工作方式:用六位BCD 七段数码管显示读数。

显示格式:扩展功能:按键消抖选手分时显示要求(1) 设计出符合设计要求的解决方案(2) 设计出单元电路(3) 利用EDA 软件对各单元电路及整体电路进 行仿真(4) 在开发板上实现设计(5) 撰写设计报告分 秒 0.01秒设计方框图单元电路划分计数器分频器使能控制器(开关,复位等以设置到计数器中,没有单独设计模块,特此说明下)扫描显示控制器各单元电路设计计数器程序中本应该采用写一个六进制和十进制的计数器,然后采用画图的方法实现总计数器的设计(即采用两个六进制计数器和四个十进制计数器),本实验中采用了直接对总的计数器进行总体描述来实现(因为编写相对简单,不易处错误)。

用了一个特别长的一大串if内嵌套if进行处理。

同时,里面直接写了开始和复位的功能,相当于把使能模块并入其中。

削抖原理在按键按下一次时会有如下的毛刺信号,这个毛刺信号持续时间虽然只有1-3ms,但是这对于硬件来说,还是很长的,最关键的是,会产生很多个下降沿和电平触发。

所以必须对其进行处理,否则在按键按下一次后,run/stop 会反转多次。

消抖方法分为硬件消抖和软件延时消抖。

在FPGA 中可以定义三个D 触发器,进行硬件3ms 消抖(时间可以根据实际情况而定)。

代码如下:module myroad(i nput clk100,//100hz时钟input clk1000,//1000hz时钟input reset,//复位键input key,//开始停止按键output reg [3:0] num0,//跑表的最低位output reg [3:0] num1,//跑表的第2位output reg [3:0] num2,//跑表的最3位output reg [3:0] num3,//跑表的最4位output reg [3:0] num4,//跑表的最5位output reg [3:0] num5//跑表的最6位);reg keyout,run;//key的衍生内部信号reg clr,dout1,dout2,dout3,do1,do2,do3;//reset的内部衍生信号,以及6个消抖的内部变量initial beginnum0<=0;num1<=0;num2<=0;num3<=0;num4<=0;num5<=0;run<=1;clr<=1;dout1<=1;dout2<=1;dout3<=1;do1<=1;do2<= 1;do3<=1;keyout<=1;End//赋初值,居然是被允许的,还是ISE比quarters要宽松一些。

电子实验数字跑表

电子实验数字跑表

电子科技大学基于FPGA的数字系统设计——数字跑表的设计学生姓名:学号:指导教师:摘要本文利用XILINX-ISE开发软件和XILINX EDA教学实验开发板实现数字跑表的开始、暂停以及复位等功能。

ISE工程利用VHDL语言编写,单模块包含时钟分频进程、始能及清零进程、时钟数据产生进程、位码产生进程和显示进程;分模块设计包含时钟分频模块、控制模块、计数器模块、显示模块。

计时区间00’00’’00到59’59’’99。

课余设计的单模块源程序:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;---- Uncomment the following library declaration if instantiating---- any Xilinx primitives in this code.--library UNISIM;--use UNISIM.VComponents.all;entity paobiao isPort ( clkin : in STD_LOGIC;enable : in STD_LOGIC;clear : in STD_LOGIC;seg : out STD_LOGIC_VECTOR (7 downto 0);wei : out STD_LOGIC_VECTOR (2 downto 0);enout : out STD_LOGIC);end paobiao;architecture Behavioral of paobiao issignal cnt100: integer range 1 to 240000;signal cnt1k: integer range 1 to 24000;signal clk100: std_logic:='0';signal clk1k : std_logic:='0';signal en: std_logic:='0';signal d1: integer range 0 to 5:=0;signal d2: integer range 0 to 9:=0;signal d3: integer range 0 to 5:=0;signal d4: integer range 0 to 9:=0;signal d5: integer range 0 to 9:=0;signal d6: integer range 0 to 9:=0;signal num: integer range 1 to 6:=1;beginenout<='0';process(clkin)beginif clkin'event and clkin='1' thenif cnt100=240000 thencnt100<=1;clk100<=not clk100;elsecnt100<=cnt100+1;end if;if cnt1k=24000 thencnt1k<=1;clk1k<=not clk1k;elsecnt1k<=cnt1k+1;end if;end if;end process;process(enable,clear)beginif clear='0' thenen<='0';elseif enable'event and enable='1' thenen<=not en;end if;end if;end process;process(clear,d1,d2,d3,d4,d5,d6)beginif clear='0' thend1<=0;d2<=0;d3<=0;d4<=0;d5<=0;d6<=0;-- en<=0;elseif en='1' and clk100'event and clk100='1' then if d6=9 thend6<=0;if d5=9 thend5<=0;if d4=9 thend4<=0;if d3=5 thend3<=0;if d2=9 thend2<=0;if d1=5 thend1<=0;elsed1<=d1+1;end if;elsed2<=d2+1;end if;elsed3<=d3+1;end if;elsed4<=d4+1;end if;elsed5<=d5+1;end if;elsed6<=d6+1;end if;end if;end if;end process;process(num)beginif clk1k'event and clk1k='1' thenif num=6 thennum<=1;elsenum<=num+1;end if;end if;end process;process(num)variable data: integer range 0 to 9;begincase num iswhen 1 => wei<="111";data:=d1;when 2 => wei<="110";data:=d2;when 3 => wei<="100";data:=d3;when 4 => wei<="011";data:=d4;when 5 => wei<="001";data:=d5;when 6 => wei<="000";data:=d6;end case;case data iswhen 0 => seg<="00000011";when 1 => seg<="10011111";when 2 => seg<="00100101";when 3 => seg<="00001101";when 4 => seg<="10011001";when 5 => seg<="01001001";when 6 => seg<="01000001";when 7 => seg<="00011111";when 8 => seg<="00000001";when 9 => seg<="00001001";end case;end process;end Behavioral;管脚分配NET "clkin" LOC = T8;NET "enout" LOC = D7;NET "seg<0>" LOC = C11;NET "seg<1>" LOC = A11;NET "seg<2>" LOC = B12;NET "seg<3>" LOC = A12;NET "seg<4>" LOC = C12;NET "seg<5>" LOC = C13;NET "seg<6>" LOC = A13;NET "seg<7>" LOC = B14;NET "wei<0>" LOC = F8;NET "wei<1>" LOC = D8;NET "wei<2>" LOC = E7;NET "clear" LOC = E4;NET "enable" LOC = G6;课时设计一、系统总体设计指标:1、跑表精度为0.01秒2、跑表计时范围为:1小时3、设置开始计时/停止计时、复位两个按钮4、显示工作方式:用六位BCD七段数码管显示读数。

基于FPGA的数字跑表设计报告

基于FPGA的数字跑表设计报告

基于FPGA的数字跑表设计报告姓名:学号:指导老师:***摘要:本文详细介绍了数字秒表的设计指标,设计思路,设计方案,系统电路设计,系统单元模块设计,系统硬件实现与测试的结果。

一 引言 科技高度发展的今天,集成电路和计算机应用得到了高速发展。

尤其是计算机应用的发展。

它在人们日常生活已逐渐崭露头角。

大多数电子产品多是由计算机电路组成,如:手机、mp3等。

而且将来的不久他们的身影将会更频繁的出现在我们身边。

各种家用电器多会实现微电脑技术。

电脑各部分在工作时多是一时间为基准的。

本文就是基于计算机电路的时钟脉冲信号、状态控制等原理设计出的数字秒表。

秒表在很多领域充当一个重要的角色。

在各种比赛中对秒表的精确度要求很高,尤其是一些科学实验。

他们对时间精确度达到了几纳秒级别。

二 项目任务与设计思路 本项目的任务是掌握使用VHDL 语言的设计思想;熟悉ise 软件的使用;了解XILINX 学生EDA 实验板。

了解 EDA 技术,对计算机系统中时钟控制系统进一步了解,掌握状态机工作原理,同时了解计算机时钟脉冲是怎么产生和工作的。

在掌握所学的计算机组成与结构课程理论知识时。

通过对数字秒表的设计,进行理论与实际的结合,提高与计算机有关设计能力,提高分析、解决 计算机技术实际问题的能力。

通过课程设计深入理解计算机结构与控制实现的技术,达到课程设计的目标。

项目任务与设计思路本项目的指标:1、跑表精度为0.01秒2、跑表计时范围为:1小时3、设置开始计时/停止计时、复位两个按钮4、显示工作方式:用六位BCD 七段数码管显示读数。

显示格式:三 基于VHDL 方法设计方案 VHDL 的设计流程主要包括以下几个步骤:1.文本编辑:用任何文本编辑器都可以进行,也可以用专用的HDL 编辑环境。

通常VHDL 文件保存为.vhd文件2.功能仿真:将文件调入HDL 仿真软件进行功能仿真,检查逻辑功能是否正确。

3.逻辑综合:将源文件调入逻辑综合软件进行综合,即把语言综合成最简的布尔表达式。

FPGA综合实验项目介绍(电子科技大学).

FPGA综合实验项目介绍(电子科技大学).
元器件清单
加速度传感电路硬件设计
调试波形
计步器功能FPGA程序设计
系统模块组成
系统联合调试
数字频率计综合设计
49
功能指标
1、被测输入信号:方波 2、测试频率范围为:10Hz~100MHz 3、量程分为三档:第一档:闸门时间为1S时,最大读数为999.999KHz 第二档:闸门时间为0.1S时,最大读数为9999.99KHz 第三档:闸门时间为0.01S时,最大读数为99999.9KHz 4、显示工作方式:a、用六位BCD七段数码管显示读数。 b、采用记忆显示方法 c、实现对高位无意义零的消隐。
TC
fx
fx 1/T x
55
周期测量法误差
T N T x c T N T x c
其中
N 1 1 N N Tf x
称为±1误差
Tc f c TC fc
称为标准频率误差
56
设计方框图
被 测 信 号 输 入
放 大 整 形
闸门
GATE
计数器
CLEAR
锁存器
T2=4
S0
T2<4
真值表

内部模块
分频电路设计 计数器设计 状态转换器设计
时间显示器设计
智力抢答器综合设计
22
基本功能
编号为1-6的选手在规定的时间内(10秒)按 键抢答; 抢中编号锁定显示,其他无效; 主持按键控制清零和开始;
选手抢中后在规定的时间内(30秒)答提;
N fx T

放大整形

闸门


计数器
② ③
时基信号 发生器

门控 电路

数字跑表的设计与仿真

数字跑表的设计与仿真

EAST CHINA INSTITUTE OF TECHNOLOGY EDA设计与应用课程设计:数字跑表的设计与仿真学院:机械与电子工程学院专业:电子科学与技术班级:1221402学号:201220140223姓名:杨卡2014年11月一、实验目的:1)进一步学习更复杂的EDA项目设计,更熟练地掌握VHDL语言设计。

2)学习动态数码管的VHDL编程。

3)更加熟练计时显示、进位和校时的编程方法。

二、实验要求:1)设计一个具有、‘分'、‘秒'、‘ 1/100 秒'的十进制数字显示的数字跑表。

2)要有外部开关,控制计数器的直接清零、启动和暂停/ 连续计时功能。

三、实验内容:1)数字跑表功能:计时精度10ms,计时范围为59分59.99秒。

设置两种模式,模式一:对单个人计数,能实现暂停、显示及清零功能,并在数码管上实时显示;模式2:实现对多个人的同时计时,在数码管上实时显示,并能在液晶显示屏上回显出 6 个时间,可控制显示。

2)数字跑表分模块设计:数字跑表设置如下的子模块。

分频模块;模式 1 控制模块;模式 2 控制模块;计时模块;数码管译码模块;液晶译码模块;液晶显示模块。

百分秒、秒和分等信号即采用BCD译码计数方式,根据上述设计要求,用Verilog 对数字跑表的描述如下。

仍然采用引脚属性定义语句进行引脚的锁定。

四、设计程序(此处只写出与课本中不同的部分)为了便于显示,百分秒、秒和分钟信号皆采用BCD码计数方式,并直接输出到6 个数码管显示出来。

根据上述设计要求,用Verilog HDL 语言对数字跑表描述如下。

/* 信号定义:CLK: CLR: PAUSE: MSH,MSL:时钟信号;异步复位信号;暂停信号;百分秒的高位和低位;SH,SL :秒的高位和低位;MH,ML:分钟的高位和低位。

*/module paobiao(CLK,CLR,PAUSE,MSH,MSL,SH,SL,MH,ML); input CLK,CLR,PAUSE; output[3:0] MSH,MSL,SH,SL,MH,ML; reg[3:0] MSH,MSL,SH,SL,MH,ML;reg cn1,cn2; //cn1 为百分秒向秒进位,cn2 为秒向分进位//**************** 百分秒计数进程,每计满100,cn1 产生一个进位*******always @(posedge CLK or posedge CLR)begin if(CLR) begin {MSH,MSL}<=8'h00; cn1<=0;end // 异步复位else if(!PAUSE) //PAUSE 为0 时正常计数,为1 时暂停计数begin if (MSL==9) begin MSL<=0;if (MSH==9) begin MSH<=0;cn1<=1;endelse MSH<=MSH+1;endelse begin MSL<=MSL+1;cn1<=0;endendend秒计数进程,每计满60,cn2 产生一个进位********* always @(posedge cn1 or posedge CLR)begin if(CLR) begin {SH,SL}<=8'h00;cn2<=0; end // 异步复位else if(SL==9)begin SL<=0;if (SH==5) begin SH<=0;cn2<=1; end else SH<=SH+1;endelse begin SL<=SL+1;cn2<=0;end end //****************** 分钟计数进程,每计满60,系统自动清零********* always @(posedge cn2 or posedge CLR) begin if(CLR) begin {MH,ML}<=8'h00;end // 异步复位else if (ML==9) begin ML<=0;if(MH==5) MH<=0;else MH<=MH+1;endelse ML<=ML+1;endendmodule五、心得体会:此次课程设计,从程序设计到仿真,我经历了一个困难重重,愈挫愈勇的过程。

数字跑表实验报告

数字跑表实验报告

数字跑表实验报告数字跑表实验报告一、引言数字跑表是一种用于测量时间的仪器,广泛应用于各个领域,包括运动训练、科学研究等。

本实验旨在通过使用数字跑表,探究其测量精度和使用方法,并对其优缺点进行评估。

二、实验步骤1. 实验准备在实验开始前,我们首先确认数字跑表的电池是否充足,并检查其屏幕是否清晰可见。

同时,我们还准备了一个标准的计时器作为对照组,以便比较两者的测量结果。

2. 测量准确性为了评估数字跑表的测量准确性,我们进行了多组实验。

首先,我们使用数字跑表测量了一个已知时间长度的事件,例如一个钟摆的周期。

然后,我们将数字跑表的测量结果与标准计时器的结果进行比较,计算它们之间的误差。

3. 使用方法在实验中,我们还研究了数字跑表的使用方法。

我们通过阅读说明书和观察其他人的实验过程,学习如何正确地启动和停止数字跑表,并掌握其它功能,如计次和计时。

4. 优缺点评估在实验结束后,我们对数字跑表的优缺点进行了评估。

其中,数字跑表的优点包括测量精度高、操作简便、功能多样等。

然而,它也存在一些缺点,如对电池的依赖性、容易受到外界干扰等。

三、实验结果通过多组实验,我们得出了以下结论:1. 数字跑表的测量准确性较高,与标准计时器的误差在可接受范围内。

2. 使用数字跑表的方法相对简单,只需按下启动和停止按钮即可完成计时操作。

计次和计时功能也易于掌握。

3. 数字跑表的优点包括测量精度高、操作简便、功能多样等。

这使得它在运动训练、科学研究等领域得到广泛应用。

4. 然而,数字跑表也存在一些缺点。

首先,它对电池的依赖性较高,电池电量不足时会影响正常使用。

其次,数字跑表容易受到外界干扰,如电磁波等,可能导致测量结果的误差。

四、讨论与改进在实验过程中,我们也发现了一些问题,并提出了改进的建议:1. 电池寿命:为了减少对电池的依赖性,我们建议增加数字跑表的电池容量,或者提供可充电电池选项。

2. 抗干扰能力:为了提高数字跑表的抗干扰能力,我们建议在设计中加入屏蔽措施,以减少外界干扰对测量结果的影响。

数字跑表(电子科大)

数字跑表(电子科大)

数字跑表设计报告学院:电子工程学院学号:2011029180015姓名:洪娜建班级:电磁场5班一系统总体设计设计要求设计一个数字秒表,有6个输出显示,分别为百分之一秒、十分之一秒、秒、十秒、分、十分,系统主要由显示译码器、分频器、十进制计数器和六进制计数器组成。

整个秒表还需有一个启动/停止信号和一个复位信号,以便秒表能随意停止及启动。

要求:1、跑表精度为0.01秒2、跑表计时范围为:1小时3、设置开始计时/停止计时、复位两个按钮4、显示工作方式:用六位BCD七段数码管显示读数5、扩展功能:锁存控制功能。

系统工作原理数字跑表通过系统将48MHz时钟进行分频得到100Hz的秒表时钟,之后通过对时钟信号进行计数得到具体的跑表显示数值,跑表数值作为显示单元电路的输入,显示单元控制数码管动态扫描显示计数因此,系统主要划分为:分频器,计数器,显示控制,开始\停在使能控制,清零控制,锁存控制。

原理图如下:二单元电路设计1.分频器设计思路:输入信号48MHz,将其48000分频可得1KHz信号,再将1KHz信号10分频可得100Hz信号。

1KHz用于显示LED扫描,100Hz用于计数器时钟。

源程序如下:entity fenpin isPort ( clk : in STD_LOGIC;clk_1k : out STD_LOGIC;clk_100 : out STD_LOGIC);end fenpin;architecture Behavioral of fenpin issignal cnt1:INTEGER RANGE 1 TO 24000;signal cnt2:INTEGER RANGE 1 TO 5;signal clk_1k_temp:STD_LOGIC:='0';signal clk_100_temp:STD_LOGIC:='0';beginprocess(clk)beginif clk'event and clk='1' thenif cnt1=24000 then cnt1<=1;clk_1k_temp<=not clk_1k_temp;else cnt1<=cnt1+1;end if;end if;end process;clk_1k<=clk_1k_temp;process(clk_1k_temp)beginif clk_1k_temp'event and clk_1k_temp='1' then if cnt2=5 then cnt2<=1;clk_100_temp<=not clk_100_temp;else cnt2<=cnt2+1;end if;end if;end process;clk_100<=clk_100_temp;end Behavioral;2.计数器实验需要用到2个六进制计数器和4个十进制计数器,本人使用的级联方式为同步级联。

数字跑表实验报告

数字跑表实验报告

成绩指导教师日期2011-4-8 XXX 大学实验报告实验课程名称:电子系统EDA院系名称:信息学院专业名称:通信工程实验项目名称:实验二数字跑表班级:XXX 学号:XXXX报告人:XXXXX实验二数字跑表一、实验目的:1、学会利用quartusⅡ的宏单元和所学的数字电路的知识,搭建复杂一点的数字电路或系统;2、学会使用EDA实验箱,下载验证所设计电路。

二、实验原理:跑表的原理图及简要说明(分层次进行说明,如顶层设计和底层设计分开说明)图一:数字跑表输入输出示意图输入有三个信号,CLR=1时清零,CLR=0时跑表从零开始计数;时钟信号CLK,周期为0.01秒;当PAUSE=0时跑表暂停计数,PAUSE=1时跑表从当前值继续计数。

输出分别为分钟、秒钟、百分秒的BCD码,各用数码管显示。

三、原理图图二:总体原理图A(左半部分)图三:总体原理图B(右半部分)原理图主要由3个计数器各自连接其译码器构成。

其中两个模60的分别输出分钟、秒钟,还有一个模100的输出百分秒。

全原理图采用串行接法,外加一个总体清零端,另一个时钟信号使能端作为PAUSE信号输入。

这个原理图缺陷上还没有接分频器。

模60计数器采用串行进位,部分异步清零接法。

图五:模100计数器模100计数器采用串行进位,不需要清零接法。

四、设计的仿真结果以下均采用功能仿真。

图六:数字跑表波形仿真A(分级图)图七:数字跑表波形仿真B(秒级图)图八:数字跑表波形仿真C(百分秒级图)五、设计心得1、掌握了计数器的设计方法后,只要将计数级联或者是并联就可以实现跑表的计数。

2、如果要显示计数数字,必须接上显示译码器和数码管。

3、一个与门可以实现暂停功能。

4、特别注意所选用的计数器芯片是同步清零还是异步清零,是同步置数还是异步置数,各自有对应的方法。

5、用参数化宏单元实现更简单。

6、分层设计使原理图更加简洁明了。

六、思考题1、什么是同步清零和异步清零?答:同步清零需要时钟沿的配合,当敏感信号为有效信号时还需要等待时钟沿的到来才能清零计数。

数电课程设计报告-可存储时间的数字跑表

数电课程设计报告-可存储时间的数字跑表

西南交通大学《数字电子技术A》课程设计报告2018年6月一、课程设计任务A. 该跑表有3 个按键,分别是开始/停止、清零、存储。

按键功能如下:按一下清零键跑表即被清零。

按一下开始键跑表开始计时,再按一下开始键,跑表停止计时;在跑表处于计时状态时,按一下存储键,即记忆当时的时间,最多可记忆25 个时间。

B. 在跑表处于停止计时状态时;每按一下存储键,按跑表停止计时时记忆的次数循环显示每一个记忆的时间。

C. 用数码管显示时间(时、分、秒、毫秒),最大显示时间为1 小时59 分59 秒999 毫秒。

D. 要求分层次分模块设计。

二、小组成员分工三、时间安排5月9日——选题5月10日—5月13日总体设计方案5月14日—5月20日分频模块设计、按键模块设计5月21日—5月27日计时模块设计、按键消抖模块设计5月28日—6月3日存储模块设计6月4日—6月11日各电路模块连接、数码管显示功能设计6月12日—6月13日硬件测试6月14日—6月16日报告撰写四、方案与电路设计1. 总体设计方案将整个跑表分成四大模块,对各个模块进行编程,测试无误后将生成的符号文件通过绘制原理图的方式组合起来。

2.系统组成框图3. 主要电路设计 ①计数模块 Ⅰ.单元电路Ⅱ.设计原理与思路编程实现四个计数器,分别对毫秒、秒、分、时进行计数,计数器间采用异步时钟。

设置一位异步清零输入,当CLR 出现一个脉冲信号,不论下个时钟脉冲的上升沿是否到来,计数器的值都将清零;设置一位输入标记开始状态,当START 出现一个脉冲信号,内部BEG 状态标志取反,BEG 等于1时开始计数,等于0时停止计数;设置一位输出标记计数状态,正在计数时READ 等于0,停止计数时READ 等于1,用作下级存储模块的循环显示。

②存储模块 Ⅰ.单元电路数字跑表按键模块清零开始/停止计时存储模块计时状态存储暂停状态读取显示模块位选单个数码管显示Ⅱ.设计原理与思路设置一个大小位25位数位4的寄存器变量用于存储计数值。

实验五数字跑表的设计与实现

实验五数字跑表的设计与实现

实验五数字跑表的设计与实现一.实验目的1.设计数字跑表,实现对单人的精确计时。

2. 设计数字跑表,实现对多人的精确计时。

二.实验内容1.数字跑表功能:计时精度为10ms,计时范围为59分59.99秒。

设置一下两种模式。

模式1:对单人计时,能实现暂停、显示及清零功能,并在数码管上实时显示;模式2:实现多人的同时计时,在数码管上实时显示,并能在数码管上回显出6个时间,可控制显示。

模式1中设置了两个按键,即启动/暂停键和清零键,由其产生计数允许/保持和清零信号。

启动/暂停键是多用途按键,在“按下、松开、再按下、松开”的过程中,所起的作用分别是“计数、暂停、置数(置到59分59秒)、继续计数”。

状态转换图如下图1示。

图1模式2也设置了两个按键,分别为清零键RST和取时键K2,产生清零信号和实时中断取时信号。

取时信号能够对当前时间进行显示中断却不会中断后台的继续计时,取时键在“按下、松开”的一个过程中实现对时间的实时显示。

也就是说K2每按一次实现对一个人的计时,计时的结果通过调用RAM来依次保存,当RAM的WREN信号为高电平时,写入数据,当WREN信号为低电平时,读出数据。

状态转换图如图2所示。

图中s0和s3记录实时时间,而s1和s2保持。

状态转换表如表1所示。

图2表1三.实验步骤1. 建立工程2. 建立顶层文件3. 建立引脚约束文件4. 硬件下载四.实验结论(一)模式1:对单人计数,能实现暂停、显示及清零功能。

1. 顶层文件2. 主要控制模块的Verilog代码3. 引脚约束文件4. 硬件下载结果(二)模式2:实现对多人的同时计时,在数码管上实时显示,并能回显至少4人的时间,可控制显示。

1. 顶层文件2. 主要控制模块的Verilog代码3. 引脚约束文件4. 硬件下载结果。

电子科技大学数电实验报告

电子科技大学数电实验报告

assign disp_data_right2=Q_2;
assign disp_data_right3=Q_3;
assign disp_data_right4=Q_4;
assign disp_data_right5=Q_5;
dynamic_led6 u6 (
.disp_data_right0(disp_data_right0),
.disp_data_right1(disp_data_right1),
.
disp_data_right2(disp_data_right2),
.
disp_data_right3(disp_data_right3),
.disp_data_right4(right5(disp_data_right5),
);
reg[24:0] clk_div_cnt=0; reg clk_div=0; always @ (posedge clk) begin
if (clk_div_cnt==25000) begin
clk_div=~clk_div; clk_div_cnt=0; end else
clk_div_cnt=clk_div_cnt+1; end
4'h6: seg=8'h7d; 4'h7: seg=8'h07; 4'h8: seg=8'h7f; 4'h9: seg=8'h6f; 4'ha: seg=8'h77; 4'hb: seg=8'h7c; 4'hc: seg=8'h39; 4'hd: seg=8'h5e; 4'he: seg=8'h79; 4'hf: seg=8'h71; default: seg=0; endcase end

数字跑表实验

数字跑表实验

数字跑表实验一、实验目的1、 学会利用MAX+PLUS II 的宏单元和所学的数字电路的知识,搭建复杂一点的数字电路或系统;2、 学会使用EDA 实验箱,下载验证所设计电路。

二、实验原理数字跑表是体育竞赛常用计时工具,一般精确到1/100秒。

图2-1为数字跑表的输入输出示意图。

输入有三个信号,第1个信号为CLK ,是基准时钟,周期为1/100秒;第2个信号是清零信号,CLR=1时清零,CLR=0时跑表从0开始计数;第3个信号是暂停信号,当PAUSE=0时跑表暂停计数。

输出分别为分钟,秒钟和百分秒的BCD 码,各用二位数码管显示。

图2-1 数字跑表输入输出示意图三、数字跑表原理框图与原理图图2-2 数字跑表原理框图CLKPAUSE CLRCLKPAUSE CLR秒 百分秒 分图2-3 数字跑表原理图数字跑表有暂停(PAUSE)和清零(CLR)功能,PAUSE功能通过计数器的时钟使能实现,CLR功能通过计数器的清零端实现。

计数模块的设计采用6块10进制计数器来实现,百分秒使用了模100的计数器,秒与分使用了模60的计数器。

显示部分通过译码器译码,分别在6个数码管上显示结果。

时钟输入频率为100Hz,通过分频器把实验板提供的50MHz时钟信号进行分频,即可得到100Hz的时钟信号。

四、仿真结果图2-4(a)百分秒仿真结果图2-4(b)秒仿真结果图2-4(c)分仿真结果上图中,输出端o1、o2显示百分秒仿真结果,即模100计数结果;输出端o3、o4显分秒仿真结果,即模60计数结果;输出端o5、o6显示分仿真结果,即模60计数结果。

五、设计心得本次实验做一个数字跑表,电路的原理较简单,但在实际设计过程中却遇到了不少问题。

首先,本次实验所设计的电路用到的芯片比较多,设计时的粗心大意,把输入端的有效电平弄错,带来了不必要困扰;其次是计数器进位的处理,用了6块10进制计数芯片,进位端较多,还需要与其他逻辑门的配合,很容易混淆接错,因而花了较长时间在错误检查上。

EDA数字跑表课程设计心得【模版】

EDA数字跑表课程设计心得【模版】

EDA课程设计报告数字跑表学院:机械与电子工程学院专业:电子科学与技术学号:1020630208姓名:熊……一:设计目的:(1)学会利用QuartusⅡ发热宏单元和所学的数字电路知识,搭建复杂一点的数字电路或系统。

(2)学会使用EDA的程序语言FPGA/CPLD设计数字跑表,设计主要包括功能分析、方案设计和电路测试几个步骤。

二:设计内容:1.设计一个数字跑表,具有如下功能。

(1)复位和暂停,秒表计时等功能。

(2)跑表计时长度可达1小时,计时精度为0.01 秒。

控制端取值功能复位(clr) 1 异步清零0 计数计数/暂停键(pause) 1 暂停0 计数2.方案论证:数字跑表设三个输入端,分别为时钟输入(CLK),复位(CLR),启动、暂停按键(PUSE)。

复位信号高电平有效,可对跑表异步清零;当启动、暂停键为低电平时跑表开始计时,为高电平时暂停,变低后在原来的数值基础上继续计数。

数字跑表的结构示意图如下:图2-1跑表示意图3.模块电路设计:数字跑表实际上为计数器,数据选择器,七段数码管译码器等模块构成,核心模块应为计数器,其次为暂停控制和清零控制。

计时电路计时电路又分为百分秒计时电路、秒计时电路和分计时电路三个模块。

百分秒计时电路是一个100进制的计数器,以100Hz输入信号作为计数时钟,其进位信号作为秒计数电路的计数时钟,当秒计数器计满时,产生的进位信号又作为分计数电路的计数时钟。

电路的暂停和复位信号用于控制计时的开始、停止和清零。

计数器模块:数字跑表的计时器功能是,当PAUSE 为低电平时开始计数,百分秒低位自加一,加到九时归零,百分秒高位自加一,加到九时归零,且向秒位发出一个高电平,秒低位自加一,加到九时归零,秒高位自加一,加到五时归零,且向分位发出一个高电平,分低位自加一,加到六时系统清零。

数据选择器:数据选择模块:定义三位二进制数ss 作为选择数码管的变量,ss 自加一,当ss 大于7时归零,当ss 为5、4、3、2、1时分别将msl,msh,sl,sh,ml,mh 的值赋给coder ,当ss 为6、7时赋值为零。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数字跑表设计报告学院:物理电子学院学号:2014040206029姓名:刘明哲班级:电子六班一 系统总体设计设计要求设计一个数字秒表,有6个输出显示,分别为百分之一秒、十分之一秒、秒、十秒、分、十分,系统主要由显示译码器、分频器、十进制计数器和六进制计数器组成。

整个秒表还需有一个启动/停止信号和一个复位信号,以便秒表能随意停止及启动。

要求:(1) 秒表计时范围为:1小时;(2) 秒表精度为0.01秒;(3) 具有开始计时、停止计时控制功能,且开始计时、停止计时为一个复用按键;(4) 在正常计时显示过程中,能够在存储按键作用下存储某一计时时间;存储的时间组数为确定值或1至任意值;(5) 在读取按键作用下存储的时间能够回放显示;回放显示时,秒表计时可停止或在后台正常进行;回放显示可手动或自动依次显示;(6) 具有复位功能;(7) 用六位数码管显示时间读数。

系统工作原理数字跑表通过系统将48MHz时钟进行分频得到100Hz的秒表时钟,之后通过对时钟信号进行计数得到具体的跑表显示数值,跑表数值作为显示单元电路的输入,显示单元控制数码管动态扫描显示计数因此,系统主要划分为:分频器,计数器,显示控制,开始\停在使能控制,清零控制,存储读取功能,按键消抖。

原理图如下:二 单元电路设计1. 分频器设计思路:输入信号48MHz,将其48000分频可得1KHz信号,再将1KHz信号10分频可得100Hz信号。

1KHz用于显示LED扫描,100Hz用于计数器时钟。

源程序如下:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity pp isPORT(CLKIN:IN STD_LOGIC;CLKOUT1K:OUT STD_LOGIC;CLKOUT100:OUT STD_LOGIC);end ENTITY pp;architecture Behavioral of pp isSIGNAL CNTER0:INTEGER RANGE 0 TO 23999 :=0;SIGNAL CNTER1:INTEGER RANGE 0 TO 4 :=0;SIGNAL CLKOUT1K_TMP,CLKOUT100_TMP: STD_LOGIC:='0'; beginPROCESS(CLKIN) ISBEGINIF CLKIN'EVENT AND CLKIN ='1' THENIF CNTER0=23999 THENCNTER0 <=0;CLKOUT1K_TMP <= NOT CLKOUT1K_TMP;ELSECNTER0 <= CNTER0 + 1 ;END IF;END IF;END PROCESS;CLKOUT1K <= CLKOUT1K_TMP;PROCESS(CLKOUT1K_TMP) ISBEGINIF CLKOUT1K_TMP'EVENT AND CLKOUT1K_TMP='1' THEN IF CNTER1 =4 THENCNTER1 <=0;CLKOUT100_TMP <= NOT CLKOUT100_TMP;ELSE CNTER1 <= CNTER1 + 1;END IF;END IF;END PROCESS;CLKOUT100<=CLKOUT100_TMP;end Behavioral;2. 计数器以及清零装置实验需要用到2个六进制计数器和4个十进制计数器,并且将六个计数器级联十进制计数器的源程序:library IEEE;use IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;entity COUNTER isPORT(RST,CLK:IN STD_LOGIC;CARRY_IN:IN STD_LOGIC;CARRY_OUT:OUT STD_LOGIC;COUNT_OUT:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));end COUNTER;architecture Behavioral of COUNTER isSIGNAL COUNT:STD_LOGIC_VECTOR(3 DOWNTO 0):="0000"; beginPROCESS(RST,CLK)BEGINIF RST='1' THENCOUNT<="0000";ELSIF CLK'EVENT AND CLK='1' THENIF CARRY_IN='1' THENIF COUNT< "1001" THENCOUNT <= COUNT + 1;ELSECOUNT<="0000";END IF;ELSE NULL;END IF;END IF;END PROCESS;COUNT_OUT<=COUNT;CARRY_OUT<='1' WHEN CARRY_IN='1' AND COUNT="1001"ELSE'0';end Behavioral;仿真结果:六进制计数器的源程序为:library IEEE;use IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;entity COUNTER2 isPORT(RST,CLK:IN STD_LOGIC;CARRY_IN:IN STD_LOGIC;CARRY_OUT:OUT STD_LOGIC;COUNT_OUT:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));end COUNTER2;architecture Behavioral of COUNTER2 isSIGNAL COUNT:STD_LOGIC_VECTOR(3 DOWNTO 0):="0000"; beginPROCESS(RST,CLK)BEGINIF RST='1' THENCOUNT<="0000";ELSIF CLK'EVENT AND CLK='1' THENIF CARRY_IN='1' THENIF COUNT< "0101" THENCOUNT <= COUNT + 1;ELSECOUNT<="0000";END IF;ELSE NULL;END IF;END IF;END PROCESS;COUNT_OUT<=COUNT;CARRY_OUT<='1' WHEN CARRY_IN='1' AND COUNT="0101"ELSE'0';end Behavioral;仿真结果:级联的源程序如下:entity COUNTER6 isPORT(CSIGNAL:IN STD_LOGIC;CLEAR: IN STD_LOGIC;COUNT_EN:IN STD_LOGIC;RESULT1 :OUT STD_LOGIC_VECTOR(3 DOWNTO 0);RESULT2 :OUT STD_LOGIC_VECTOR(3 DOWNTO 0);RESULT3 :OUT STD_LOGIC_VECTOR(3 DOWNTO 0);RESULT4 :OUT STD_LOGIC_VECTOR(3 DOWNTO 0);RESULT5 :OUT STD_LOGIC_VECTOR(3 DOWNTO 0);RESULT6 :OUT STD_LOGIC_VECTOR(3 DOWNTO 0));end COUNTER6;architecture Behavioral of COUNTER6 isCOMPONENT COUNTER ISPORT(RST,CLK: IN STD_LOGIC;CARRY_IN: IN STD_LOGIC;CARRY_OUT: OUT STD_LOGIC;COUNT_OUT: OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END COMPONENT COUNTER;COMPONENT COUNTER2 ISPORT(RST,CLK: IN STD_LOGIC;CARRY_IN: IN STD_LOGIC;CARRY_OUT: OUT STD_LOGIC;COUNT_OUT: OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END COMPONENT COUNTER2;SIGNALCARRY1,CARRY2,CARRY3,CARRY4,CARRY5,CARRY6:STD_LOGIC; beginU1:COUNTER PORT MAP(RST => CLEAR,CLK => CSIGNAL,CARRY_IN => COUNT_EN,CARRY_OUT => CARRY1,COUNT_OUT => RESULT1);U2:COUNTER PORT MAP(RST => CLEAR,CLK => CSIGNAL,CARRY_IN => CARRY1,CARRY_OUT => CARRY2,COUNT_OUT => RESULT2);U3:COUNTER PORT MAP(RST => CLEAR,CLK => CSIGNAL,CARRY_IN => CARRY2,CARRY_OUT => CARRY3,COUNT_OUT => RESULT3);U4:COUNTER2 PORT MAP(RST => CLEAR,CLK => CSIGNAL,CARRY_IN => CARRY3,CARRY_OUT => CARRY4,COUNT_OUT => RESULT4);U5:COUNTER PORT MAP(RST => CLEAR,CLK => CSIGNAL,CARRY_IN => CARRY4,CARRY_OUT => CARRY5,COUNT_OUT => RESULT5);U6:COUNTER2 PORT MAP(RST => CLEAR,CLK => CSIGNAL,CARRY_IN => CARRY5,CARRY_OUT => CARRY6,COUNT_OUT => RESULT6);end Behavioral;3. 使能控制按一下使能控制键,跑表开始计时,再次按下,跑表暂停计时,且计数器使能端高电平有效。

相关文档
最新文档