基于FPGA的智能函数发生器.docx

上传人:b****4 文档编号:3814670 上传时间:2022-11-25 格式:DOCX 页数:27 大小:295.41KB
下载 相关 举报
基于FPGA的智能函数发生器.docx_第1页
第1页 / 共27页
基于FPGA的智能函数发生器.docx_第2页
第2页 / 共27页
基于FPGA的智能函数发生器.docx_第3页
第3页 / 共27页
基于FPGA的智能函数发生器.docx_第4页
第4页 / 共27页
基于FPGA的智能函数发生器.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

基于FPGA的智能函数发生器.docx

《基于FPGA的智能函数发生器.docx》由会员分享,可在线阅读,更多相关《基于FPGA的智能函数发生器.docx(27页珍藏版)》请在冰豆网上搜索。

基于FPGA的智能函数发生器.docx

基于FPGA的智能函数发生器

毕业设计(论文)

 

题目基于FPGA的智能函数发生器

 

院系应用技术学院

专业电子信息工程(应用技术方向)

年级2009级

学生姓名

学生学号200915254141

指导教师职称副教授

 

完成毕业设计(论文)时间2013年1月

 

第一章绪论…………………………………………………………………………………1

(一)引言………………………………………………………………………………1

(二)选题背景及目的…………………………………………………………………1

第二章软件平台的应用……………………………………………………………………2

(一)FPGA简介………………………………………………………………………2

(二)VHDL&Verilog……………………………………………………………2

(三)QuartusII软件简介……………………………………………………………2

第三章智能函数发生器的原理与设计……………………………………………………3

(一)设计要求…………………………………………………………………………3

(二)设计思路………………………………………………………………………3

2方案选择……………………………………………………………………………3

2.1波形函数发生方案对比选择……………………………………………3

2.2波形函数输出控制方式选择……………………………………………3

(三)系统的整体原理框图………………………………………………………4

(四)各模程序设计及仿真………………………………………………………4

4.1递增斜波模块……………………………………………………………4

4.2递减斜波模块……………………………………………………………5

4.3三角波模块………………………………………………………………6

4.4阶梯波模块………………………………………………………………6

4.5方波模块…………………………………………………………………7

4.6方波模块…………………………………………………………………………8

4.7输出波形选择模块……………………………………………………………9

第四章系统联调测试分析………………………………………………………………10

(一)系统总体电路原理图的设计…………………………………………………11

(二)整体编译结果……………………………………………………………………11

(三)系统总体仿真分析………………………………………………………………11

(四)芯片引脚锁定……………………………………………………………………12

第五章总结………………………………………………………………………………13

(一)结论……………………………………………………………………………13

(二)技术展望…………………………………………………………………………13

致谢……………………………………………………………………………………13

参考文献…………………………………………………………………………13

附录………………………………………………………………………………14

 

基于FPGA的智能函数发生器

杨水森

重庆三峡学院应用技术学院电子信息工程(应用技术方向)2009级重庆万州404000

摘要:

函数发生器是一种多波形的信号源,它可以产生方波、三角波、锯齿波,甚至任意波形。

函数发生器使用范围很广,它是一种不可缺少的或通用信号源。

可以用于生产测试、仪器维修、实验室,还广泛使用在其它科技领域,如医学、教育、化学、通讯、物理学、工业控制、军事和宇航等。

函数发生器的的设计方法有多种,直接数字频率合成就是其中的一种。

直接数字频率合成是一种新的频率合成方法,是频率合成技术的一次革命,随着数字频率集成电路和可编程技术的发展,直接数字频率合成技术日益显露出它的优越性。

本设计利用FPGA为核心和Altera公司的设计工具QuartusII进行设计,并结合VHDL语言进行编程。

可以产生递增斜波、递减斜波、方波、三角波及阶梯波,并可以通过开关选择输出的波形。

此设计既可以学习到频率合成技术、数字电路、,也可以学习到FPFA和其他的仿真软件等知识性应用。

