欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    毕业设计(论文)基于FPGA的数字秒表设计.doc

    • 资源ID:4149690       资源大小:351.50KB        全文页数:28页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    毕业设计(论文)基于FPGA的数字秒表设计.doc

    基于FPGA的数字秒表设计摘要:该设计是用于体育比赛的数字秒表,基于FPGA在Quartus II 9.0sp2软件下应用VHDL语言编写程序,采用ALTRA公司CycloneII系列的EP2C8Q208芯片进行了计算机仿真,并给出了相应的仿真结果。本设计有效的克服了传统的数字秒表的缺点采用EDA技术采取自上而下的设计思路。绘制出了具体的逻辑电路,最后又通过硬件上对其进行调试和验证。该电路能够实现很好的计时功能,计时精度高,最长计时时间可达一个小时。 关键字:数字秒表;EDA;FPGA;VHDL;Quartus IIThe design of digital stop watch based on FPGAAbstract:This design is a digital stop watch which is used for athletic contests and is based on FPGA using VHDL language to write program in Quartus II software,adopting EP2C8Q208 chip of CycloneII series of ALTRA company for computer simulation and at the same time showing the corresponding simulation result. This design effectively overcomes the traditional digital stop watch weaknesses and takes a top-down approach to design. Draw out a particular logic circuits, and finally pass the circuits to the hardware to debug and verify it.This circuit is able to carry out excellent timing function,has high timing precision,and the longest timing time could reach an hour.Key Words: Digital stop watch;EDA;FPGA;VHDL;MAX Plus引言 数字秒表是日常生活中比较常见的电子产品,其设计也是EDA技术中最基本的设计实验之一1。当今社会是数字化的社会,是数字集成电路广泛应用的社会。数字集成电路本身在不断进行更新换代,随着微电子技术的发展,设计与制造集成电路的任务已不完全由半导体厂商来独立承担。系统设计师更愿意自己设计专业集成电路(ASIC)芯片,而且希望设计周期尽可能短,最好在实验室里就能设计出合适的ASIC芯片并且立即投入实际应用之中,因而出现了现场可编程器件2(FPLD)。现场可编程门阵列(FPGA)即属其中应用最广泛的一种。超高速硬件描述语言VHDL,是对数字系统进行抽象的行为与功能描述到具体的内部线路结构描述,利用EDA工具可以在电子设计的各个阶段、各个层次进行计算机模拟验证,保证设计过程的正确性,可大大降低设计成本,缩短设计周期3。本文介绍的数字秒表,利用基于VHDL的EDA设计工具,采用大规模可编程逻辑器件FPGA,通过设计芯片来实现系统功能。给出了顶层电路图,和各模块的设计.增加了消除抖动的控制方法,消除了开关按键的机械抖动.通过编辑、编译和器件编程, 并将编程器文件下载到SE-5型EDA实验开发板上4,经实际电路测试验证,达到了预期的设计要求,显示结果准确无误。 概述在科技高度发展的今天,集成电路和计算机应用得到了高速发展。尤其是计算机应用的发展。它在人们日常生活已逐渐崭露头角。大多数电子产品多是由计算机电路组成,如:手机、mp3等。而且将来的不久他们的身影将会更频繁的出现在我们身边。各种家用电器多会实现微电脑技术。电脑各部分在工作时多是一时间为基准的。本文就是基于计算机电路的时钟脉冲信号、状态控制等原理设计出的数字秒表1。秒表在很多领域充当一个重要的角色。在各种比赛中对秒表的精确度要求很高,尤其是一些科学实验。他们对时间精确度达到了几纳秒级别。1.1设计要求(1) 能对0秒59分59.99秒范围进行计时,显示最长时间是59分59秒;(2) 计时精度达到10ms;(3) 设计复位开关和启停开关,复位开关可以在任何情况下使用,使用以后计时器清零,并做好下一次计时的准备。1.2数字秒表设计的目的本次设计的目的就是在掌握EDA实验开发系统的初步使用基础上,了解EDA技术,对计算机系统中时钟控制系统进一步了解,掌握状态机工作原理,同时了解计算机时钟脉冲是怎么产生和工作的。在掌握所学的计算机组成与结构课程理论知识时。通过对数字秒表的设计,进行理论与实际的结合,提高与计算机有关设计能力,提高分析、解决计算机技术实际问题的能力。通过课程设计深入理解计算机结构与控制实现的技术,达到课程设计的目标。1.3 EDA技术EDA是指以计算机为工作平台,融合了应用电子技术、计算机技术、智能化技术的最新成果而开发出的电子CAD通用软件包,它根据硬件描述语言HDL完成的设计文件,自动完成逻辑编译、化简、分割、综合、优化、布局布线及仿真,直至完成对于特定目标芯片的适配编译、逻辑映射和编程下载等工作5。目前EDA主要辅助进行三个方面的设计工作:IC设计、电子电路设计和PCB设计。没有EDA技术的支持,想要完成超大规模集成电路的设计制造是不可想象的;反过来,生产制造技术的不断进步又必将对EDA技术提出新的要求6。1.4硬件描述语言VHDL1.4.1 VHDL的简介VHDL语言是一种用于电路设计的高级语言。它在80年代的后期出现。最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言 。但是,由于它在一定程度上满足了当时的设计需求,于是他在1987年成为A I/IEEE的标准(IEEE STD 1076-1987)。1993年更进一步修订,变得更加完备,成为A I/IEEE的A I/IEEE STD 1076-1993标准。目前,大多数的CAD厂商出品的EDA软件都兼容了这种标准。自IEEE公布了VHDL的标准版本,IEEE-1076(简称87版)之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本,(简称93版)。现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。有专家认为,在新的世纪中,VHDL于Verilog语言将承担起大部分的数字系统设计任务。1.4.2 VHDL语言的特点VHDL的程序结构特点是将一项工程设计,关于用VHDL和原理图输入进行CPLD/FPGA设计的粗略比较:在设计中,如果采用原理图输入的设计方式是比较直观的。你要设计的是什么,你就直接从库中调出来用就行了。这样比较符合人们的习惯。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。应用VHDL进行工程设计的优点是多方面的4。(1) 与其他的硬件描述语言相比,VHDL具有更强的行为描述能力,从而决定了他成为系统设计领域最佳的硬件描述语言。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。(2) VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。(3) VHDL语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能。符合市场需求的大规模系统高效,高速的完成必须有多人甚至多个代发组共同并行工作才能实现。(4) 对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动的把VHDL描述设计转变成门级网表。(5) VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计。1.4.3 VHDL的设计流程它主要包括以下几个步骤:(1) 文本编辑:用任何文本编辑器都可以进行,也可以用专用的HDL编辑环境。通常VHDL文件保存为.vhd文件,Verilog文件保存为.v文件(2) 功能仿真:将文件调入HDL仿真软件进行功能仿真,检查逻辑功能是否正确(也叫前仿真,对简单的设计可以跳过这一步,只在布线完成以后,进行时序仿真)(3) 逻辑综合:将源文件调入逻辑综合软件进行综合,即把语言综合成最简的布尔表达式。逻辑综合软件会生成.edf或.edif 的EDA工业标准文件。(4) 布局布线:将.edf文件调入PLD厂家提供的软件中进行布线,即把设计好的逻辑安放PLD/FPGA内。(5) 时序仿真:需要利用在布局布线中获得的精确参数,用仿真软件验证电路的时序。(也叫后仿真) 通常以上过程可以都在PLD/FPGA厂家提供的开发工具。(6) 器件编程2.系统的设计流程2.1 设计规划 本系统设计采用自顶向下的设计方案,系统的整体组装设计原理图如图1所示,它主要由控制模块、时基分频模块,计时模块和显示模块四部分组成。各模块分别完成计时过程的控制功能、计时功能与显示功能。图1 系统组成图图 2 系统设计框图如图2所示,计时控制器的作用是控制计时。计时控制器的输入信号是启动,暂停和清零。为符合惯例,将启动和暂停功能设置在同一个按键上,按一次是启动,按第二次是暂停,按第三次是继续。所以计时控制器共有2个开关输入信号,即启动/暂停和清零信号。计时电路的输入信号为4o96HZ时钟、计数允许,保持和清零信号,输出为IOMS、10OMS、S和MIN的计时数据。时基分频器是一个41分频器,产生10MS周期的脉冲用于计时电路时钟信号。显示电路为动态扫描电路。用以显示十分位、MIN、10S、S、lOOMS和1OMS信号。2.2 系统的原理图及各模块的程序图3 系统的整体组装设计原理图 设计由控制模块、时基分频模块,计时模块和显示模块四部分组成。各模块实现秒表不同的功能7 。图3就是整个系统原理图。2.2.1控制模块计时模块的作用是针对计时过程进行控制。计时控制模块可用俩个按钮来完成秒表的启动、停止和复位。部分源程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity control isport ( clk , start: in std_logic; startstop,clks :out std_logic);end control;architecture aa of control issignal sstart,asstart: std_logic;signal count : std_logic_vector(3 downto 0); 声明结构体所用的内部信号及数据类型beginclk_label:PROCESS (clk)进程(敏感表)BEGINIF clk'event and clk='1' THEN表示时钟的上升沿 if count="1001" then count<="0000" else count<=count+1; end if; sstart<=start;同步置数END IF;END PROCESS clk_label;clkss_label:PROCESS (sstart)BEGINIF sstart'event and sstart='1' THEN asstart<=not asstart;END IF;产生10ms周期的脉冲,用于计时电路时钟信号END PROCESS clkss_label;startstop<=asstart;clks<=count(3);end aa;2.2.2时基分频模块时基分频模块的作用把输入时钟信号变为分频输出信号。源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CB10 IS PORT( 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)BEGIN IF RISING_EDGE(CLK)THEN IF COUNT="1001"THEN COUNT<="0000" CO<='1' ELSE COUNT<=COUNT+1; CO<='0' END IF; END IF; END PROCESS;END ART;2.2.3 时模块计时模块执行计时功能,计时方法和计算机一样是对标准时钟脉冲计数9。他是由四个十进制计数器和俩个六进制计数器构成,其中毫秒位、十毫秒位、秒位和分位采用十进制计数器,十秒位和十分位采用六进制计数器10。源程序: 十进制计数器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CDU10 IS PORT( CLK:IN STD_LOGIC; CLR,EN:IN STD_LOGIC; CN :OUT STD_LOGIC; COUNT10:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END CDU10;END IF;END IF;END PROCESS;END ART; 六进制计数器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CDU6 IS END IF;END IF;END PROCESS;END ART; 计数器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY COUNT IS END ART;2.2.4显示模块计时显示电路的作用是将计时值在LED数码管上显示出来。计时电路产生的值经过BCD七段译码后,驱动LED数码管。计时显示电路的实现方案采用扫描显示8。部分源程序: 数据选择器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY MULX IS PORT( 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); SEG:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END MULX;ARCHITECTURE ART OF MULX ISSIGNAL COUNT:STD_LOGIC_VECTOR(3 DOWNTO 0);END CASE;END IF;END PROCESS;END ART; BCD七段译码器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY BCD7 IS PORT( BCD:IN STD_LOGIC_VECTOR(3 DOWNTO 0); LED:OUT STD_LOGIC_VECTOR(6 DOWNTO 0); END BCD7;ARCHITECTURE ART OF BCD7 ISBEGINLED<="1111110"WHEN BCD ="0000" ELSE"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 ="0111" ELSE"1111111"WHEN BCD ="1000" ELSE"1111011"WHEN BCD ="1001" ELSE"0000000"END ART;3.系统仿真(1) 时基分频模块的仿真(如图4示)图4 基分频模块的仿真分析:CLK为时钟信号的输入 ,CO为分频输出信号。(2) 控制模块的仿真(如图5示)图5制模块的仿真分析:CLK、CLR和SP为输入信号,EN为输出信号。(3) 计时电路模块的仿真(如图6图8示) a、十进制计数器的仿真(如图6示)b、六进制计数器的仿真(如图7示)c、计数器的仿真(如图8)图6进制计数器的仿真图7 进制计数器的仿真图图8 计数器的仿真图分析:clk为时钟脉冲脉冲,s_1ms是毫秒计数值,s_10ms是十毫秒计数器,s_100ms是百毫秒计数器,s_1s是秒计数器,s_10s是十秒计数器,m_1min是分计数器,s_10min是十分计数器,hour是小时计数器。它们均为输入信号。每来两个时钟脉冲,s_1ms加1,当s_1ms满十时,s_10ms加1,依次类推,s_10ms满十的时候,s_100ms加1等等作为输出11。(4) 显示电路模块的仿真(如图9图10所示) a、数据选择器的仿真(如图9所示) b、BCD七段译码器驱动器的仿真(如图10所示)图9 数据选择器的仿真图图10 BCD七段译码器的仿真图分析:bcd为时钟脉冲输入信号,led是输出信号,如图所示:当输出为“1111110”时候,输入为“0000”;当输出为“0110000”时输入“0001”,当输入为“0010”时输出为“1101101”,当输入为“0011”时输出为“1111001”等等来实现七段译码功能12。(5) 数字秒表整个系统的仿真(如图11所示)图11数字秒表起始工作的仿真图状态仿真图分析:秒表开始从零开始计数,每次增加10ms。工作很正常的进行。 硬件电路的设计与调试本系统的主要逻辑设计由一片EPF10K10LC84-4芯片完成,编写的VHDL源程序在Altera公司的逻辑综合工具Max+Plus下经过编译和功能仿真测试后,针对下载芯片进行管脚配置,下载到EPF10K10LC84-4芯片中,进行相应的硬件调试,调试结果与软件仿真的结果相吻合,验证了设计完成了预定功能13。根据需求选择电路的设计单元进行组合,完成系统的原理图设计与 PCB 设计,对制作好的PCB板,或准备好的面包板,按照装配图或原理图进行器件装配,装配好之后再进行电路的调试。4.1 PCB板制作本设计的PCB电路板通过Protel99来完成。首先创建扩展名为DDB的设计文件,打开Document文挡新建Schematic document文件,在此文件里面画出本设计的各模块电路图,添好元器件的封装,生成网络表。然后在Document文挡新建PCB document文件,装载网络表。装载网络表完成后将各元器件重新布局,让图中的交叉线尽可能的少,以免布线时出现过多的交叉线。重新布置元件位置后,根据需要修改布线参数。根据制作的难易程度一般在元器件少的情况下选择单面PCB板,因为元器件少时单面板布线的成功率高,易于腐蚀和焊接,本设计的电路图不是很复杂,且采用了分模块设计,故均采用单面PCB板。另一个需要修改的参数是PCB板的线宽。线宽的选择很重要,线宽太细在腐蚀时易出断线,线宽太宽需要的板子面积就大,这样浪费材料,不经济。线宽一般选择在0.5mm2mm之间。本设计的线宽除地线和电源线以外,均采用0.8mm线宽,最终效果很好14。PCB板本身的基板是由绝缘隔热、且不易弯曲的材料所制作成。在表面可以看到的细小线路材料是铜箔,原本铜箔是覆盖在整个PCB板上的,而在制造过程中部分被腐蚀处理掉,留下来的部分就变成网状的细小线路了。这些线路被称作导线或称布线,并用来提供PCB板上零件的电路连接。通常PCB板的颜色都是绿色或是棕色,这是阻焊漆的颜色。是绝缘的防护层,可以保护铜线,也可以防止零件被焊到不正确的地方。在布局时首先要考虑的一个因素就是电性能,把连线关系密切的元器件尽量的放在一起,尤其对一些高速线,布局时就要使它尽可能地短,功率信号和小信号器件要分开。在满足电路性能的前提下,还要考虑元器件摆放整齐、美观,便于测试,板子的机械尺寸,插座的位置等也需认真考虑。所有平行信号线之间要尽量留有较大的间隔,以减少串扰。如果有两条相距较近的信号线,最好在两线之间走一条接地线,这样可以起到屏蔽作用。设计信号传输线时要避免急拐弯,以防传输线特性阻抗的突变而产生反射,要尽量设计成具有一定尺寸的均匀的圆弧线。PCB板布线完成后即用转印纸将所有的板层打印出来。将选好的PCB板除污后用转印机将转印纸上的碳迹转印到PCB板上。转印完成后检查转印的碳迹是否有断线,若有则用油漆或碳笔将断线连接起来,然后把PCB板放到三氯化铁的水溶液中进行腐蚀。腐蚀的温度在37度为宜,在三氯化铁溶液浓度足够,PCB板面积不大的情况下半小时就可腐蚀完成。需要注意在腐蚀过程中不断搅拌三氯化铁溶液,可以使PCB板的腐蚀速度加快。4.2 元器件的焊接 腐蚀好的PCB板除去残留的三氯化铁残液和碳迹后,在有导线的一面刷一层松香。刷松香的作用有两个:一是防止PCB板上的铜线被空气中的氧所氧化;二是在以后的焊接中更容易焊接并提高焊点的可靠性。刷过松香后把板子上有焊盘的地方打孔,打孔需要根据焊盘的大小更换钻头以免焊盘太小,影响焊接的可靠性15。4.3电路组装与调试在实验箱上按各单元电路分别连接主控制器、计数器、数字显示译码器和脉冲信号发生器。然后按照以下步骤进行调试:(1) 脉冲信号发生器的调试,调试振荡电路和分频电路,使输出频率符合设计要求15。(2) 将脉冲信号产生的1024HZ的脉冲送入主控制器的CP端,观察主控制器的状态是否按周期规律规律变化。反复调试,直到准确为止。(3) 将脉冲信号产生的1024HZ的脉冲送入计数器的CP端,接入主控制器的状态信号,并把主控制器的状态转换信号送入主控制器的CP端,观察计数器是否正常计数并进行秒表显示。(4) 把主控制器的状态转换信号接至LED数码管的译码电路,观察6个LED数码管是否按设计要求显示计数。(5) 整机联调,使数字秒表电路按要求正常工作。4.4注意事项4.4.1在EDA实验箱上测试过程芯片的选取必须要于实验箱相一致,否则将会有硬件无法连接的错误。引脚分配时要注意引脚的输入输出关系,否则将无法正常的进行数据传输。跳线的选择,实验箱上做动态显示时必须把静态的跳线拔去,因为该实验箱上静态具有优先权。4.4.2制板过程在做PCB板时注意元件的封装,否则将会有1丢失元件错误例:Component R1 not found;这种错误多为封装错误,应该在Schematic document文档电路图中修改对应的元件封装。2找不到接点的错误。例:NodeR1-2 not found;这种错误为元件引脚标识与元件封装引脚标识不一致,这种情况多发生在自己制作的封装上。在制作封装时需注意引脚标识的一致性。3在元器件布局过程中发现元器件的引脚之间实际该有导线连接上的而布线时却没有连上,这多为画图问题。4.4.3调试过程(1) 设计过程中,一开始由于对EDA并没有学习,对EDA的设计流程缺乏了解,在查阅资料的过程中带有一定的盲目性, 被各种书籍搞得头晕脑涨。(2) 设计初期由于对实验箱的应用范围了解不深入,致使后来在程序下载过程中出现无法匹配的错误,该设计不支持Qurtus2,最后改用MAXPLUS2完成设计,并制作出作品。结论本系统设计用了现在EDA设计手段,基于FPGA采用VHDL语言编程实现数字秒表的设计。运用层次化设计方法,完成各电路模块的连接。本数字秒表可用于体育比赛,计时精度大于1100S,计时器能显示1100S的时间,计时器的最长计时时间为1小时,显示的最长时问为59分5999秒。系统具有简单、工作稳定可靠等优点具有一定的实际意义。开始做设计时总是会犯一些错误,只有经过不停的改错不停的编译得到正确的程序说明了作为软件编程人员是不能粗心大意的,一个程序的质量的高低与你细心与否有着一定的联系。在编程时,我充分使用了结构化的思想,这样程序检查起来也比较方便,调试时也给了我很大方便,只要一个模块一个模块的进行调就可以了,充分体现了结构化编程的优势。在设计中要求我要有耐心和毅力,还要细心,稍有不慎,一个小小的错误就会导致结果的不正确,而对错误的检查要求我要有足够的耐心,通过这次设计和设计中遇到的问题,也积累了一定的经验,对以后从事集成电路设计工作会有一定的帮助。在应用VHDL的过程中让我真正领会到了其并行运行与其他软件顺序执行的差别及其在电路设计上的优越性。用VHDL硬件描述语言的形式来进行数字系统的设计方便灵活,利用EDA软件进行编译优化仿真极大地减少了电路设计时间和可能发生的错误,降低了开发成本,这种设计方法在数字系统设计中发挥越来越重要的作用。参考文献:1 陈跃东.数字秒表系统设计J.自动化与仪器仪表,2006,270(1):6597 .2 廖常初.可编程序控制器应用技术(第三版) M.重庆:重庆大学出版社,2000:85153 3 俞一鸣. Altera可编程逻辑器件的应用与设计M. 北京:机械工业出版社,2007:1332064 周景润.基于Quartus 的FPGA数字系统设计M. 北京:电子工业出版社,2007:212306.5 孟庆辉.EDA技术实用教程M. 北京:国防工业出版社,2008:101169 6 陈林. EDA技术在电子技术基础实验教学中的应用J.信息技术,2003,6(3):581087 谢自美. 电子线路综合设计M. 武汉:华中科技大学出版社,2006:1351688 康华光.电子技术基础(数字部分)M. 北京:高等教育出版社,2000:921449 余孟尝.数字电子技术基础简明教程(第二版)M. 高等教育出版社,1999,5473.10 阎石.数字电子技术基础(第四版) M. 北京:高等教育出版社,1997:202265.11    Li S G, Gao D Y, Nie P Q. Study on multitask management unit MTU of embedded micro processor NCSJ. Acta Aeronautica et Actronautica Sinica, 2000, 21(2):154187.  12    Liu L, Gao D Y, Zhang S B, et al. Design of EM FPU in em-bedded microprocessorJ. Acta Aeronatutica et Astronautica Sinica ,2001,22(4):302319.  13    Yeandel J, Thulborn D, Jones S. An on-line testable UART implemented using IFISC. 15th IEEE VLSI Test at Astronautica Symposium, 1997, 324347.  14    Elmenreich W, Delvai M. Time-triggered communication with UARTsC. 4th IEEE International Workshop on Factory Communi-cation Systems,2002,107121.  15    Gallo R, Delvai M, Elmenreich W, et al. Revision and verification of an enhanced UARTM. IEEE International Workshop on Factory Communication System,2004,115218.  附录library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity clock is port(clk:in std_logic;a: out std_logic_vector(2 downto 0);clr:in std_logic;en:in std_logic;scan:out std_logic_vector(5 downto 0); seg7:out std_logic_vector(6 downto 0); end clock;architecture one of clock issignal qhh,qhl,qmh,qml,qsh,qsl:std_logic_vector(3 downto 0); signal clk1khz,clk1hz,clk2hz:std_logic; signal cnt:integer range 0 to 5;signal data:std_logic_vector(3 downto 0); signal sec:integer range 0 to 99;signal min:integer range 0 to 59;signal hour:integer range 0 to 59; begina<="111"p1:process(clk)variable count:integer range 0 to 2499;beginif clk'event and clk='1' thenif count=2499 then clk1khz<=not clk1khz;count:=0;else count:=count+1;end if;end if;end process p1;p2:process(clk1khz)variable count:integer range 0 to 49;beginif clk1khz'event and clk1khz='1' thenif count=49 then clk1hz<=not clk1hz;count:=0;else count:=count+1;end if;end if;end process p2;p3:process(clk1khz)variable count:integer range 0 to 24;beginif clk1khz'event and clk1khz='1' thenif count=24 then clk2hz<=not clk2hz;count:=0;else count:=count+1;end if;end if;end process p3;p5:process(clk1hz, en,clr,hour,sec,min)beginif clr='0' thenhour<=0;min<=0;sec<=0;elsif en='0' thenhour<=hour;min<=min;sec<=sec;elsif clk1hz'event and clk1hz='1' thenif sec=99 then sec<=0;if min=59 then min<=0;i

    注意事项

    本文(毕业设计(论文)基于FPGA的数字秒表设计.doc)为本站会员(文库蛋蛋多)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开