电子技术综合实验报告 - 图文

更新时间:2024-03-09 18:19:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

电子科技大学光电信息学院

课程设计论文

课程名称 题目名称 电子技术综合实验 基于FPGA设计电子秒表系统

学 号

姓 名

指导老师

起止时间

2013年 9月 10日

摘要

摘 要

本文介绍了使用VHDL开发FPGA的流程,重点介绍了电子秒表的设计。该设计以VHDL作为硬件开发语言,以ISE作为软件开发平台,准确的实现了计数、清零、暂停等功能。使用ModelSim仿真软件对VHDL程序做了仿真,并完成了综合布局布线,最终下载到芯片Spartan-3,测试结果良好。 关键字:FPGA,VHDL,ISE,

ModelSim,电子秒表。 ABSTRACT

ABSTRACT

This paper describes the FPGA using VHDL development process, focusing on the design of electronic stopwatch. The design with VHDL as a hardware development language to ISE as a software development platform, the accurate implementation of the count is cleared, and pause. Using ModelSim VHDL simulation software program to do the simulation, and completed a comprehensive layout, and ultimately downloaded to the chip Spartan-3, tested with good results. Key Words: FPGA, VHDL, ModelSim ,ISE,electronic timer

目录

目录

第一章引言 ....................................................................................................................................... 6

1.1 选题背景 ............................................................................................................................ 6 第二章基于FPGA的VHDL设计流程 ............................................................................................. 7

2.1 概述 ............................................................................................................................... 7 2.2 VHDL语言介绍 ............................................................................................................. 7

2.2.1 VHDL的特点 ..................................................................................................... 7 2.2.2 VHDL开发流程 ................................................................................................. 8 2.3 FPGA开发介绍 ........................................................................................................... 10

2.3.1 FPGA简介 ....................................................................................................... 10 2.3.2 FPGA开发流程 ............................................................................................... 11 2.3.3 SPARTAN-3芯片简介 ...................................................................................... 11

第三章 电子秒表的软件开发环境 ............................................................................................... 13

3.1开发环境 ........................................................................................................................... 13 3.2ModelSim介绍 .................................................................................................................. 13 3.3 ISE介绍 ........................................................................................................................... 14 第四章电子秒表的设计与实现 ..................................................................................................... 15

4.1 任务要求 ..................................................................................................................... 15 4.2 设计目标 ..................................................................................................................... 15 4.3 原理框图 ..................................................................................................................... 16 4.4 各模块的实现 ............................................................................................................. 17

4.4.1 分频器 ............................................................................................................. 17 4.4.2 输入控制电路 ................................................................................................. 18 4.4.3 计时模块 ......................................................................................................... 19 4.4.4 显示模块 ......................................................................................................... 21 4.5 分配引脚和下载实现 ................................................................................................. 23 4.6 测试结果 ..................................................................................................................... 24 第五章 结论 ................................................................................................................................... 25 参考文献 ......................................................................................................................................... 26 致谢................................................................................................................................................. 27 附录................................................................................................................................................. 28

附录1.电子秒表的顶文件 ..................................................................................................... 28 附录2得到100HZ信号 ........................................................................................................ 29 附录3得到1KHZ信号 .......................................................................................................... 30 附录4防抖电路 ..................................................................................................................... 31 附录5 控制电路 .................................................................................................................... 32 附录6 十进制计数器 ............................................................................................................ 33 附录7 六进制计数器 ............................................................................................................ 34 附录8 总的计数程序 ............................................................................................................ 36 附录9 锁存器 ........................................................................................................................ 38 附录10扫描器 ....................................................................................................................... 39 附录11多路选择电路 ........................................................................................................... 40

目录

附录12翻译器 ....................................................................................................................... 44 附录13 电路图 ...................................................................................................................... 45

第一章 引言

第一章引言

1.1 选题背景

随着现代电子科技的发展,电子产品日趋多样化,已经普及到了家庭生活。而高精度的电子秒表作为电子产品的一部分,在人民的日常生活中发挥着重要的作用。