另外,通过模块化的设计(即把一个设计分成若干个模块,对每个模块进行设计和完善,再对每个模块进行组合和完善,最后形成完整的设计)更能够掌握系统的整体设计。

关键词:

FPGA;VHDL;函数发生器;

 

FunctiongenerarorofintelligentBasedonFPGA

YANGShui-sen

SchoolofAppliedTechnology,ChongqingThreeGorgesUniversity,electronicinformationproject(AppliedTechnology)2009Chongqing404100,China

Abstract:

thefunctiongeneratorisamulti-wavesignalsource,itcangeneratesinewave,squarewave,trianglewave,sawtoothwave,orevenarbitrarywaveform.Functiongeneratorusingrangeisverywide,itisakindofindispensablegeneralsignalsource.Itcanbeusedforproductiontesting,instrumentrepair,laboratory,alsowidelyusedinotherscientificfields,suchasmedicine,education,chemistry,communication,geophysics,industrialcontrol,suchasmilitaryandaerospace.

Afunctiongeneratordesignmethodhasmanykinds,directdigitalfrequencysynthesisisoneofakind.Directdigitalsynthesisisanewmethodforfrequencysynthesis,frequencysynthesistechnologyisarevolution,alongwiththedigitalfrequencyintegratedcircuitsandprogrammabletechnology,directdigitalfrequencysynthesistechnologyisincreasinglyrevealingitssuperiority.ThisdesignusestheFPGAasthecoreandAlteracompaniestodesigntoolsQuartusIIdesign,andcombinedwiththeVHDLprogramminglanguage.Canincreasetheobliquewave,decreasingramp,squarewave,triangularandladderwave,andcanbeselectedbytheswitchingoutputwaveform.Thisdesignnotonlycanlearntofrequencysynthesistechnology,digitalcircuit,,canalsolearntoFPFAandothersimulationsoftwareandknowledgeapplication.Inaddition,throughmodulardesign(inwhichadesignisdividedintoanumberofmodules,eachmoduledesignandperfect,ofeachmodulearecombinedandimproved,finallyformedacompletedesign)tograsptheoveralldesignofthesystem.

Keywords:

FPGA;VHDL;functiongenerato

第一章绪论

(一)引言

EDA(electronicdesignautomation,电子设计自动化)技术是现代电子工程领域的一门新技术。

它提供了基于计算机和信息技术的电路系统设计方法。

EDA技术的发展和推广应用极大地推动了电子工业的发展,随着EDA技术的发展,硬件电子电路的设计几乎全部可以依靠计算机来完成。

这样就大大缩短了硬件电子电路设计的周期从而使制造商可以快速开发出品种多批量小的产品,以满足市场众多的需求。

EDA技术的推广是当今世界的一个技术热点。

EDA技术是现代电子工业中不可缺少的一项技术。

传统设计应用分立元件或通用数字电路芯片,设计周期长,花费大,而且往往局部功能优化,而整体功能较差。

EDA以计算机为平台,根据硬件描述语言,如VHDL自动地完成逻辑编译、化简分割、综合及优化,布局布线,仿真直至对特定目标芯片的适配编译,逻辑映射和编程下载等工作。

以自顶向下的设计方法,使硬件设计软件化,摆脱了传统手工设计的众多缺点。

其方法简单,频率稳定度高,易于程控。

随着EDA技术的深入发展,基于硬件描述语言的方法将有取代传统手工设计方法的趋势。

尝试用VHDL设计来产生正弦波,其频率切换非常便捷,调试、修改也非常节省时间。

(二)选题背景及目的

20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。

计算器的普及大大缩短了人们在数学计算所花费的时间,但是一般的计算器只能用来计算加、减、乘、除这四类简单的数学计算,而不是进行复杂和的函数计算。

因此设计了这个智能函数发生器。

