FPGA频率计实验报告..doc

上传人:zf 文档编号:30779770 上传时间:2023-08-30 格式:DOC 页数:35 大小:992.67KB
下载 相关 举报
FPGA频率计实验报告..doc_第1页
第1页 / 共35页
FPGA频率计实验报告..doc_第2页
第2页 / 共35页
FPGA频率计实验报告..doc_第3页
第3页 / 共35页
FPGA频率计实验报告..doc_第4页
第4页 / 共35页
FPGA频率计实验报告..doc_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

FPGA频率计实验报告..doc

《FPGA频率计实验报告..doc》由会员分享,可在线阅读,更多相关《FPGA频率计实验报告..doc(35页珍藏版)》请在冰豆网上搜索。

FPGA频率计实验报告..doc

数字频率计实验报告

数字频率计

用VHDL语言设计实现基于FPGA的数字频率计

学校:

学院:

姓名:

学号:

实验室:

实验日期:

第1页共3页

2

摘要

摘要

本文介绍了一种基于FPGA的数字频率的实现方法。

该设计采用硬件描述语言VHDL,在软件开发平台ISE上完成。

该设计的频率计有三种闸门选择,分别是1s、0.1s、0.01s,能较准确的测量频率在10Hz到10MHz之间的信号。

使用ModelSim仿真软件对各个模块的VHDL程序做了仿真,对各个模块的功能进行了测试,并完成了综合布局布线,最终下载到芯片上取得了良好测试效果。

关键词:

VHDL、频率计、FPGA、测量

第2页共3页

引言

目录

第一章引言 1

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

2.1概述 2

2.2VHDL语言和VerilogHDL介绍 2

2.2.1VHDL的特点 3

2.3FPGA介绍 4

第三章数字频率计的软件开发环境 5

3.1开发环境 5

3.2ModelSim介绍 5

3.3ISE介绍 5

第四章数字频率计的设计与实现 7

4.1任务要求 7

4.2测量原理 7

4.3设计方案与系统需求 7

4.4各模块的功能及实现 9

4.4.1分频器 9

4.4.2闸门选择器 10

4.4.3测频控制器 11

4.4.4计数器 12

4.4.5锁存器 13

4.4.6显示控制系统 14

4.5分配引脚和下载实现 15

4.6误差分析 16

第五章实验结论及总结 19

参考文献.....................................................................................................................20

致谢 21

附录 22

第3页共3页

第一章、引言

硬件描述语言(英文:

HardwareDescriptionLanguage,简称:

HDL)是电子系统硬件行为描述、结构描述、数据流描述的语言。

利用这种语言,数字电路系统的设计可以从顶层到底层(从抽象到具体)逐层描述自己的设计思想,用一系列分层次的模块来表示极其复杂的数字系统。

以硬件描述语言(Verilog或VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至FPGA上进行测试,是现代IC设计验证的技术主流。

这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。

在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flip-flop)或者其他更加完整的记忆块。

在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此,频率的测量就显得更为重要。

所谓“频率”,就是周期信号在单位时间(秒)内变化的次数,若在一定的时间间隔T内计得某周期信号的重复变化次数为N,则该信号的频率为。

测量频率的方法有多种,其中电子计数器测量频率具有精度高、使用方便、测量迅速,以及便于实现测量过程自动化等优点,是频率测量的重要手段之一。

电子计数器测频有两种方式:

一是直接测频法,即在一定闸门时间内测量被测信号的脉冲个数;二是间接测频法,如周期测频法。

直接测频法适用于高频信号的频率测量,间接测频法适用于低频信号的频率测量。

本文使用的是直接测频法。

1

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

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

2.1概述

频率计的基本原理是用一个频率稳定度高的频率源作为基准时钟,对比测量其他信号的频率。

通常情况下计算每秒内待测信号的脉冲个数,此时我们称闸门时间为1秒。

闸门时间也可以大于或小于一秒。

闸门时间越长,得到的频率值就越准确,但闸门时间越长则没测一次频率的间隔就越长。

闸门时间越短,测的频率值刷新就越快,但测得的频率精度就受影响。

本文中,数字频率计是用数字显示被测信号频率的仪器,限于实验条件等,被测信号只能是方波。

数字频率计是数字电路中的一个典型应用,实际的硬件设计用到的器件较多,连线比较复杂,而且会产生比较大的延时,造成测量误差、可靠性差。

