数字跑表的设计与仿真
大学电工电子课程设计数字跑表设计
课程设计任务书学生姓名:专业班级:指导教师:邓坚李波工作单位:自动化学院题目: 数字跑表设计初始条件:1.运用所学的模拟电路和数字电路等知识;2.用到的元件:实验板、电源、连接导线、74系列芯片、555芯片或微处理器等。
要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1.设计一个具有、‘分’、‘秒’、‘1/100秒’的十进制数字显示的计时器。
2.要有外部开关,控制计数器的直接清零、启动和暂停/连续计时功能;3.严格按照课程设计说明书要求撰写课程设计说明书。
时间安排:第1天下达课程设计任务书,根据任务书查找资料;第2~4天进行方案论证,软件模拟仿真并确定设计方案;第5天提交电路图,经审查后领取元器件;第6~8天组装电路并调试,检查错误并提出问题;第9~11天结果分析整理,撰写课程设计报告,验收调试结果;第12~14天补充完成课程设计报告和答辩。
指导教师签名: 2011年 6月26日系主任(或责任教师)签名: 2011年 6月26日目录引言 (1)1设计意义及要求 (2)1.1设计意义 (2)1.2设计要求 (2)2方案设计 (3)2.1设计思路 (3)2.2设计方案 (3)2.2.1设计方案一电路图 (3)2.2.2设计方案二电路图 (3)2.3方案比较 (4)图2-2 设计方案二 (5)3部分电路设计 (6)3.1脉冲输出电路 (6)3.2 74LS192计数电路 (7)4调试与检测 (10)4.1调试中故障及解决方案 (10)4.2调试与运行结果 (11)数字跑表的仿真操作步骤及使用说明 (13)结束语 (14)参考文献 (15)附录: (16)引言在当今随着各个领域的高科技快速发展,社会生产力的发展个社会信息化程度的提高,人们各方面综合素质的提高,世界更新换代的节奏与人们生活的步伐也越来越快,在这告诉发展的当今世界,时间对人们来说无疑是极其宝贵的,时间就是金钱。
数字跑表的Multisim模块设计与仿真
基金 项 目 :山东省 高 等学校 科 技计 划项 目 ( N 0 .J 1 3 L A 5 1 )
数字跑表 的 Mu l t i s i m模 块设计 与仿真
吴玉新 ‘ 曹玉萍 1 .山 东女 子 学 院 信 息技 术 学 院 ,山 东 济 南 2 5 0 3 0 0 2 . 齐 鲁 工 业 大 学理 学 院 , 山 东 济 南 2 5 0 5 0 0
信 息 科 技
中 国 科 技 信 息 2 0 1 3 年 第 1 8 期 C H I N A S C I E N C E A N D T E C H N O L O G Y I N F O R M A T I O N S e p . 2 0 1 3
D O I :1 0 . 3 9 6 9 / j . i s s n . 1 0 0 1 — 8 9 7 2 . 2 0 1 3 . 1 8 . 0 6 1
Mo d u l a r De s i g n a n d Si mu l a t i o n o f t h e Di g i t a l S t o p wa t c h B a s e d o n Mu l t i s i m
Wu Yu xi n ’ Ca o Yu pi n g
图 1数字跑表 的系统框 图
3 各 单 元 电路 的设计
3 . 1 百分 秒 信号 产生 模块 振 荡器用来产生 自 ‘ 分 秒 信 号 ,是 数 字 跑 表计 时 的核 心 ,其频 率精 度和 稳定 度决 定 r 计时 的准 确 度 , 通 常选 用 石英 晶体振 荡 器 , 若 计时 精 度要 求不 高 ,可 采用 5 5 5 定 时 器组 成 的 多谐 振 荡 器 。本 文采 用 5 5 5 定 时 器组 成 的 多谐振 荡 器来 产 生百 分秒信 号 。
课程设计数字跑表 (1)解析
《数字逻辑》课程设计实验报告设计题目:数字跑表组员:陈从圳黎文杰刘强黎振锋指导老师:麦山日期:2014/12/281设计意义及要求1.1设计意义在本次数字跑表课程设计中,我们将用到自己所学的数字电子技术方面的知识,通过思考设计出符合要求的电路。
将理论与实践相结合,加深自对所学知识的理解,并提高应用能力。
本设计需要我们选择合适的芯片和元件并正确使用来实现数字跑表的功能。
这就要求我们牢固掌握计数器的功能和各种进制的转换、译码器和数码管的使用、门电路的控制作用以及时序脉冲的产生方法等。
各种电路的组合需要经过精密的计算和思考,整合各个功能电路,使之到道数字跑表的基本要求。
这对我们熟悉各种芯片的功能用途很有帮助,可以开阔我们的眼界,使我们去接触一些在课堂上并不常使用的元件。
在探究问题的最优解决方案时,我们将学会从各个方面考察探究和比较各个方法,并学会发散性的思考问题,不局限与已学的方法和他人的经验,力求创造性的解决问题,找到最优的方案。
在本次设计中,我们不但可以加深对课本知识的理解,并且在实践能够提高自己的分析能力、设计能力、团结合作能力以及抗挫折的心理调节能力。
通过此次设计,我们对于电子技术的兴趣将大大提高,使我们以更加严谨认真的态度去对待在未来的学习。
1.2设计要求的计时器。
2)具有开始计时/暂停/继续的功能;用6个数码管分别显示百分秒、秒和分钟。
2方案设计2.1设计思路数字跑表包括时序脉冲产生模块 计时模块 显示模块 控制模块。
1).时序脉冲产生模块是利用555计时器构成能产生特定脉冲的多谢振荡器 产生100Hz的脉冲信号 满足数字跑表的脉冲需求2) .计时模块是用多功能计数器产生一百进制和六十进制 实现数字跑表的计数功能3)利用各种逻辑门电路对计数器进行控制,实现数字跑表的启动、暂停和清零。
4)利用译码器和数码管实现译码及显示功能。
5)考虑到电路存在的各种延时及干扰等实际因素,在理论的基础上添加一下元器件,减少延时和干扰。
数字跑表设计报告
电子技术综合实验报告数字跑表学院:物理电子学院学号:2904204018姓名:黄峥一系统总体设计设计要求设计一个数字秒表,有6个输出显示,分别为百分之一秒、十分之一秒、秒、十秒、分、十分,系统主要由显示译码器、分频器、十进制计数器和六进制计数器组成。
整个秒表还需有一个启动/停止信号和一个复位信号,以便秒表能随意停止及启动。
要求:1、跑表精度为0.01秒2、跑表计时范围为:1小时3、设置开始计时/停止计时、复位两个按钮4、显示工作方式:用六位BCD七段数码管显示读数系统工作原理数字跑表通过系统将48MHz时钟进行分频得到100Hz的秒表时钟,之后通过对时钟信号进行计数得到具体的跑表显示数值,跑表数值作为显示单元电路的输入,显示单元控制数码管动态扫描显示计数因此,系统主要划分为:分频器,计数器,显示控制,开始\停在使能控制,清零控制系统结构图如下二单元电路设计1 分频器设计思路:输入信号为48MHz时钟信号,若每480000次脉冲输入,产生1次输出,即可实现100Hz分频。
同理1KHz。
1.1 分频器1:将48MHz时钟信号分频为100Hz,产生0.01秒时钟信号源程序:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity div isPort ( clk : in std_logic;count : buffer std_logic);end div;architecture Behavioral of div issignal cnt: integer range 1 to 240000:=1;beginprocess(clk)beginif clk'event and clk = '1' thenif cnt = 240000 thencnt <=1;count<= not count;elsecnt<= cnt+1;end if;end if;end process;end Behavioral;1.2 分频器2:将48MHz时钟信号分频为1KHz接时间扫描模块源程序:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity div1 isPort ( clk : in std_logic;count : buffer std_logic);end div1;architecture Behavioral of div1 issignal cnt: integer range 1 to 24000:=1;beginprocess(clk)beginif clk'event and clk = '1' thenif cnt = 24000 thencnt <=1;count<= not count;elsecnt<= cnt+1;end if;end if;end process;end Behavioral;2 计数器由于数字跑表需要6进制和10进制两类计数器,因此需要两个单元电路分别对6进制和10进制进行计数,二者原理相同,原件图如下.2.1 十进制计数器程序library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity count isport(clr,start,clk: in std_logic;cout: out std_logic;daout: out std_logic_vector(3 downto 0));end count;architecture Behavioral of count issignal temp: STD_LOGIC_VECTOR (3 downto 0):="0000";beginprocess(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;daout<=temp;end process;end Behavioral;仿真结果如下2.2 六进制计数器library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity count isport(clr,start,clk: in std_logic;cout: out std_logic;daout: out std_logic_vector(3 downto 0)); end count;architecture Behavioral of count issignal temp: STD_LOGIC_VECTOR (3 downto 0):="0000"; beginprocess(clk,clr)beginif clr='1' thentemp<="0000";cout<='0';elsif (clk'event and clk='1') thenif start='1' thenif temp>="0101" thentemp<="0000";cout<='1';elsetemp<=temp+1;cout<='0';end if;end if;end if;daout<=temp;end process;end Behavioral;仿真结果如下3 显示控制显示控制电路根据输入的时钟信号对输入的数据信号进行选择输出,同时输出位选信号控制数码管的动态信号。
数字跑表设计eda课程设计
数字跑表设计eda课程设计摘要:一、引言1.课程背景介绍2.数字跑表设计意义二、数字跑表设计原理1.跑表系统架构2.数字跑表核心模块三、EDA工具介绍1.EDA工具的作用2.EDA工具的选择四、数字跑表设计流程1.设计输入2.设计仿真3.物理布局4.物理验证5.结果分析与优化五、数字跑表设计实践1.设计参数设定2.使用EDA工具进行设计3.设计验证与优化六、数字跑表设计成果与应用1.设计成果展示2.设计实用性分析3.设计前景展望七、总结与展望1.课程学习总结2.数字跑表设计发展趋势正文:一、引言随着科技的飞速发展,电子设计自动化(EDA)技术在电子设计领域中的应用越来越广泛。
数字跑表作为一种实用且具有较高技术含量的电子设备,其设计过程离不开EDA技术的支持。
本课程设计旨在让学生掌握数字跑表的设计方法,熟悉EDA工具的使用,提高实际动手能力和创新能力。
二、数字跑表设计原理数字跑表设计主要包括系统架构设计和核心模块设计两部分。
系统架构设计要求明确整个跑表的组成,包括时钟模块、计数模块、显示模块、控制模块等。
核心模块设计则是针对各个功能模块提出具体的实现方案,如采用何种器件、电路拓扑结构等。
三、EDA工具介绍EDA工具在数字跑表设计过程中发挥着至关重要的作用。
它能帮助设计师快速完成电路设计、仿真、验证及优化等任务。
常见的EDA工具包括原理图编辑器、布图布线工具、仿真器、时序分析工具等。
本课程将使用某款EDA工具进行数字跑表的设计。
四、数字跑表设计流程1.设计输入:根据数字跑表的功能需求,编写设计说明书,明确各个模块的功能、性能参数及接口关系。
2.设计仿真:利用EDA工具进行电路仿真,验证电路的正确性。
3.物理布局:根据电路原理图,进行物理布局设计,考虑器件摆放、连线走向等因素。
4.物理验证:对物理布局进行验证,确保电路符合制程要求。
5.结果分析与优化:分析仿真结果,找出存在的问题,对设计进行优化。
五、数字跑表设计实践1.设计参数设定:根据数字跑表的实际需求,设定各项性能参数,如时钟频率、计数范围等。
数字跑表
一、实验目的1、初步掌握Verilog HDL 语言的设计方法。
2、完成一个数字跑表的设计。
二、实验原理及基本技术路线图本数字跑表首先要从最低位的百分秒计数器开始,按照系统时钟进行计数。
计数至100后向秒计数器进位,秒计数器以百分秒计数器的进位位为时钟进行计数。
计数至60后向分计数器进位,分计数器以秒计数器的进位位为时钟进行计数。
数字跑表模块图数字跑表巧妙地运用进位位作为计数时钟来减少计数的位数。
如果统一使用系统时钟作为计数时钟,那秒计数器将是一个6000进制的计数器,而分计数器将是一个3600000进制的计数器。
这样将极大的浪费FPGA的逻辑资源。
而使用进位位作为计数时钟,只需要一个100进制的计数器和两个60进制的计数器。
在实际的设计中,为了使计数器更加简单,计数器使用高低位两个计数器实现。
100进制计数器分别是高位10进制计数器,低位10进制计数器;60进制计数分别是高位6进制计数器,低位10进制计数器。
这样整个数字跑表使用6个计数器实现。
同时由于10进制计数器重复使用了5次,可以使用独立的模块实现10进制计数器,这样就可以通过模块复用来节省整个模块使用的资源。
数字跑表提供了清零位CLR和暂停位PAUSE,百分秒的时钟信号可以通过系统时钟分频提供。
分频至1/100s,即可实现真实的时间计数。
三、所用仪器、材料Windows XP操作系统、Quertus II软件四、实验步骤、过程原始记录1、跑表的程序设计及编写module paobiao(CLK,CLR,PAUSE,MSH,MSL,SH,SL,MH,ML);//端口说明input CLK,CLR;input 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) beginif(CLR) begin //异步复位{MSH,MSL}<=8'h00;cn1<=0;endelse if(!PAUSE) begin //PAUSE 为0 时正常计数,为1 时暂停计数if(MSL==9) beginMSL<=0; //低位计数至10时,低位归零if(MSH==9) beginMSH<=0; //低、高位计数至10时,高位归零cn1<=1; //低、高位计数至10时,触发进位位endelse //低位计数至10,高位计数未至10时,高位计数MSH<=MSH+1;endelse beginMSL<=MSL+1; //低位计数未至10时,低位计数cn1<=0; //低位计数未至10时,不触发进位位endendend//秒计数模块,每计满60,cn2 产生一个进位always @(posedge cn1 or posedge CLR) beginif(CLR) begin //异步复位{SH,SL}<=8'h00;cn2<=0;endelse if(SL==9) beginSL<=0; //低位计数至10时,低位归零if(SH==5) beginSH<=0; //低位计数至10,高位计数至6时,高位归零cn2<=1; //低位计数至10,高位计数至6时,触发进位位endelseSH<=SH+1; //低位计数至10,高位计未数至6时,高位计数endelse beginSL<=SL+1; //低位计数未至10时,低位计数cn2<=0; //低位计数未至10时,不触发进位位endend//分钟计数模块,每计满60,系统自动清零always @(posedge cn2 or posedge CLR) beginif(CLR) begin //异步复位{MH,ML}<=8'h00;endelse if(ML==9) beginML<=0; //低位计数至10时,低位归零if(MH==5)MH<=0; //低位计数至10,高位计数至6时,高位归零elseMH<=MH+1; //低位计数至10,高位计未数至6时,高位计数endelseML<=ML+1; //低位计数未至10时,低位计数endendmodule2、打开项目打开数字跑表的项目文件夹,双击paobiao.qpf文件用 QuartusII软件打开数字跑表的项目。
数字跑表设计
1 设计意义及要求1.1 设计意义随着社会的发展,在一些竞技比赛中,尤其是体育运动中,数字跑表的精度已经越来越高了,数字跑表扮演着越来越重要的角色,而通过一学期对数字电子技术的学习,学校安排了这次的课程设计,而我们小组的课题是数字跑表的简单设计,目的在与让学生综合运用所学的知识,对各基本器件的运用更加熟练,也更好的锻炼学生的设计思维和动手设计能力,而这也是我们作为电气专业学生的必备技能。
1.2 设计要求1)设计一个具有、‘分’、‘秒’、‘1/100秒’的十进制数字显示的计时器。
2)要有外部开关,控制计数器的直接清零、启动和暂停/连续计时功能;3)严格按照课程设计说明书要求撰写课程设计说明书。
2.1 设计思路电路主要由秒脉冲发生器,计数器,译码器显示电路和控制电路四个部分组成。
其中计数器为系统的主要部分,计数器完成计数功能;秒脉冲发生器提供脉冲信号;译码显示器显示当前数字,控制电路完成计数的启动,暂停和清零功能。
设计框图如图2—1。
图2—1 设计思路框图脉冲源(555振荡器)分频器计数器译码显示器译码/驱动器控制电路清零,启动/暂停2.2.1设计方案一电路图在设计过程中,为了满足设计的要求,应正确处理各个信号间的关系。
该电路是由秒脉冲电路,计数器,译码器显示电路和控制电路组成。
其中计数器和控制电路是系统的主要模块,计数器是由6个74LS90构成。
控制电路完成计数器的直接清零、启动计数、暂停/连续计数、译码显示电路的显示等功能。
当启动开关闭合时,555振荡器将产生的信号送至计数器的CP信号输入端,计数器开始计时功能。
当清零//置数端处于置数端时,启动开关闭合,控制电路应封锁时钟信号CP,同时计数器完成置数功能,译码显示电路显示“00”字样;当启动开关断开时,计数器开始计数;将暂停与连续的控制开关放在555电路模块中,通过控制脉冲信号的传送来达到相应的目的。
当计数器R0端输入高电平时则全部计数器清零,进而实现整个课程设计的要求。
EDA数字跑表课程设计
汇报人:
汇报时间:20XX/XX/XX
YOUR LOGO
目录
CONTENTS
1 课程设计目标 2 课程设计内容 3 课程设计步骤 4 课程设计注意事项 5 课程设计评估
课程设计目标
掌握EDA技术基础
理解EDA技术的基本概念和原理 掌握EDA工具的使用方法和技巧 学会使用EDA技术进行电路设计和仿真 提高EDA技术的应用能力和创新能力
数字跑表设计原理
数字跑表工作原理:通过传感器采集运动数据,通过处理 器处理数据,通过显示屏显示数据
传感器类型:加速度传感器、陀螺仪、磁力计等
处理器类型:微控制器、微处理器等
显示屏类型:LCD、OLED等
电源类型:电池、太阳能等
防水防尘设计:防水等级、防尘等级等
硬件平台选择与搭建
硬件平台选择: 选择适合课程设 计的硬件平台, 如Arduino、 Raspberry Pi 等
培养逻辑思 维能力
增强解决问 题的能力
提高问题分 析能力
提高团队协 作能力
课程设计内容
EDA技术概述
EDA(Electronic Design Automation):电子设计自动 化技术
主要功能:电路设计、仿真、 验证、优化等
应用领域:集成电路设计、通 信、计算机等
发展趋势:智能化、自动化、 云端化
避免接触危险化学品
正确使用实验设备 确保实验环境安全
注意数据准确性
确保数据来源 可靠,避免使 用错误或不准
确的数据
在处理数据时, 注意数据的完 整性和一致性
避免使用未经 验证的数据, 确保数据的真 实性和准确性
在数据分析和 展示时,注意 数据的准确性 和可靠性,避
数字跑表的设计与仿真
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五、心得体会:此次课程设计,从程序设计到仿真,我经历了一个困难重重,愈挫愈勇的过程。
实验二 谢剑华_ 数字跑表
五邑大学实验报告实验课程名称:电子系统EDA院系名称:信息学院专业名称:通信工程实验项目名称:模13BCD码计数器班级: AP08054 学号: 30 报告人:谢剑华实验二数字跑表一、实验目的1、学会利用Quartus II软件的宏单元和所学的数字电路的知识,搭建复杂一点的数字电路或系统2、学会使用EDA实验箱,下载验证所设计的电路二、实验原理数字跑表实质是一个计数器,由百分秒计数器,秒钟计数器和分钟计数器级联而成;百分秒计数器为模100计数器,秒钟和分钟计数器为模60计数器。
本设计计数器芯片选用的是74160,其设计方法与实验一相同,整个原理图如图1所示:图1 数字跑表的原理框图电路简要说明:本电路从左到右依次实现的是百分秒计数器(模100计数器)、秒钟计数器(模60计数器)、分钟计数器(模60计数器);其中各模块单元电路如图2、图3、图4所示:图2 模100计数器(数字跑表的百分秒)电路图图2中与非门输出是秒钟计数器(模60计数器)的时钟输入信号,即当百分秒为99时进位。
图3 秒钟计数器(模60计数器)电路图图3中与门输出是分钟计数器(模60计数器)的时钟输入信号,即当秒钟为59时进位。
图4 分钟计数器(模60计数器)电路图三、设计的仿真结果本设计作了功能仿真,其结果如图5所示:图5 数字跑表仿真结果仿真结果自上而下分别为分钟、秒钟、百分秒,从仿真结果可知,当百分秒为99时向秒钟进以为。
仿真结果表明,本设计符合设计要求。
四、思考题1、什么是同步清零和异步清零?答:同步是指与时钟同步,即时钟触发条件满足时检测清零信号是否有效,有效则在下一个时间周期的触发时,执行清零响应,异步是清零信号有效时,与触发脉冲无关,立即清零。
2、BCD计数器和一般二进制计数器有何差别?答:BCD计数器是将4位二进制转换成十进制显示结果,符合人们的习惯观察;而一般二进制计数器与位数长短有关。
五、设计心得通过实验二的学习,进一步掌握了利用Quartus II软件进行设计输入、设计仿真的方法,对Quartus II软件更加熟悉,虽然仿真结果显示正确,但是下载验证所设计的电路还没实现,做实验时原本是可以下载到实验板上显示的,后来发现生成模块电路的时候没有保存工程,导致最后下载不到实验板上,这充分说明自己对利用Quartus II软件进行EDA设计时整个流程还不够熟悉,此外,我对下载到实验板前的一些设置也没有掌握。
数字跑表实验设计
数字跑表 设计报告设计任务:在掌握了VHDL 硬件编程语言和了解了基本的FPGA 设计步骤后,设计出一个符合设计指标的数字跑表,并下载到实验板上通过验证。
设计指标:1、跑表精度为0.01秒2、跑表计时范围为:1小时3、设置开始计时/停止计时、复位两个按钮4、显示工作方式:用六位BCD 七段数码管显示读数。
显示格式:设计步骤:(1) 设计出符合设计要求的解决方案。
(2) 设计出单元电路。
(3) 利用EDA 软件对各单元电路及整体电路进行仿真。
(4) 利用EDA 软件在ELB 电子课程设计实验箱上实现设计。
(5) 撰写设计报告。
设计思路:首先,分析一个完整的数字跑表的具有哪些功能:1、计时功能 2、相应的控制按钮 3、显示计数结果的功能模块;接下来就开始考虑如何应用电路实现上述的三个模块: 1、计时模块应包括稳定、准确的时钟输入和计数模块,考虑到设计指标要求跑表精度为0.01秒,那么计数脉冲的时钟输入就应该是频率为100HZ 的脉冲,而实验板上提供的晶振是32MHZ ,所以先要设计一个320000分频器,分频器的输出才可作计数器的输入;其次计数模块设计应综合考虑跑表的计时范围(1小时)和显示输出(6位输出),6位输出中有两位是六进制输出,其余四位是十进制输出,所以可通过设计4个模10计数器和2个模6分 秒 0.01秒计数器来实现,其中较低位的进位输出就是高位的计数输入端。
2、根据设计指标的要求,控制模块应包括开始计时/停止计时、复位两个按钮,即电路设计经常用到的史能端和清零端,这两个控制端口直接接到计数器的清零和史能端即可实现、复位、开始计时/停止计时;但是外围史能输入需要经过史能转换电路后,才可变为计数器可用的史能控制信号。
3、显示计数结果的模块实现较为简单,只需将六位计数结果通过七段译码电路接到输出即可点亮数码管,无需时序控制,直接用组合逻辑电路就可以实现。
数码管显示可以采用扫描显示,用一个频率1KHz的信号扫描一个多路选择器,实现对六位已经锁存的计数结果的扫描输出。
EDA课程设计——数字跑表
第一章引言数字电子技术的应用一直在向着广度和深度扩展。
时至今日,“数字化”的浪潮几乎席卷了电子技术应用的一切领域。
由于电子产品的更新周期日益缩短,新产品开发速度日益加快,因而对电子设计自动化(EDA)提出了更高的要求,也有力地促进了EDA技术的发展和普及。
在数字集成电路方面,电路的集成度如摩尔定律(Moore’s Law)所预言的那样,以每1-2年翻一番的速度增长,使电路的复杂程度越来越高、规模越来越大。
同时,在基本技能方面,对使用EDA工具的能力也提出了更高的要求。
因此,学好EDA课程设计至关重要。
第二章 设计说明1.器件介绍-集成十进制加法计数器74160集成同步十进制加法计数器74160。
图2-1给出了74160的引脚排列图和逻辑符号图。
除了具有十进制加法计数功能外,还具有异步复位、同步预置数和计数状态保持、对输入的时钟信号进行分频等功能。
CLRN 为异步复位端,LDN 为预置数控制端,A-D 为预置状态输入端,RCO 为进位输出端,ENT 和ENP 为工作状态控制端(双使能端)。
图2-1 74160逻辑符号图 表2-1 74160功能特性 表2-2是74160的功能表,它给出了各种控制信号作用下计数器的工作状态,具体如下。
序号 CLK CLRN LDN ENP ENT 工作状态 1 × 0 × × × 复位 2 ↑ 1 0 × × 预置数 3 ↑ 1 1 1 1 正常计数 4 × 1 1 × 0 保持,且C=0 5×110 1保持表2-2 74160的功能表⑴当CLRN=0时,无论其他功能端为何状态,计数器都将复位,有QD ~QA=0000(注:QD 为状态端最高位)。
⑵当CLRN=1、LDN=0时,计数器处于预置数状态。
在出现此情况后的第一个CLK 上升沿,将预置输入端加载的数据送入计数器,即有QD ~QA=D ~A(注:D 为置入端最高位)。
课程设计数字跑表
一、设计题目及要求设计题目:数字跑表要求:1 具有暂停,启动功能;2 具有重新开始功能;3 用六个数码管分别显示百分秒,秒和分钟。
二、设计过程及内容总体设计:第一,对于要实现的暂停、启动和重新开始功能,需要有一个控制模块完成相关控制。
第二由题意可知需要一个分频模块,将实验箱提供的频率转换为100HZ即数字跑表百分秒的频率。
第三是计时模块,完成跑表的百分秒、秒和分钟的计时功能。
第四由于实验箱提供的数码显示是扫描显示,这就需要一个选时模块。
第五部分则是显示模块。
详细设计过程:根据要求,将设计分成五个模块:1、控制模块:使跑表具有启动、暂停及重新开始的功能;2、分频模块:将实验箱所提供的频率转换为设计题目所需要的100HZ 的时钟脉冲;3、计时模块:进行百分秒、秒、分的计时,并且将当前时间输出给选时模块;4、选时模块:从计时器得到当前时间输出给显示模块;5、显示模块:通过数码管显示时间。
总图如下:仿真波形:第一个模块:控制模块控制模块主要运用了两个D触发器,输入到触发器的时钟信号CLK1频率为2.86Hz,对电路起到了防抖的功能。
START/STOP为启动\暂停按钮,当跑表为START状态时CLK端为高电平,Q为1,时钟信号输出,当跑表为STOP状态时CLK端为低电平,Q为0,时钟信号不输出,从而实现开始和暂停的功能。
与门可控制时钟信号是否被输出到下一级。
RESET端为全局清零按钮,接到控制模块和计时模块的清零端,负责将计数器清零。
当RESET为低电平时,控制模块和总计数器模块清零,跑表重新开始工作。
电路图如下:仿真波形:第二个模块:分频模块为了将实验箱提供的1465HZ转换成实验需要的100HZ,我将74161接成15进制计数器,实现分频的功能,转换为100HZ的近似时钟信号。
然后将输出的时钟接入到计时模块。
电路图如下:仿真波形:第三个模块:计时模块计时模块由一个100进制计数器和两个60进制计数器构成,从而实现百分秒向秒、秒向分的计数功能需求。
数字跑表设计eda课程设计
数字跑表设计eda课程设计
数字跑表设计EDA课程设计涉及以下方面:
1. 数字跑表的功能设计:确定数字跑表需要具备的基本功能,比如显示跑步时间、距离和速度等数据,同时可以设置跑步目标、记录跑步历史等。
2. 界面设计:设置数字跑表的界面布局,包括显示屏、按钮和操作界面等,保证用户操作的便捷性和信息的直观性。
3. 系统架构设计:确定数字跑表的硬件和软件架构,包括选择合适的处理器、存储器和显示设备等,同时设计相应的实时操作系统和驱动程序,使得运行速度和稳定性达到要求。
4. 电路设计:设计数字跑表的电路图,包括电源管理电路、时钟电路、数据采集电路等,确保数字跑表的正常工作。
5. 数据采集与处理:设计合适的传感器,比如加速度传感器和GPS模块等,用于采集跑步的相关数据,并通过算法对数据进行处理,得到准确的跑步时间、距离和速度等信息。
6. 功能测试与验证:对设计的数字跑表进行功能测试和性能验证,确保数字跑表的稳定性和准确性,同时对可能出现的问题进行改进和优化。
7. 用户体验设计:通过调研和用户反馈,不断改进数字跑表的用户体验,包括界面交互、操作流程和功能设置等,提高用户的满意度。
8. 产品生产与推广:根据设计的数字跑表进行产业化生产,并进行推广和营销,使得数字跑表能够被广泛使用和接受。
实验五数字跑表的设计与实现
实验五数字跑表的设计与实现一.实验目的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. 硬件下载结果。
数字跑表设计eda课程设计
数字跑表设计eda课程设计【原创版】目录1.数字跑表设计概述2.EDA 课程设计的目的和意义3.数字跑表的主要功能和特点4.数字跑表的设计流程5.EDA 课程设计对数字跑表设计的影响和应用正文数字跑表设计是电子设计自动化 (EDA) 课程设计中的一个重要项目,目的是让学生通过实践了解和掌握数字电路的设计方法和技巧。
数字跑表是一种能够记录跑步时间和距离的电子设备,主要功能是计时和计数,同时还具备闹钟、计时器等附加功能。
数字跑表的设计流程主要包括需求分析、系统设计、电路设计、PCB 设计、测试和调试等步骤。
在 EDA 课程设计中,学生需要使用 EDA 软件来完成数字跑表的设计。
EDA 软件能够提供可视化的电路设计和仿真环境,学生可以通过绘制原理图、PCB 图等来实现数字跑表的设计。
同时,EDA 软件还能够提供多种工具和函数库,帮助学生快速实现数字跑表的各种功能。
数字跑表的主要功能是计时和计数。
计时功能是指数字跑表能够准确地记录跑步时间,同时能够在跑步过程中实时显示跑步速度和距离。
计数功能是指数字跑表能够记录跑步的圈数和步数等信息,以便用户了解自己的跑步情况。
数字跑表还具备闹钟、计时器等附加功能,方便用户进行更多的运动训练。
EDA 课程设计对数字跑表设计具有重要的影响和应用。
通过 EDA 课程设计,学生能够学习和掌握数字电路的设计方法和技巧,提高数字电路设计和实现的能力。
同时,EDA 软件提供的可视化设计和仿真环境,能够帮助学生更好地理解数字跑表的工作原理和电路结构,加快数字跑表的设计和测试进度。
数字跑表设计是 EDA 课程设计中的一个重要项目,能够帮助学生学习和掌握数字电路的设计方法和技巧。
数字跑表的主要功能是计时和计数,同时还具备闹钟、计时器等附加功能。
数字跑表设计
西南科技大学设计报告课程名称:基于FPGA的现代数字系统设计设计名称:基于原理图的数字跑表设计姓名:学号:班级:指导教师:西南科技大学信息工程学院一、实验目的1、设计一个数字跑表,具有复位、暂停、秒表等功能二、实验原理1.完成一个具有数显输出的数字跑表计数器设计,原理图如下图所示。
、数字跑表计数器原理图任务分析:输入端口:1)复位信号CLR,当CLR=1,输出全部置0,当CLR=0,系统正常工作。
2)暂停信号PAUSE,当PAUSE=1,暂停计数,当PAUSE=0,正常计数。
3)系统时钟CLK,CLK=50MHz输出端口:数码管驱动----DATA1,位宽14位,其中,DATA1[7:0]是数码管显示值,DATA1[14:8]是数码管控制端口屏蔽未用端口---ctr,位宽是2,将未用的两个数码管显示关闭(1)跑表的计时范围为0.01s~59min59.99s,计时精度为10ms;(2)具有异步复位清零、启动、计时和暂停功能;(3)输入时钟频率为100Hz;(4)要求数字跑表的输出能够直接驱动共阴极7段数码管显示.按照自顶向下设计,应该分为以下模块:分频----将下载板上50MHz时钟分频为周期是0.01秒的时钟,提供给百分计数计数1----百分计数,输入周期是0.01秒的时钟,计数,满100进位,注意个位,十位的不同生成计数2---60进制计数器,输入百分位,或者秒位的进位,计数,满60向高位进位,注意个位,十位的不同生成数码管显示控制----驱动数码管数据,显示控制端口。
三、实验步骤1、数码管显示驱动模块的设计(1)建立工程:file->New Project,并注意器件、EDA工具的正确选择(2)建立新Verilog HDL模块编辑窗口,选择资源类型为Verilog Module,并输入合法文件名,在文本编辑窗口输入代码。
(3)执行综合得到综合后的电路,并进行功能时序仿真。
2.计数器模块的设计设计步骤同数码管的设计,并完成模块的设计输入、综合、功能仿真。
数字跑表实验
数字跑表实验一、实验目的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进制计数芯片,进位端较多,还需要与其他逻辑门的配合,很容易混淆接错,因而花了较长时间在错误检查上。
FPGA数字跑表程序设计与防仿真
FPGA数字跑表程序设计与防仿真第一篇:FPGA数字跑表程序设计与防仿真一、设计名称:基于FPGA的数字系统设计(数字跑表)二、设计指标:1、跑表精度为0.01秒2、跑表计时范围为:1小时3、设置开始计时/停止计时、复位两个按钮4、显示工作方式:用六位BCD七段数码管显示读数。
显示格式为xx分xx秒xx0.01秒三、设计要求:1、设计出符合设计要求的解决方案2、设计出单元电路3、利用EDA软件对各单元电路及整体电路进行仿真4、利用EDA软件在实验板上实现设计四、方案设计:1、由石英振荡器产生正弦信号,然后通过分频器分频产生需要的分频信号2、由开关通过使能控制对计数器的工作状态进行控制3、分频信号控制计数器计数4、将计数器结果输入显示模块,完成在七段数码管上的显示五、系统设计框图:六、单元电路划分分频器(1)设计思路:由于显示最末位为0.01秒故需给计数器提供100Hz的时钟信号;显示部分由于一次只能显示单只数码管,为满足设计要求一次显示六位则需提高显示模块时钟信号频率,利用视觉效应使人一次看到六位显示,故分频器需要提供100Hz和1KHz两个输出信号。
分频器通过计数的方法实现分频功能。
(2)元件符号:(3)源程序:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;useIEEE.STD_LOGIC_UNSIGNED.ALL;entity clock isPort(clk : in STD_LOGIC;clk1 : out STD_LOGIC;clk2 : out STD_LOGIC);end clock;architecture Behavioral of clock is signal fcount1:integer range 1 to 24000:=1;signal fcount2:integer range 1 to 5:=1;signal clk1_tmp:STD_LOGIC:='0';signal clk2_tmp:STD_LOGIC:='0';begin process(clk,fcount1,clk1_tmp)beginif clk'event and clk = '1' thenif fcount1= 24000 thenfcount1 <= 1;clk1_tmp<= not clk1_tmp;elsefcount1 <= fcount1 + 1;end if;end if;end process;clk1<= clk1_tmp;process(clk1_tmp,clk1_tmp,fcount2,clk2_tmp) beginif clk1_tmp'event and clk1_tmp = '1' thenif fcount2= 5 thenend process;clk2<=clk2_tmp;end Behavioral;fcount2 <= 1;clk2_tmp<= not clk2_tmp;elsefcount2 <= fcount2 + 1;end if;end if;(4)仿真结果:(5)结果分析:仿真结果显示分频程序正确的产出了实验所需频率信号.十进制计数器(1)源程序:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;useIEEE.STD_LOGIC_UNSIGNED.ALL;entity counter10 isPort(rst : in STD_LOGIC;clk : in STD_LOGIC;carry_in : in STD_LOGIC;carry_out : out STD_LOGIC;count_out : out STD_LOGIC_VECTOR(3 downto 0));end counter10;architecture Behavioral of counter10 issignal count_tmp:STD_LOGIC_VECTOR(3 downto 0):=“0000”;signal pause : STD_LOGIC:='1';begin process(clk,rst,carry_in,count_tmp)begin if rising_edge(carry_in)then pause <= not pause;end if;if rst='0' th en count_tmp<=“0000”;carry_out<='0';elsif clk'event and clk='1' thenif pause='1' thenif count_tmp=“1001” thencount_tmp<=“0000”;carry_out<='1';ELSEcount_tmp<=count_tmp+1;carry_out<='0';end if;end if;end if;count_out<=count_tmp;end process;end Behavioral;(2)仿真结果:(3)结果分析:仿真结果显示当无reset信号输入时计数器正常计数并在记满时自动清零并产生进位信号,当有reset输入时会清零,程序符合设计要求.六进制计数器(1)源程序:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;useIEEE.STD_LOGIC_UNSIGNED.ALL;entity counter6 isPort(rst : in STD_LOGIC;clk : in STD_LOGIC;carry_in : in STD_LOGIC;carry_out : out STD_LOGIC;count_out : out STD_LOGIC_VECTOR(3 downto 0));end counter6;architecture Behavioral of counter6 issignal count_tmp:STD_LOGIC_VECTOR(3 downto 0):=“0000”;beginprocess(clk,rst,carry_in,count_tmp)begin if rst='0' then count_tmp<=“0000”;carry_out<='0';elsif clk'event and clk='1' thenif carry_in='1' thenif count_tmp=“0101” thencount_tmp<=“0000”;carry_out<='1';ELSEcount_tmp<=count_tmp+1;carry_out<='0';end if;end if;end if;count_out<=count_tmp;end process;end Behavioral;(2)仿真结果:显示模块(1)设计思路:数码管显示需要对应位置显示对应位数的时间,故需要一个信号同时选择六个地址输入的一个和其所对应的数码管,因此需要一个六位计数器产生这个选择信号。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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;end
else MSH<=MSH+1;end
else begin MSL<=MSL+1;cn1<=0;end
end
end
//******************秒计数进程,每计满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;end
else 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;end
else ML<=ML+1;
end
endmodule
五、心得体会:
此次课程设计,从程序设计到仿真,我经历了一个困难重重,愈挫愈勇的过程。
设计程序时,我冥思苦想最优方案,第一天我耐心看书本上例题程序,希望从中得到一点启示,结果收获不大。
第二天我把从网上得到的一点启发在寝室写好程序后,第二天就开始在实验室进行编译,发现出了很多语句和嵌套方
面的错误,例如begin和and使用;文件的取名与存盘,建议存盘的文件名与Verilog模块名一致,文件的后缀是.v;工作目录:好的习惯是为当前设计工程创建一个子目录,并将与当前工程相关的所Verilog文件存于该子目录下。
查找错误是一个需要耐心的工作,我逐个修改,不明白的地方问同学,问老师,终于编译的程序没有错误,只有几个警告,但是这不影响后面的功能仿真,当天晚上我在寝室再次进行编译,同时也完成了后面的仿真,结果很好的实现了要求的功能。
最后一天我拿写好的程序结果给老师验收,结果可想而知没出现问题,实现了本课程设计的要求。
在此次课程设计中,我着实的得到了不少锻炼。
且不说设计程序时让我拣起了不少不太熟悉和有些遗忘的知识,且不说在电脑上连接仿真查错到半夜的煎熬,但是我还是坚持了下来,耐着性子将程序仿真成功。
这个过程中,我不仅掌握了调试电路的几种方法,更是理解了科学研究的严谨认真的态度和踏踏实实做事的习惯。
我最终能够成功,和在遇到不顺情绪低落的时候的不气馁和坚持不懈有很大关系。
本次课程设计,不但加深了我对课本知识的理解,并且在实践中提高了我的分析能力、设计能力以及抗挫折的心理调节能力。
通过此次设计,我对于电子技术的兴趣大大提高,并且看到了自己和实际工作所需能力的差距,将在日后的学习中以更加认真严谨的态度去对待自己所学的学科。