本文主要任务是针对设计的要求,基于FPGA利用硬件描述语言VHDL完成秒表的设计,通过仿真,分析,综合并最终下载到FPGA里面去实现,从而实现计数、清零、暂定等功能。整个系统灵活性较高,可以方便的在开发完成后,扩展其他的功能。该系统具有高速、精确、可靠、抗干扰性强和现场可编程等优点。经实验表明,其测量精度基本能达到108,且系统成本非常低廉。

第三章 电子秒表的软件开发环境

第二章基于FPGA的VHDL设计流程

2.1 概述

数字秒表是数字电路中的一个典型应用,实际的硬件设计用到的器件较多,连线比较复杂,而且会产生比较大的延时,造成测量误差、可靠性差。秒表的设计有传统方法和现代方法,传统的设计方法耗时耗功,设计强度大,且容易出错,设计的质量不一定是最好的。自然我们考虑到现代方法,即EDA。在EDA设计工具中,用的最广泛的是VHDL和VERILOG,当然还有其它的。比较VHDL和VERILOG,在顶层设计方面VHDL优于VERILOG,在门级电路设计方面VERILOG优于VHDL。随着复杂可编程逻辑器件(CPLD)的广泛应用,以EDA工具作为开发手段,运用VHDL语言,将使整个系统大大简化,提高整体的性能和可靠性。本次的频率计设计主要是顶层设计,将秒表的除被测信号的整形部分、键输入部分以外,其余全部在一片FPGA芯片上实现,整个系统非常精简,而且具有灵活的现场可更改性。在不更改硬件电路的基础上,对系统进行各种改进还可以进一步提高系统的性能。该数字频率计具有高速、精确、可靠、抗干扰性强和现场可编程等优点。

2.2 VHDL语言介绍

VHDL语言是一种硬件描述语言(Hardware DescriptionLanguage,HDL),主要用

在可编程逻辑器件(CPLD/FPGA)和专用集成电路(ASIC)两个领域。写好的VHDL 程序既可以下载到可编程逻辑器件中实现电路功能,又可以提交到工厂用于ASIC芯片的流片。

VHDL主要用于描述数字系统的结构、行为、功能和接口。VHDL程序结构的特点

是将一项工程设计或设计实体(可以是元件、电路模块或系统)分成外部和内部两部分,外部即可视部分,对设计实体和端口引脚进行声明;内部即不可视部分,描述模块的功能和算法。VHDL从实体与外部的接口以及实体内部的功能与结构这两个方面来描述实体,设计实体定义成功后就可生成共享功能模块。在顶层综合或其他设计中就可以直接调用这个实体模块。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。

2.2.1 VHDL的特点

VHDL的特点:

第三章 电子秒表的软件开发环境

①具有更强的行为描述能力

VHDL的硬件描述能力很强,可以用于从门级、电路级直至系统级的描述、仿真、

综合和调试,从逻辑功能和行为上描述和设计大规模系统,避开了具体器件内部结构。

②支持层次化和模块化设计

这是运用EDA工具进行电路和系统设计区别于传统设计方法的重要方面,简化了系统设计,优化了系统结构,提高了系统可靠性。 ③可仿真与可综合

仿真是指代码模拟硬件的行为,综合是指将代码转化成可物理实现的电路结构。所有的VHDL语句都能用于仿真,但有一部分VHDL语句不能进行综合、翻译成与之对应的硬件电路,并在逻辑器件上实现。VHDL强大的仿真建模功能使设计者能在系统设计的各个阶段都能十分方便地对数字系统进行仿真验证。 ④系统设计与硬件结构无关

VHDL语言对设计的描述具有相对独立性,设计者可以进行独立的设计,可以不懂硬件的结构,也不必了解最终设计实现的目标器件是什么。 ⑤具有很强的移植能力

VHDL语言描述的设计通用性好,可以被支持VHDL标准的不同工具所支持,具有很强的移植能力。

⑥VHDL本身的生命周期长。