频率计的设计有传统方法和现代方法,传统的设计方法耗时耗功,设计强度大,且容易出错,设计的质量不一定是最好的。

自然我们考虑到现代方法,即二十世纪八十年代兴起的电子设计自动化技术,英文为ElectronicDesignAuto,缩写为EDA。

在EDA设计工具中,用的最广泛的是VHDL和VERILOG,当然还有其它的,例如sopc。

比较VHDL和VERILOG,在顶层设计方面VHDL优于VERILOG,在门级电路设计方面VERILOG优于VHDL。

随着复杂可编程逻辑器件(CPLD)的广泛应用,以EDA工具作为开发手段,运用VHDL语言,将使整个系统大大简化,提高整体的性能和可靠性。

本次的频率计设计主要是顶层设计,目的是设计6位十进制频率计,学习常用的数字系统设计方法。

采用VDHL编程设计实现的数字频率计,除被测信号的整形部分、键输入部分以外,其余全部在一片FPGA芯片上实现,整个系统非常精简,而且具有灵活的现场可更改性。

在不更改硬件电路的基础上,对系统进行各种改进还可以进一步提高系统的性能。

该数字频率计具有高速、精确、可靠、抗干扰性强和现场可编程等优点。

2.2VHDL语言和VerilogHDL介绍

VHDL诞生于1982年。

在1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。

自IEEE公布了VHDL的标准版本,IEEE-1076(简称87版)之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。

此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。

而VerilogHDL是由GDA(GatewayDesignAutomation)公司的PhilMoorby在1983年末首创的,最初只设计了一个仿真与验证工具,之后又陆续开发了相关的故障模拟与时序分析工具。

1985年Moorby推出它的第三个商用仿真器Verilog-XL,获得了巨大的成功,从而使得VerilogHDL迅速得到推广应用。

1989年CADENCE公司收购了GDA公司,使得VerilogHDL成为了该公司的独家专利。

1990年CADENCE公司公开发表了VerilogHDL,并成立LVI组织以促进VerilogHDL成为IEEE标准,即IEEEStandard1364-1995。

由于GDA公司本就偏重于硬件,所以不可避免地VerilogHDL就偏重于硬件一些,故VerilogHDL的底层统合做得非常好。

而VHDL的逻辑综合就较之VerilogHDL要出色一些。

所以,VerilogHDL作重强调集成电路的综合,而VHDL强调于组合逻辑的综合。

2.2.1VHDL的特点

VHDL是一种用普通文本形式设计数字系统的硬件描述语言,主要用于描述数字系统的结构、行为、功能和接口,可以在任何文字处理软件环境中编辑。

除了含有许多具有硬件特征的语句外,其形式、描述风格及语法十分类似于计算机高级语言。

VHDL程序将一项工程设计项目(或称设计实体)分成描述外部端口信号的可视部分和描述端口信号之间逻辑关系的内部不可视部分,这种将设计项目分成内、外两个部分的概念是硬件描述语言(HDL)的基本特征。

当一个设计项目定义了外部界面(端口),在其内部设计完成后,其他的设计就可以利用外部端口直接调用这个项目。

VHDL的主要特点如下:

 

(1)作为HDL的第一个国际标准,VHDL具有很强的可移植性。

 

(2)具有丰富的模拟仿真语句和库函数,随时可对设计进行仿真模拟,因而能将设计中的错误消除在电路系统装配之前,在设计早期就能检查设计系统功能的可行性,有很强的预测能力。

 

(3)VHDL有良好的可读性,接近高级语言,容易理解。

 

(4)系统设计与硬件结构无关,方便了工艺的转换,也不会因工艺变化而使描述过时。

 (5)支持模块化设计,可将大规模设计项目分解成若干个小项目,还可以把已有的设计项目作为一个模块调用。

 

(6)对于用VHDL完成的一个确定设计,可以利用EDA工具进行逻辑综合和优化,并能自动地把VHDL描述转变成门电路级网表文件。

 

(7)设计灵活,修改方便,同时也便于设计结果的交流、保存和重用,产品开发速度快,成本低。

 

VHDL是一种快速的电路设计工具,其功能涵盖了电路描述、电路合成、电路仿真等设计工作。

VHDL具有极强的描述能力,能支持系统行为级、寄存器传输级和逻辑门电路级三个不同层次的设计,能够完成从上层到下层(从抽象到具体)逐层描述的结构化设计思想。

 

用VHDL设计电路主要的工作过程是:

 1)编辑。