此智能函数发生器内置递增斜波、递减斜波、三角波、方波、正弦波及阶梯波六种函数模块,用户可以在输入端输入相应的代码选择不同的函数,从而进行函数计算并绘出一定范围内的函数图形。

即方便了用户进行函数计算,又方便了用户对这六类函数进行深入的研究。

而电子信息类产品的开发明显地出现了两大特点:

一是开发产品的复杂程度加深;二是开发产品的上市时限紧迫。

而伴随着如上两大特点的产生,相应的出现了设计上的两个问题。

其一,在电子系统数字化、复杂化和大规模集成化的今天,电子厂商们迫切地追求电子产品的高功能、优品质、低成本、微功耗和微小封装尺寸,从而使得电子设计更加复杂。

那么如何去完成这些高复杂度的电子设计呢?

其二,电子产品设计周期短和上市快是电子厂商们坚持不懈的追求,那么面对如此复杂的设计,又如何能够缩短开发时间呢?

解决以上两个问题的唯一途径是电子设计自动化(EDA),即用计算机帮助设计人员完成繁琐的设计工作。

 

第二章软件平台的应用

(一)FPGA

FPGA是FieldProgrammableGateArray的缩写,即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。

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

FPGA采用了逻辑单元阵列LCA(LogicCellArray)这样一个新概念,内部包括可配置逻辑模块CLB(ConfigurableLogicBlock)、输出输入模块IOB(InputOutputBlock)和内部连线(Interconnect)三个部分。

它与分立元件相比,具有速度快、容量大、功耗小和可靠性高等优点。

由于集成度高,设计方法先进、现场可编程,可以设计各种数字电路,因此,在通信、数据处理、网络、仪器、工业控制、军事和航空航天等众多领域内得到了广泛应用。

不久的将来将全部取代分立元件,目前一些数字集成电路生产厂商已经停止了分立原件电路的生产。

此外,FPGA还具有静态可重复编程和动态在系统重构的特性,使得硬件的功能可以像软件一样通过编程来修改。

因此,FPGA技术的应用前景非常广阔。

(二)VHDL语言简介

VHDL(VeryHighSpeedIntegratedCircuitHardwareDescriptionLanguage,超高速集成电路硬件描述语言)是一种用来描述数字系统行为和结构的硬件描述语言,被广泛的运用于描述和仿真各种数字系统,小到几个门,大到许多复杂集成电路相连的系统。

VHDL诞生于1982年,是由美国国防部开发的一种快速设计电路的工具,目前已经成为IEEE(TheInstituteofElectricalandElectronicsEngineers)的一种工业标准硬件描述语言。

相比传统的电路系统的设计方法,VHDL具有多层次描述系统硬件功能的能力,支持自顶向下(ToptoDown)和基于库(LibraryBased)的设计的特点,因此设计者可以不必了解硬件结构。

从系统设计入手,在顶层进行系统方框图的划分和结构设计,在方框图一级用VHDL对电路的行为进行描述,并进行仿真和纠错,然后在系统一级进行验证,最后再用逻辑综合优化工具生成具体的门级逻辑电路的网表,下载到具体的FPGA器件中去,从而实现可编程的专用集成电路(ASIC)的设计。

(三)QuartusII软件简介

QuartusII是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(AlteraHardwareDescriptionLanguage)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。

QuartusII支持Altera的IP核,包含了LPM/MegaFuction宏功能模块库,使用它,可以简化设计的复杂性,加快设计速度。

QuartusII平台支持一个工作组环境下的设计要求,其中包括支持基于Internet的协作设计。

此外,QuartusII通过和DSPBuilder工具与Matlab/SIMULINK相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统开发,集系统级设计、嵌入式软件设计、可编程逻辑设计于一体,是一种综性的开发平台。

 

第三章智能函数发生器的原理与设计

(一)设计要求

要求设计一个智能函数发生器,该函数发生器能够产生递增斜波、递减斜波、方波、正弦波、三角波、及阶梯波,并且可以通过选择开关选择相应的波形输出;系统具有复位的功能;通过按键确定输出的波形及确定是否输出波形。