VHDL的硬件描述与工艺无关,不会因工艺变化而过时,而且与工艺技术有关的参数可以用VHDL提供的属性加以描述,当生产工艺改变时,只需修改程序中相应属性参数即可。VHDL语言具有强大的语言功能、硬件描述能力和移植能力及设计与器件无关的特性,并且VHDL语言程序易于共享和复用,因此得到了十分广泛的应用。

2.2.2 VHDL开发流程

采用VHDL语言对硬件电路进行描述的过程应该遵循一定的流程,通常情况下,其流程如图2.2.2-1所示。

第三章 电子秒表的软件开发环境

接收电路设计任务确定电路具体功能划分模块、编写程序VHDL语言程序模拟否符合设计要求是综合、优化和布局布线布局布线后的程序模拟否符合设计要求是生成器件编程文件进行器件编程

图2.2.2-1 VHDL设计电路

从流程图可以看出,采用VHDL语言进行硬件电路设计的开发步骤主要包 括以下几步: ①接受电路设计任务

在进行硬件电路系统设计之前,首先作出总体设计方案,然后给出相应的硬件电路系统设计指标,最后将总体方案中各部分电路设计任务和要求下达给相应的设计部门。

②确定电路具体功能

设计人员要具体分析电路的设计要求,确定其要实现的具体功能。 ③划分模块、编写程序

利用VHDL语言设计硬件电路通常采用自顶向下的设计方法,从电路设计的总体要求出发,先确定顶层模块并进行顶层模块的设计,然后将顶层模块划分为不同的完成一定逻辑功能的子功能模块,最后再详细设计子功能模块。模块划分的好坏将会直接影响到最终的电路设计,设计人员在这一步应该花费一定的时间,保证模块划分的最优化。 @VHDL语言程序模拟

VHDL语言程序模拟即功能仿真,是利用仿真软件对设计的逻辑功能进行验证,可以在设计的早期发现电路设计上的缺陷和错误,节省设计时间、缩短开发周期。

第三章 电子秒表的软件开发环境

⑤综合、优化和布局布线

综合的作用简单的说就将电路设计的较高级抽象层次的VHDL语言描述转化成底 层电路表示。优化的作用是将电路设计的时延缩到最小和有效利用资源。布局布线的作用是将通过综合和优化所得到的逻辑规划到一个逻辑器件的逻辑结构中,然后将各逻辑单元放置到相应优化的位置,最后再进行逻辑单元之间、逻辑单元和I/O之间的布线,以消除布线延迟。 ⑥布局布线后的程序模拟

布局布线后的程序模拟又称后仿真,既验证设计的逻辑功能,又验证时序。如果时序不能满足要求,就需要回到前面的步骤重新进行操作。 ⑦生成器件编程文件和进行器件编程

顾名思义,器件编程是针对可编程逻辑器件进行的操作,具体过程是:将设计描述经过编译、综合、优化和布局布线的结果,经过一定的映射转化成一个器件编程所用的数据文件格式,然后通过烧片器或者下载电缆将数据文件下载到指定的可编程逻辑器件中去的过程。

2.3 FPGA开发介绍 2.3.1 FPGA简介

FPGA是20世纪90年代发展起来的,其密度已超过25X 104 f-JA平,内部门延时小于3ns。这种器件完成某种特定的功能是完全由用户通过软件进行配置和编程来实现的,而且可以反复擦写,它具有芯片逻辑资源丰富、成本低、功耗小等优势。此外,它的另一个突出特点是现场编程,在FPGA工作的现场,可以不通过计算机把存于FPGA外的ROM中的编程数据加载给FPGA,通过简单的设备就能改变FPGA中的编程数据,从而改变FPGA执行的逻辑功能。这种方法也叫做ICR(ha Circuit Reconfiguration,在电路上直接配置)编程。FPGA的这个特点为工程技术人员维修、改进、更新电路逻辑功能提供了方便。