用文本编辑器输入设计的源文件(为了提高输入效率,可用某些专用编辑器)。

 2)编译。

用编译工具将文本文件编译成代码文件,并检查语法错误。

 3)功能仿真(前仿真)。

在编译前进行逻辑功能验证,此时的仿真没有延时,对于初步的功能检测非常方便。

 

4)综合。

将设计的源文件用自动综合工具由语言转换为实际的电路图(门电路级网表),但此时还没有在芯片中形成真正的电路,就好像是把设计者脑海中的电路画成了原理图。

 

5)布局、布线。

用已生成的网表文件,再根据CPLD(或FPGA)器件的容量和结构,用自动布局布线工具进行电路设计。

首先根据网表文件内容和器件结构确定逻辑门的位置,然后再根据网表提供的门连接关系,把各个门的输入输出连接起来,类似于设计PCB(印刷电路板)时的布局布线工作。

最后生成一个供器件编程(或配置)的文件,同时还会在设计项目中增加一些时序信息,以便于后仿真。

 

6)后仿真(时序仿真)。

这是与实际器件工作情况基本相同的仿真,用来确定设计在经过布局、布线之后,是否仍能满足设计要求。

如果设计的电路时延满足要求,则可以进行器件编程(或配置)。

2.3FPGA介绍

FPGA(Field-ProgrammableGateArray),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。

它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

传统的电路设计过程是:

先画原理图、把原理图绘制成印制电路板图、再制版、安装、调试。

有了FPGA,我们只需要在计算机上绘出原理图,再运行相应的软件,就可把所设计的逻辑电路在FPGA中实现。

所有步骤均可自动完成。

电子设计工程师自己设计专用集成电路成为了一件很容易的事情。

FPGA作为专用集成电路(ASIC)概念上的一个新型范畴和门类,以其高度灵活的用户现场编程方式,现场定义高容量数字单片系统的能力,能够重复定义、反复改写的新颖功能,为复杂数字系统设计、研制以及产品开发提供了有效的技术手段。

电子应用设计工程师应用FPGA技术不仅可避免通常ASIC单片系统设计周期长,前期投资风险大的弱点,而且克服了过去板级通用数字电路应用设计的落后,繁琐和不可靠性。

目前FPGA的两个重要发展与突破是,大多数厂商在其高端器件上都提供了片上的处理器(如CPU、DSP)等硬核(HardCore)或固化核(FixedCore)。

比如Xilinx的VirtexIIPro芯片可以提供PowerPC,而Altera的Stratix、Excalibur等系列芯片可以提供Nios、DSP和Arm等模块。

在FPGA上集成微处理器,使SOPC设计更加便利与强大。

另一个发展是在不同器件商推出的高端芯片上大都集成了高速串行收发器,一般能够达到3Gb/s以上的数据处理能力,在Xilinx、Altera、Lattice都有相应的器件型号提供该功能。

这些新功能使FPGA的数据吞吐能力大幅度增强。

4

第三章、数字频率计的软件开发环境

第三章、数字频率计的软件开发环境

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

3.1开发环境

随着可编程器件纷纷超越百万门级,设计者面临的产品性能与设计效率的挑战也越来越大。

设计者必须合理选择各EDA厂家提供的加速设计的工具软件,这样才能在较短的时间内设计出高效稳定的产品。

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

3.2ModelSim介绍

Mentor公司的ModelSim是业界最优秀的HDL语言仿真软件,它能提供友好的仿真环境,是业界唯一的单内核支持VHDL和Verilog混合仿真的仿真器。

它采用直接优化的编译技术、Tcl/Tk技术、和单一内核仿真技术,编译仿真速度快,编译的代码与平台无关,便于保护IP核,个性化的图形界面和用户接口,为用户加快调错提供强有力的手段,是FPGA/ASIC设计的首选仿真软件。

ModelSim完全支持VHDL和Verilog标准;采用直接编辑技术,大大提高HDL编译和仿真速度。

还可以利用ModelSim调用设计文件进行仿真分析。

在调试环境中,设计者可以通过ModelSim的快速调试步骤以及对各种信号的监控功能(无论信号处于VHDL层,还是处于混合语言层)使仿真的执行过程形象直观化,帮助设计者及时发现漏洞,缩短设计周期。

ModelSim最大的特点是其强大的调试功能:

