基于FPGA的数字秒表设计.doc
《基于FPGA的数字秒表设计.doc》由会员分享,可在线阅读,更多相关《基于FPGA的数字秒表设计.doc(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、. .基于FPGA的数字秒表设计摘要:该设计是用于体育比赛的数字秒表,基于FPGA在Quartus II 9.0sp2软件下应用VHDL语言编写程序,采用ALTRA公司CycloneII系列的EP2C8Q208芯片进展了计算机仿真,并给出了相应的仿真结果。本设计有效的克制了传统的数字秒表的缺点采用EDA技术采取自上而下的设计思路。绘制出了具体的逻辑电路,最后又通过硬件上对其进展调试和验证。该电路能够实现很好的计时功能,计时精度高,最长计时时间可达一个小时。 关键字:数字秒表;EDA;FPGA;VHDL;Quartus IIThe design of digital stop watch bas
2、ed 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 pany for puter simulation and at the same time showing the corresponding si
3、mulation result. This design effectively overes 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
4、,has hightiming precision,and the longest timing time could reach an hour.KeyWords: Digital stop watch;EDA;FPGA;VHDL;MAX Plus引言 数字秒表是日常生活中比拟常见的电子产品,其设计也是EDA技术中最根本的设计实验之一1。当今社会是数字化的社会,是数字集成电路广泛应用的社会。数字集成电路本身在不断进展更新换代,随着微电子技术的开展,设计与制造集成电路的任务已不完全由半导体厂商来独立承当。系统设计师更愿意自己设计专业集成电路(ASIC)芯片,而且希望设计周期尽可能短,最好在实验
5、室里就能设计出适宜的ASIC芯片并且立即投入实际应用之中,因而出现了现场可编程器件2FPLD。现场可编程门阵列FPGA即属其中应用最广泛的一种。超高速硬件描述语言VHDL,是对数字系统进展抽象的行为与功能描述到具体的内部线路构造描述,利用EDA工具可以在电子设计的各个阶段、各个层次进展计算机模拟验证,保证设计过程的正确性,可大大降低设计本钱,缩短设计周期3。本文介绍的数字秒表,利用基于VHDL的EDA设计工具,采用大规模可编程逻辑器件FPGA,通过设计芯片来实现系统功能。给出了顶层电路图,和各模块的设计.增加了消除抖动的控制方法,消除了开关按键的机械抖动.通过编辑、编译和器件编程, 并将编程器
6、文件下载到SE-5型EDA实验开发板上4,经实际电路测试验证,到达了预期的设计要求,显示结果准确无误。概述在科技高度开展的今天,集成电路和计算机应用得到了高速开展。尤其是计算机应用的开展。它在人们日常生活已逐渐崭露头角。大多数电子产品多是由计算机电路组成,如:手机、mp3等。而且将来的不久他们的身影将会更频繁的出现在我们身边。各种家用电器多会实现微电脑技术。电脑各局部在工作时多是一时间为基准的。本文就是基于计算机电路的时钟脉冲信号、状态控制等原理设计出的数字秒表1。秒表在很多领域充当一个重要的角色。在各种比赛中对秒表的准确度要求很高,尤其是一些科学实验。他们对时间准确度到达了几纳秒级别。1.1
7、设计要求(1)能对0秒59分59.99秒X围进展计时,显示最长时间是59分59秒;(2) 计时精度到达10ms;(3) 设计复位开关和启停开关,复位开关可以在任何情况下使用,使用以后计时器清零,并做好下一次计时的准备。1.2数字秒表设计的目的本次设计的目的就是在掌握EDA实验开发系统的初步使用根底上,了解EDA技术,对计算机系统中时钟控制系统进一步了解,掌握状态机工作原理,同时了解计算机时钟脉冲是怎么产生和工作的。在掌握所学的计算机组成与构造课程理论知识时。通过对数字秒表的设计,进展理论与实际的结合,提高与计算机有关设计能力,提高分析、解决计算机技术实际问题的能力。通过课程设计深入理解计算机构
8、造与控制实现的技术,到达课程设计的目标。1.3 EDA技术EDA是指以计算机为工作平台,融合了应用电子技术、计算机技术、智能化技术的最新成果而开发出的电子CAD通用软件包,它根据硬件描述语言HDL完成的设计文件,自动完成逻辑编译、化简、分割、综合、优化、布局布线及仿真,直至完成对于特定目标芯片的适配编译、逻辑映射和编程下载等工作5。目前EDA主要辅助进展三个方面的设计工作:IC设计、电子电路设计和PCB设计。没有EDA技术的支持,想要完成超大规模集成电路的设计制造是不可想象的;反过来,生产制造技术的不断进步又必将对EDA技术提出新的要求6。1.4硬件描述语言VHDL1.4.1 VHDL的简介V
9、HDL语言是一种用于电路设计的高级语言。它在80年代的后期出现。最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用X围较小的设计语言 。但是,由于它在一定程度上满足了当时的设计需求,于是他在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设计环境,或宣布自己的设计工具可以
10、和VHDL接口。此后VHDL在电子设计领域得到了广泛的承受,并逐步取代了原有的非标准的硬件描述语言。1993年,IEEE对VHDL进展了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本,简称93版。现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。有专家认为,在新的世纪中,VHDL于Verilog语言将承当起大局部的数字系统设计任务。1.4.2 VHDL语言的特点VHDL的程序构造特点是将一项工程设计,关于用VHDL和原理图输入进展
11、CPLD/FPGA设计的粗略比拟:在设计中,如果采用原理图输入的设计方式是比拟直观的。你要设计的是什么,你就直接从库中调出来用就行了。这样比拟符合人们的习惯。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外局部的概念是VHDL系统设计的根本点。应用VHDL进展工程设计的优点是多方面的4。(1) 与其他的硬件描述语言相比,VHDL具有更强的行为描述能力,从而决定了他成为系统设计领域最正确的硬件描述语言。强大的行为描述能力是避开具体的器件构造,从逻辑行为上描述和设计大规模电子系统的重要保证。(2) VHDL丰富的仿真语句和库函数,使得
12、在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进展仿真模拟。(3)VHDL语句的行为描述能力和程序构造决定了他具有支持大规模设计的分解和已有设计的再利用功能。符合市场需求的大规模系统高效,高速的完成必须有多人甚至多个代发组共同并行工作才能实现。(4) 对于用VHDL完成的一个确定的设计,可以利用EDA工具进展逻辑综合和优化,并自动的把VHDL描述设计转变成门级网表。(5) VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的构造,也不必管理最终设计实现的目标器件是什么,而进展独立的设计。1.4.3 VHDL的设计流程它主要包括以下几个步骤:(1) 文本编辑:用任何文本编辑
13、器都可以进展,也可以用专用的HDL编辑环境。通常VHDL文件保存为.vhd文件,Verilog文件保存为.v文件(2)功能仿真:将文件调入HDL仿真软件进展功能仿真,检查逻辑功能是否正确也叫前仿真,对简单的设计可以跳过这一步,只在布线完成以后,进展时序仿真(3)逻辑综合:将源文件调入逻辑综合软件进展综合,即把语言综合成最简的布尔表达式。逻辑综合软件会生成.edf或.edif 的EDA工业标准文件。(4)布局布线:将.edf文件调入PLD厂家提供的软件中进展布线,即把设计好的逻辑安放PLD/FPGA内。(5)时序仿真:需要利用在布局布线中获得的准确参数,用仿真软件验证电路的时序。也叫后仿真 通常
14、以上过程可以都在PLD/FPGA厂家提供的开发工具。(6)器件编程2.系统的设计流程2.1 设计规划本系统设计采用自顶向下的设计方案,系统的整体组装设计原理图如图1所示,它主要由控制模块、时基分频模块,计时模块和显示模块四局部组成。各模块分别完成计时过程的控制功能、计时功能与显示功能。图1 系统组成图图 2 系统设计框图如图2所示,计时控制器的作用是控制计时。计时控制器的输入信号是启动,暂停和清零。为符合惯例,将启动和暂停功能设置在同一个按键上,按一次是启动,按第二次是暂停,按第三次是继续。所以计时控制器共有2个开关输入信号,即启动/暂停和清零信号。计时电路的输入信号为4o96HZ时钟、计数允
15、许,保持和清零信号,输出为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
16、.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 clke
17、vent 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 sstartevent and sstart=1 THEN asstart=not asstart;END IF;产生10ms周期的脉冲,用于计时电路时钟信号END PROCESS clkss_label;startstop=asstart;clks=count
18、(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_ED
19、GE(CLK)THEN IF COUNT=1001THEN 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;
20、ENTITY CDU10 IS PORT( CLK:IN STD_LOGIC; CLR,EN:IN STD_LOGIC; :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
21、 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_LOGI
22、C; 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_VE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FPGA 数字 秒表 设计
限制150内