大部分FPGA采用基于SRAM的查找表(LUT,Look.Up.Table)结构。查找表本质上就是一个RAM。若逻辑函数具有11个输入项的话,就需要由输入个数为n、容量为2n个位的RAM单元存放函数值,RAM的地址线起输入线的作用,地址即输入变量,RAM输出为逻辑函数值。每输入一个信号进行逻辑运算就等于输入一个地址进行查表,地址所对应的内容就是输出。

第三章 电子秒表的软件开发环境

2.3.2 FPGA开发流程

图2.3.2-1 FPGA开发流程

对于目标器件为FPGA和CPLD的HDL设计,其工程设计的基本流程如图图2.3.2-1所示。现具体说明如下:

1、文本编辑:用任何文本编辑器都可以进行,也可以用专用的HDL编辑环境。通常VHDL文件保存为.vhd文件

2、功能仿真:将文件调入HDL仿真软件进行功能仿真,检查逻辑功能是否正确(也叫前仿真,对简单的设计可以跳过这一步,只在布线完成以后,进行时序仿真)

3、逻辑综合:将源文件调入逻辑综合软件进行综合,即把语言综合成最简的布尔表达式。逻辑综合软件会生成.edf(edif)的EDA工业标准文件。

4、布局布线:将.edf文件调入PLD厂家提供的软件中进行布线,即把设计好的逻辑安放到PLD/FPGA内。

5、时序仿真:需要利用在布局布线中获得的精确参数,用仿真软件验证电路的时序。(也叫后仿真)

6、编程下载:确认仿真无误后,将文件下载到芯片中

7、硬件测试:硬件测试的目的是为了在更真实的环境中检验HDL设计的运行情况,特别是对于HDL程序设计上不是十分规范,语义上含有一定歧义的程序。

2.3.3 SPARTAN-3芯片简介

本设计用到的FPGA芯片是XILINX公司生产的SPARNTAN-3系列中的xc2s100-6。下面将对该系列做简单的介绍进入ASSP的领域FPGA正在极力将ASSP从电路板上挤出去,并使其失去设计人员的宠爱。但是任何旧式的FPGA器件都无法恰当地

第三章 电子秒表的软件开发环境

替代专用器件。只有Spartan-II FPGA可以做到这一点。Spartan-II系列为设计人员提供了完整的封装。在密度、功能和性能以及运行速度方面都差不多。但是,Spartan-II为解决方案所提供的可编程能力有着巨大的价值,从而使其与ASSP/ASIC器件相比具有了很大的优势。 1、现场升级的灵活性

Spartan-3 FPGA的可编程能力为设计人员带来很大优势。采用的FPGA是标准器件后,您可更快地将产品标准化。因为Spartan器件可进行现场升级,升级就像下载软件一样简单。 2、拥有丰富的逻辑门资源

Spartan-3系列有六款器件,密度高达20万门。丰富的逻辑门资源能让设计者更大限度的发挥。

3、告别ASIC和FPGA间的性能和功能差距

在性能和功能方面,大多数设计人员都会想到ASIC和FPGA间的巨大差距。但是SPARTAN-3消除了这一差距。 4、拥有最多的存储器

片上带存储器是必须的,如果还具有很好的灵活性的话,那么就更为有用了。分布式存储器和块RAM可高效地实现最适合您要求的配置,现时还可采用与片上存储器一样快的外部存储器。 5、方便的时钟管理

如果您面临时钟管理问题,Spartan-3系列的四个高度灵活的DLL可解决您的问题。设计人员可在片上对输入时钟进行倍频或分频,还可驱动板上的多个时钟。

6、提供高性能

今天的数字世界里有许多新的I/O标准要求很苛刻。通过Select I/O技术,Spartan-II器件支持所有这些新I/O标准。I/O速度超过200 MHz。Spartan-II系列丰富的功能、以及高性能和低成本,使其成为多种数据网络应用HDLC控制器解决方案中的首选。Spartan-II也非常适于实现控制和接口逻辑,比如用于将CPU同QDR SRAM连接在一起。 7、器件密度扩展至20万门