先进的数据流窗口,可以迅速追踪到生产不定或者错误状态的原因;性能分析工具帮助分析性能瓶颈,加速仿真;代码覆盖率检查确保测试的完备;多种模式的波形比较功能;先进的SignalSpy功能,可以方便地访问VHDL或者VHDL和Verilog混合设计中的底层信号;支持加密IP;可以实现与Matlab的Simulink的联合仿真。

3.3ISE介绍

ISE的主要功能包括设计输入、综合、仿真、实现和下载,涵盖了可编程逻辑器件开发的全过程,从功能上讲,完成CPLD/FPGA的设计流程无需借助任何第三方EDA软件。

下面简要说明各功能的作用:

设计输入:

ISE提供的设计输入工具包括用于HDL代码输入和查看报告的ISE文本编辑器(TheISETextEditor),用于原理图编辑的工具ECS(TheEngineeringCaptureSystem),用于生成IPCore的CoreGenerator,用于状态机设计的StateCAD以及用于约束文件编辑的ConstraintEditor等。

综合:

ISE的综合工具不但包含了Xilinx自身提供的综合工具XST,同时还可以内嵌MentorGraphics公司的LeonardoSpectrum和Synplicity公司的Synplify,实现无缝链接。

仿真:

ISE本身自带了一个具有图形化波形编辑功能的仿真工具HDLBencher,同时又提供了使用ModelTech公司的Modelsim进行仿真的接口。

实现:

此功能包括了翻译、映射、布局布线等,还具备时序分析、管脚指定以及增量设计等高级功能。

下载:

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

31

第四章、数字频率计的设计与实现

第四章、数字频率计的设计与实现

4.1任务要求

本实验核心任务是完成基于FPGA利用VHDL语言设计一个数字频率计的设计,仿真,下载实现并实际测量效果。

具体要求是:

频率测量范围为10Hz~10MHz,用6只数码管以kHz为单位显示测量结果;有三个带锁按键开关(任何时候都只会有一个被按下)用来选择1S、0.1S和0.01S三个闸门时间中的一个,若按下两个及以上或者不选择则随意显示;有两只LED,一只的亮灭用来显示闸门信号高低电平,另一只当计数器溢出时做溢出指示。

4.2测量原理

频率计的基本原理是用一个频率稳定度高的频率源作为基准时钟,对比测量其他信号的频率。

通常情况下计数每秒内待测信号的脉冲个数,此时我们称闸门时间为1S,闸门时间也可以大于或小于1S。

闸门时间越长,得到的频率值就准确,但闸门时间越长则每测一次频率的间隔就越长;闸门时间越短,测得频率值刷新就越快,但测得的频率精准度就受影响。

4.3设计方案与系统需求

被测信号输入

闸门

计数器

放大整形

门控电路

石英

震荡器

锁存器

分频器

闸门选择

扫描显示

控制子系统

(包括显示译码

和扫描控制)

闸门选择开关

Gate

Over

被测

频率

显示

GATE

CLEAR

LATCH

1Hz

10Hz

100Hz

a,b,c,d,e,f,g,dp

selC,selB,selA

时间或频率

基准信号

48MHz

1kHz

小数点

位置

实验板上的显示电路

由电子计数器频率测量基本原理可知,测频功能实现需要脉冲形成电路、闸门、十进制电子计数器、门控电路、时基信号发生器。

图4.1实验原理框架

从图4.1中可知,所设计的频率计需要6个模块,分别是:

分频器、闸门选择器、测频控制器,计数器、锁存器以及显示模块。

核心板硬件结构如下图所示:

结合实际实验板的硬件条件,可以利用EDA软件和VHDL语言在EEC-FPGA实验板上完成频率计的数字部分的设计与实现。

Fpga实验板如图4-2所示:

图4.2EDA实验板

从图4.1和图4.2可知,如果以此实验板做为频率计的硬件实现,可以使用50Mhz的有源晶振作为时基信号发生器,但是测量需要的时基信号为1S、0.1S、0。

01S,因此需要进行分频,另外计数器的输出结果可以使用数码管显示,需要一个1KHz的扫描信号,也可由晶振分频得到,脉冲形成电路可以使用模拟电路,另外为了使数码管能够稳定显示,在输出之前加一个锁存器,闸门选择可以使用实验板上的拨码开关得到。

至此可以确定,可以在EEC-FPGA实验板实现的数字电路部分为分频器、计数器、锁存器、测频控制、闸门选择、数码管扫描显示控制子系统,这些模块之间的关系如图4.1所示。

放大整形电路(模拟电路):