FPGA是整个系统的核心,构成系统控制器,波形数据生成器,加法器,运算等功能。

通过以上设计要求分析完成的功能,确定函数发生器可由递增斜波产生模块、递减斜波产生模块、三角波产生模块、阶梯波产生模块、方波产生模块和输出波形选择模块组成,以及按键复位控制和时钟输入。

由此可确定系统的总体原理框图为如图1:

图1总体原理框图

(二)设计思路

2方案选择

2.1波形函数发生方案对比选择

波形函数发生是本设计的最重要的部分,实现函数发生的途径也有很多,因此必须选择一种易于实现且精度高的方案,以此来提高本设计的实用性。

方案一:

通过单片机控制D/A,输出三种波形。

此方案输出的波形不够稳定,抗干扰能力弱,不易调节,而且达不到题目要求的六种波形。

方案二:

使用传统的锁相频率合成方法。

通过芯片IC145152,压控振荡器搭接的锁相环电路输出稳定性极好的正弦波,再利用过零比较器转换成方波,积分电路转换成三角波。

此方案,电路复杂,干扰因素多,不易实现。

方案三:

利用MAX038芯片组成的电路输出波形。

MAX038是精密高频波形产生电路,能够产生准确的三角波、方波和正弦波三种周期性波形,但无法实现阶梯波和递增递减斜波的产生。

方案四:

利用在系统编程技术和FPGA芯片产生。

用VHDL语言编写程序,调试成功后下载至实验装置的芯片上,再利用外接D/A转换电路实现以上设计功能。

此种方案完全可以生成设计要求的6种波形,而且通过软件仿真可以直观的观测的输出的波形参数,方便调试和更改波形参数,外围电路简单,减少器件损耗,精度高。

基于方案四的外围电路简单容易实现、波形产生精度高、易于仿真观测调试的优点,因此本设计的函数发生器选择方案四完成波形发生的全部功能。

2.2波形函数输出控制方式选择

方案一:

控制多路D/A开关输出方式

此种方案为每一路输出的波形函数使用一路D/A转换后输出,通过控制开关控制每一路D/A是否工作,决定输出的波形。

此种方案可以同时输出多路波形,但是需要路D/A转化器,外围电路复杂,制作成本较高而且控制复杂。

方案二:

采用数据选择器方式

此种方案可以利用VHDL语言写出数据选择器,然后每种函数发生器的输出和数据选择器输入相连接,通过控制开关选择对应的波形输出。

方案二完全可以得到方案一的设计要求,而且只需一个D/A转换器就可以。

电路不需要外部搭建,节约成本且控制简单方便。

方案三:

采用数据分配器方式

此种方案利用数据分配器的功能,通过控制开关选择相应的函数发生器模块,使之产生相应的波形输出,并通过数据分配器的使能复位控制决定是否输出波形,此种方案和方案二很相似,也能够实现设计的功能也具有方案二的优点。

基于方案二的设计简便、节约制作元件和成本、控制简便等优点,选择方案二作为波形函数输出控制方式。

(三)系统的整体原理框图

 

图2系统的整体原理框图

如图2所示,系统时钟输入后,通过复位开关选择是否产生波形,当各个模块产生相应的信号波形后,通过波形选择模块波形选择开关选泽输出不同的波形,再通过D/A转换器转换,就可以把数字信号(由FPGA输出)变成了相应模拟的信号波形。

整个系统设计的核心就是FPGA部分

(四)各模块程序设计及仿真

根据自上而下的思路进行项目设计。

明确每个模块的功能以后,开始编写各个模块的程序。

4.1递增斜波模块

递增斜波icrs的VHDL程序如附录所示,其中clk是输入时钟端口,sel0、sel1、sel2为选择波形按键值,reset为输入复位端口,q为八位二进制输出端口。

图3递增斜波模块仿真图

程序设计的当复位信号为0时,输出为0,无对应的波形产生。