随着大量产品的设计变得越来越复杂,对更高密度、更大存储器资源以及更多I/O数量的需求也在增长。Spartan-3系列的XC2S200非常适合,该器件能提供20多万个门、14个RAM块以及284个I/O,并有三种不同的低成本适合大批量生产的封装PQ208、FG256和FG456可供选择。利用XC2S200,可获得比XC2S150多36%的逻辑单元,而且其密度是Spartan或Spartan-XL最大器件密度的五倍。XC2S200包括了支持Spartan-3解决方案获得成功的所有特性。

第三章 电子秒表的软件开发环境

第三章 电子秒表的软件开发环境

本章主要介绍项目中将要用到了一系列软件,包括用于VHDL语言编写和编译的ISE软件和用于程序仿真的仿真软件ModelSim。

3.1开发环境

在考虑各种情况后,在本次设计中,由于选择的FPGA芯片是由Xilinx公司生产的,所以我们主要使用ModelSim和ISE软件进行仿真和综合。

3.2ModelSim介绍

ModelSim是业界最优秀的HDL语言仿真器,它提供最友好的调试环境,是唯一的单内核支持VHDL和Verilog混合仿真的仿真器。是作FPGA/ASIC设计的RTL级和门级电路仿真的首选,它采用直接优化的编译技术、TcFTk技术、单一内核仿真技术,编译仿真速度快,编译的代码与平台无关,便于保护IP核,个性化的图形界面和用户接口,为用户加快调错提供强有力的手段。全面支持VHDL和Verilog语言的IEEE标准,支持C/C++功能调用和调试。ModelSim 专业版,具有快速的仿真性能和最先进的调试能力,全面支持UNIX(包括64位)、Linux和Windows平台。主要特点:RTL和门级优化,本地编译结构,编译仿真速度快;单内核VHDL和Verilog混合仿真;源代码模版和助手,项目管理;集成了性能分析、波形比较、代码覆盖等功能;数据流ChaseX;Signal Spy;C和Tcl/Tk接121,C调试。是业界唯一单一内核支持VHDL、Verilog HDL和SystemC混合仿真的仿真器。同时也支持业界最广泛的标准如Verilog 2001、

SystemVerilog等,内部集成了用于C/C++,PLI/FLI和SystemC的集成C调试器。支持众多的ASIC和FPGA厂家库,可以用于FPGA和ASIC设计的RTL级和门级电路仿真。ModelSiml8J最大的特点是其强大的调试功能:先进的数据流窗121,可以迅速追踪到产生不定或者错误状态的原因;性能分析工具帮助分析性能瓶颈,加速仿真;代码覆盖率检查确保测试的完备;多种模式的波形比较功能;先进的Signal Spy功能,可以方便地访问VHDL或者VHDL和Verilog混合设计中的底层信号;支持加密IP;可以实现与Matlab的Simulink的联合仿真。ModelSim

分几种不同的版本:SE、PE、LE和OEM,其中SE是最高级的版本而集成在Actel、Atmel、Altera、Xilinx以及Lattice等FPGA厂商设计工具中的均是其OEM版本。SE版和OEM版在功能和性能方面有较大差别,比如对于大家都关心的仿真速度问题,以Xilinx公司提供的OEM版本ModelSim XE为例,对于代码少于40000行的设计,ModelSim SE比ModelSim XE要快10倍;对于代码超过40000行的设计,ModelSim SE要比ModelSimXE快近40倍。

第三章 电子秒表的软件开发环境

3.3 ISE介绍

ISEt是Xilinx公司提供的集成化FPGA开发软件,它的主要功能包括设计 输入、综合、仿真、实现和下载。 (1)设计输入

ISE软件提供的设计输入工具包括用于HDL代码输入和报告查看的ISE文本编辑器(TextEditor),用于原理图编辑的工具ECS(Engineering CaptureSystem),用于P CORE的COREGenerator,用于状态机设计的StateCAD,以及用于约束文件编辑的Constraint Editor等。 (2)综合

ISE的综合工具不但包括了Xilinx自身提供的综合工具xsr,同时还可以集成MentorGraphics公司的LeonardoSpectrum和Synplicity公司的Synplify。 (3)仿真