放大被测信号并将其整形为方波脉冲,该方波脉冲经过闸门后送计数器计数。

石英振荡器:

产生一个频率高度稳定的信号送分频器分频。

分频器:

对石英振荡器产生的信号进行分频,得到100Hz、10Hz和1Hz三个基准频率;同时产一个1000Hz的信号作为扫描显示译码模块的时钟,以产生扫描选择信号。

门控电路:

产生控制信号门控电路在时间基准信号的控制下产生门控信号GATE,门控信号有效时,闸门开通,计数器计数。

当门控信号停止作用时,闸门关断。

为了使计数结果能够在显示器上稳定的显示,闸门关断后门控电路要产生一个锁存命令Latch使锁存器锁存计数结果。

在计数结果锁存以后,下一次计数开始以前,门控电路还要产生一个清零信号CLEAR将计数器清零,以便重新计数。

4.4各模块的功能及实现

4.4.1分频器

分频器的功能是提供标准闸门时间控制信号以精确控制计数器的开闭。

由于闸门时间只有1S,0.1S,0.01S三档,且在数码管显示时采用动态扫描的方法,需要产生1kHz的扫描信号,由于本设计将下载到开发板上,其提供的标准时间是50MHz晶振,所以要对系统的50MHz时钟信号进行分频,以产生符合要求的各频率信号:

先由系统时钟50MHz分频出1kHz作为数码管显示的动态扫描信号,再由1kHz分频出100Hz产生0.01S的计数闸门信号脉冲,由100Hz分频出10Hz产生0.1S的计数闸门信号脉冲,由10Hz分频出1Hz产生1S的计数闸门信号脉冲。

同时给整个系统定义系统复位。

由以上分析,可分频器模块如下图所示:

这个模块实现了把50MHz的晶振信号分成了我们需要的四个信号1Hz,10Hz,100Hz,1KHz。

因为仿真图需经过50000个周期clk_1kHz才能出现一次上升沿,无法准确显示50000次,故而仿真图略。

4.4.2闸门选择器

该模块的功能是根据开关sw(2:

0)的不同输入,实现对输入的几个闸门信号fdiv_in、fdiv_in10、fdiv_in100的手动选择,输出被选中的闸门信号fdiv_out和小数点的控制信号dp_loc(2:

0)。

生成的模块如下图所示:

该模块有四个输入端口,其中sw(2:

0)为选择端,fdiv_in、fdiv_in10、fdiv_in100为被选时基信号输入端。

当sw为001时,1hz的输入时基信号被选中,被赋值给输出端口fdiv_out输出,此时dp_loc为011;当sw为010时,10hz时基信号被选中,被赋值给输出端口fdiv_out输出,此时dp_loc为010;最后当sw为100时,100hz时基信号被选中,被赋值给输出端口fhz输出,此时dp_loc为001。

仿真图如图4-8所示:

4.4.3测频控制器

测频控制器是控制整个频率计各模块进行时序工作的控制装置,它对输入的标准时钟信号fdiv_in进行变换,产生我们所需要的三个信号闸门信号counter_en_out,锁存信号latch_en_out以及清零信号count_reset_out。

其生成的模块如下图所示:

测频控制器的计数使能信号fdiv_in能产生一个周期信号,并对频率计的计数器使能端进行同步控制。

当fdiv_in为高电平时,允许计数,为低电平时停止计数,并保持其所计得脉冲数。

在停止计数期间,首先需要一个锁存信号latch_en_out的上升沿将计数器在前一秒的计数值锁存进24位锁存器latch_en_out中,并经过显示模块显示。

锁存信号之后,必须有一清零信号count_reset_out对计数器清零,为下一秒的计数操作准备。

测频控制信号发生器的仿真工作时序如下图所示。

如果闸门信号fdiv_in的频率取100Hz,那么信号fdiv_in的脉宽恰好为0.01S,可以用作计数闸门信号,而选择其他闸门信号时也类似。

然后根据测频的时序要求,可得出信号latch_en_out和count_reset_out的逻辑描述。

由图可见,在计数完成后,即计数使能信号fdiv_in在1S的高电平后,利用其反相值产生一个锁存信号latch_en_out,由于反相器的器件延时,锁存信号的上升沿是在计数使能信号即闸门信号fdiv_in的下降沿之后,即是计数完了才锁存的,符合我们的设计要求。

而清零信号count_reset_out的上升沿的产生是在下一个fdiv

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1