当复位信号为1时,每当检测到时钟上升沿时,计数器值加1,当增加到最大后清零。

计数值增加呈现线性关系,因此输出的波形是递增的斜波。

从仿真波形图图3也能看出这种变化规律。

VHDL描述为:

IFreset='0'THEN

tmp:

="00000000";--复位信号清零

ELSIFclk'EVENTANDclk='1'THEN

IFtmp="11111111"THEN

tmp:

="00000000";--递增到最大值清零

ELSE

tmp:

=tmp+1;--递增运算

4.2递减斜波模块

递减斜波dcrs的VHDL程序如附录所示,其中clk是输入时钟端口,sel0、sel1、sel2为选择波形按键值,reset为输入复位端口,q为八位二进制输出端口。

图4递减斜波模块仿真图

程序设计的是复位信号为0时输出为0,无对应的波形产生。

当复位信号为1时,当每当检测到时钟上升沿时,计数值减1,当减到0后赋值到最大。

计数值减少呈现线性关系,因此输出的波形是递减的斜波。

从仿真波形图图4也能看出这种变化规律。

VHDL描述为:

IFreset='0'THEN

tmp:

="11111111";--复位信号置最大值

ELSIFclk'EVENTANDclk='1'THEN--检测时钟上升沿

IFtmp="00000000"THEN

tmp:

="11111111";--递减到0置最大值

ELSE

tmp:

=tmp-1;--递减运算

4.3三角波模块

三角波delat的VHDL程序如附录所示,其中clk是输入时钟端口,sel0、sel1、sel2为选择波形按键值,reset为输入复位端口,q为八位二进制输出端口。

三角波波形是对称的,每边呈线形变化,所以可以根据数据做简单运算,就可以得到三角波。

图5三角波模块仿真图

程序设计的是reset复位信号为0时输出为0,无对应的波形产生。

当复位信号为1时,当每当检测到时钟上升沿时,当计数的数据不是最大值时,数值做递增运算,当增大到最大时,然后再做递减运算,因此输出的波形便呈现出三角波的形状。

从仿真波形图图5也能看出这种变化规律。

VHDL描述如下:

IFreset='0'THEN

tmp:

="00000000";--复位信号为0,置最小值

ELSIFclk'EVENTANDclk='1'THEN--检测时钟上升沿

IFa='0'THEN

IFtmp="11111110"THEN

tmp:

="11111111";--置最大值

a:

='1';

ELSE--不是最大值时递增

tmp:

=tmp+1;--递增运算

ENDIF;

ELSE

IFtmp="00000001"THEN

tmp:

="00000000";--置最小值

a:

='0';

ELSE--a为1时,执行递减运算

tmp:

=tmp-1;--递减运算

4.4阶梯波模块

阶梯波ladder的VHDL程序如附录所示,其中clk是输入时钟端口,sel0、sel1、sel2为选择波形按键值,reset为输入复位端口,q为八位二进制输出端口。

图6阶梯波模块仿真图

阶梯波设计的是数据的递增是以一定的阶梯常数向上增加,所以输出的波形呈现是成阶梯状的,而不是,完全呈现是直线增长。

从仿真波形图图6也能看出这种变化规律。

VHDL描述如下:

IFreset='0'THEN

tmp:

="00000000";--复位信号为0,置最小值

ELSIFclk'EVENTANDclk='1'THEN--检测时钟上升沿

IFa='0'THEN--判断a数值,计数。

IFtmp="11111111"THEN

tmp:

="00000000";--计数到最大清零

a:

='1';

ELSE

tmp:

=tmp+16;--阶梯常数为16,可修改

a:

='1';

ENDIF;

ELSE

a:

='0';--循环计数标志

ENDIF;

ENDIF;

q<=tmp;

ENDPROCESS;

ENDbehave;

4.5方波模块

方波模块的square的VHDL程序描述如下:

其中clk为输入时钟端口,sel0、sel1、sel2

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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