ISE本身自带了图形化波形编辑功能的仿真工具HDL Bencher,同时又提供了使用ModelTechnology公司的ModelSim进行仿真的接口。 (4)实现

ISE的实现功能包括了翻译(Translate)、映射(Map)、布局布线(Place andRoute)等。 (5)下载

下载功能包括了BitGen,用于将布局布线后的设计文件转换为比特流(Bitstream)文件。还包括了iMPACT功能,用于进行设备配置和通信,控制将程序烧写到FPGA芯片中去。

使用ISE进行FPGA开发大致可以分为3个步骤。 (1)设计输入和仿真 设计输入(Design Entry)是指以HDL代码、原理图、波形图以及状态机的形式输入设汁源文件,而设计仿真(Simdmion)是指通过仿真工具对设计的整体模块或局部模块进行仿真来检验设计的功能和性能。 (2)用户约束条件、综合和实现 用户约束条件(User Constraints)的作用是对综合、实现过程进行控制,满足速度、面积、引脚位置等需求。编辑约束条件又包括了4个子项,意义分别为:创建时间约束、配置引脚、

创建面积约束、以文本方式编辑约束。

综合(Synthesize)是FPGA设计流程中的重要环节,综合结果的优劣直接影响到设计的最终性能。ISE自带的综合工具是XST,同时它也支持Synplify/Synplify Pro等第三方综合工具,但是由于Xilinx对于其器件的底层最为了解,所以使用XST综合往往会得到比较满意的结果。综合包含了3个子项,意义分别为:查看综合报告、查看综合器件的RTL级原理图和检查语法。实现(Implementation)过程也包含了3个子项,.ImplementDesign项所对应的子项,意义分别是:翻译、映射和布局布线。需要注意,进行实现步骤之前必须进行约束条件的编辑,否则实现可能会出错。 (3)硬件编程

硬件编程(Programming)是指生成编辑比特流文件bit,并将其下载到FPGA芯片内部的过程。硬件编程对应图2--5所示的Generate Programming File项。

第四章 电子秒表的设计与实现

第四章电子秒表的设计与实现

4.1 任务要求

本课题核心任务是完成基于FPGA利用VHDL语言设计一个数字秒表的设计,仿真,下载实现并实际测量效果,同时要熟悉和掌握Spartan-II这块板子的各种性能,并用MultiSim仿真,PROTEL作原理图以及PCB板等。数字秒表的相关技术指标如下:

1、跑表精度为0.01秒

2、跑表计时范围为:1小时

3、设置Start/Stop、Split/Reset两个按钮,按钮具体作用如下: 初始状态:显示00’00’’00;

计时状态:按一下Start/Stop,开始计时,最大值为59’59’’99;

暂停状态:当系统处于计时状态时,按一次Start/Stop, 则暂停计时,再次按则计时继续;

锁存状态:当系统处于计时状态时,过程中按一次Split/Reset, 则显示保留在当前状态,继续计时,再次按Split/Reset,,则显示恢复与计时同步; 清零状态:当系统处于计时状态时,按一次Split/Reset,则计时清零。 4、显示工作方式:用六位BCD七段数码管显示读数。

4.2 设计目标

利用FPGA芯片设计电子秒表的目标是:设计一款可以由用户自由控制,可独立完成计时、暂停计时、暂停显示、清零等功能的电子秒表。通过 Start/Stop 和 Split/Reset两个按键控制四个状态的交替运行,具体指标如下: 1、跑表精度为0.01秒 2、跑表计时范围为:1小时

3、设置Start/Stop、Split/Reset两个按钮,按钮具体作用如下: 初始状态:显示00’00’’00;

计时状态:按一下Start/Stop,开始计时,最大值为59’59’’99;

暂停状态:当系统处于计时状态时,按一次Start/Stop, 则暂停计时,再次按则计时继续;

锁存状态:当系统处于计时状态时,过程中按一次Split/Reset, 则显示保留在

本文来源:https://www.bwwdw.com/article/goua.html

Top