基于fpga多功能信号发生器的设计与实现.docx
- 文档编号:27304181
- 上传时间:2023-06-28
- 格式:DOCX
- 页数:35
- 大小:537.65KB
基于fpga多功能信号发生器的设计与实现.docx
《基于fpga多功能信号发生器的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于fpga多功能信号发生器的设计与实现.docx(35页珍藏版)》请在冰豆网上搜索。
基于fpga多功能信号发生器的设计与实现
学校代码:
11059学号1205022039
HefeiUniversity
毕业设计(论文)
BACHELORDISSERTATION
论文题目:
基于FPGA多功能信号发生器的设计与实现
学位类别:
工学学士
学科专业:
通信工程
作者姓名:
XX
导师姓名:
张倩葛浩
完成时间:
2016年5月25号
基于FPGA多功能信号发生器的设计与实现
中文摘要
多功能信号发生器又称为波形发生器,不仅在生产或生活的应用比较普遍,而且还在无线电、自动测量和自动控制等系统中遍及使用。
作为一类普及度很高的电子设备,它不仅仅可以生产各种各样的波形信号,也能够根据设备需求实际环境模仿类似的信号,还可以同另外的控制器及传感器组合成一个自动测试系统,包括边界扫描测试和激光测试,拥有比较高的测试精度和性能。
除此之外,它也能够被用来当作激励信号,普遍用于教学、生产及科技等领域。
对于传统设计信号发生器的方法主要选取单片机以及DDS芯片,缺点是设计较复杂、可移植性差。
本设计是由FPGA芯片为硬件核心,使用VHDL硬件语言设计一个DDS系统,采用自顶而下的思想把分为三个模块设计:
频率控制模块、幅度控制模块、波形数据存储模块。
在QuartusII平台中生成硬件电路图,之后对顶层文件进行连线、编译成功之后,综合后下载到FPGA板上,输出幅度、频率可调的三角波、方波、锯齿波和正弦波信号。
最终使用逻辑分析仪通过JTAG端口读取的信息并显示出所需波形,经验证,此系统基本上满足了设计要求。
关键词:
DDS;FPGA;VHDL;信号发生器;
DesignandimplementationofmultifunctionsignalgeneratorbasedonFPGA
ABSTRACT
Alsoknownasmulti-functionsignalgeneratorwaveformgenerator,notonlyintheproductionoruseoflifeisrelativelycommon,butalsoradio,automaticmeasurementandautomaticcontrolsystemsinusethroughout.Asaclassofhighpopularityofelectronicequipment,itnotonlycanproduceavarietyofwaveformsignal,itispossibleaccordingtotheactualenvironmentequipmentneedstomimicasimilarsignals,butalsocanbecombinedwithadditionalcontrollersandsensorsintoasingleautomatedtestsystem,includingboundaryscantestandlasertesting,hasarelativelyhightestaccuracyandperformance.Inaddition,itcanalsobeusedasanexcitationsignal,widelyusedinthefieldsofteaching,productionandtechnology.
FortraditionaldesignmethodsaremainlyselectedsignalgeneratorsandDDSchipmicrocontroller,thedisadvantageismorecomplexdesign,poorportability.BytheFPGAchipusingVHDLhardwaredescriptionlanguagetodesignaDDSsystemhardwarecore.EditQuartusIIcompileVHDLsourcecodeandproduceshardwarecircuitinQuartusIIplatform,thelasttop-levelfileconnectionaftersuccessfulcompilation,comprehensiveafterdownloadedtotheFPGAboardfunctionwaveformoutputamplitude,frequencyadjustable.End-useinformationlogicanalyzerthroughtheJTAGporttoreadanddisplaythedesiredwaveform,proven,thissystembasicallymeetthepaperconditions,experimentsshowthattheuseofVHDLlanguageandcustomideasunderdevelopmentplatformeditorinQuartusIIsourcecodeandthenusesimulationdesignversatilewaveformsignalgeneratorintherightdirection.
Keywords:
DDS;FPGA;VHDL;Signalgenerator;
第一章前言
工业技术与科技的不断进步,传统的波形信号发生器采用分离式器件,体积较大以及稳定性较低、可靠性较差,电路结构也局限了波形种类的多样化,已经无法满足实际生产的需要,因此,必须制作稳定性相对较高、可靠性较好的信号发生器解决这些问题。
近些年,数字技术的发展带动了数字信号发生器实现了飞速成长,DDS技术被普遍应用在信号发生器的设计与制作,性能指标都达到了一个比较高的水平。
为了迎合消费者的需求,大多数数字芯片仅能输出常见的传统函数波形,如三角波、锯齿波和方波等。
目前主流的芯片,把数字频率合成芯片的全部的功能集结在一个芯片中,提供了模拟调制电路功能,但是导致控制能力下降,也使性能有不同程度的改变。
在上述条件下,若我们尽力发挥现场可编程门阵列的优越性,利用DDS技术,达成一个操作简单、使用方便的信号发生器系统。
现场可编程门阵列器件的拥有存储空间大、运算能力强等优点,使得原本比较难解决的复杂电路有了新的解决手段,应用到实际系统中的例子也是比比皆是,例如数字信号处理、通信和数据处理等领域。
基于现场可编程设计的信号发生器的优点有以下几点:
1、转换频率比较快; 2波形相位噪声比较小;3、能够输出任意波形;4、整体数字化,占空间少,有利集成;5、灵活的接口和控制方式;6、比专用芯片功耗也低[1-4]。
以现阶段的发展水平,西方国家的多功能信号发生器在研发和制造方面已经比较先进。
西方国家的安捷伦和泰克国际测量仪器公司,其产品不仅是技术上还是市场占有率上,都领先于国内厂商[5]。
信号发生器的进步展现在如下四点:
1、CPU功能增强
CPU的功能主要表现在精度和速度的改善。
为了提高速度,通常使用布尔处理器,精度的提高是CPU的字长提高到16位或32位。
2、内部资源增多
现如今,对于信号发生器,内部存储器空间已实现32KB,RAM空间也实现了1KB以及断电保护功能,也就是在突然断电时保护数据不会丢失。
3、引脚的多功能化
由于芯片所具有的功能扩张所需的引脚数随之增多。
例如信号发生器的一个1MB的存储容量需要8条数据线和20条地址线。
引脚过多,不仅会增加制造的复杂性,而且也很大程度减少了芯片的集成。
为了提高应用程序的灵活性和减少管脚数,该信号发生器使用引脚复用的设计方案[6]。
4、低电压与低功耗
在很多的应用场景,信号发生器不仅对体积有严格要求,还对工作电压和功耗也有限制。
所以,信号发生器通常选取混合互补金属氧化物半导体制造工艺,并且增加了空闲和掉电两种工作方式。
本设计是参考直接数字合成频率技术,利用QuartusII9.0软件作为开发环境,VHDL语言为开发语言,基于FPGA芯片,配合相应的外围电路设计整体电路,其电路设计布局简单,有较高的灵活性和方便性,产生频率、幅度均可改变的锯齿波、正弦波、三角波和方波的信号发生器。
第二章DDS技术与原理及编程环境
2.1DDS技术
DDS,全拼DirectDigitalSynthesizer(直接数字频率合成),20世纪70年代由美国学者提出的全新技术,由相位概念出发直接合成所需信号的全数字频率合成。
凭借科学技术的飞速进步,在短短几十年间,DDS技术也得到了快速发展,由于出色的表现使它迅速成为现代频率合成技术中的重要技术。
在1993年,一类新的综合结构型的DDS的出现,它包括高精度、低速DDS和高速、低精度的相位累加器,其低速部分负责了DDS微调,高速部分负责DDS粗调[7]。
其特点是高速低功耗。
在1994年,出现一种运用正弦余弦的对称性改良存储技术,在不增加ROM容量的条件下,达成了正交输出200MHz的DDS。
近年来,由于PLD器件的出现与发展,使得DDS技术又注入了新的活力,输出频带得到了巨大提升,系统集成度更高,功耗更低。
由于超高速半导体技术的进步,正在逐步突破DDS输出带宽的局限。
直接数字频率合成技术伴随着微电子和计算机系统而快速发展的新一代技术。
本技术原理先将波形数据存储为mif文件,再然后由相位累加器的频率控制字累加控制从储存器文件中查表出波形采样点的频率,再从波形ROM中读取波形相位数据,之后经过高速数字模拟转换器输出的模拟波形信号,再由低通滤波器过滤谐波,最终输出光滑信号波形。
2.2DDS的基本原理
大多数数字信号处理技术普遍采用奈奎斯特定理,DDS也是如此,奈奎斯特采样定理描述是频带有限的连续模拟信号通过采样量化操作后成为离散序列,能否根据之前得到的离散序列还原成原始的模拟信号。
通过奈奎斯特采样定理可以得出,当采样频率不小于连续模拟信号的最大频率的两倍时,则能够实现由采样获取的离散序列无损的还原原始的模拟信号。
DDS系统首先需要对模拟信号采样,再对采样值量化处理后存储,然后使用查找表的方式输出波形采样值,经过数模转换后成模拟信号,此时获得的波形与原始波形尚有差异,使用低通滤波器过滤杂波即恢复原始波形。
其结构如图2.1所示。
图2.1中的相位累加器的具体组成如下图。
由上图我们很容易得到相位累加器的组成——加法器和寄存器,加法器的输入端分别输入频率控制字K,和寄存器反馈的上一个时钟的累加结果,在时钟信号的不断作用下不停的把输入端的值相加。
输入端的频率控制字K,实质上是二进制的相位增量。
例如,DDS的时钟周期为f,在一个脉冲fo来临时,累加器的加法器分别输入频率控制字和反馈结果,然后将两个输入相加,再把总和发送给寄存器。
寄存器有两个功能,一个是存储加法器的发送的总和,并把相位量化序列送到波形ROM,一旦锁定了寄存器的输出序列,则该输出就对应波形信号的一个幅度点。
另一个功能是反馈结果到加法器,加法器在下一脉冲fn到达时,不停地将寄存器反馈的结果与频率控制字相加。
这表明,累加器在每个脉冲信号的影响下,加法器的输入端相加,寄存器的输出相应也就递增一次,相位量化序列变化的本质就是以频率控制字K为步长的线性递增序列。
我们可以通过控制频率控制字我们可以改变频率控制字的大小,然后改变累加周期中的累加器输出[8]。
波形ROM即存放波形幅度量化序列的数据,如图2.3所示。
所有的DDS模块必须在同一个参考时钟下运行,DDS系统中心是相位累加器,相位累加器能够输出变化的信号地址信息即相位量化序列,从而得到地址保存的波形信号幅度量化序列,累加器的输出端与波形ROM的输入端相连接,等同对波形采样数据存储器实行查表操作,那么即把预先存储在波形ROM的采样点查出。
在时钟信号的有效用时,相位累加器持续的工作,也就持续地进行查表操作。
波形ROM的输出数据传到数字模拟转换器,并且数字模拟转换器把波形ROM输出的离散序列转换成连续幅度变化的模拟信号,才得以重新合成的波形[9-11]。
如果我们需要合成正弦波,仅能得到接近于阶梯波正弦波,因此,就要在输出前添加低通滤波器,以过滤谐波杂波,以获取光滑和连续的信号波形。
因为字长约束着累加器,只要累加器的加法器结果达到极大值后,其输出将发生溢出,意味着对波形ROM的地址循环查表一次,此时输出的波形信号刚好达到一个周期。
那么我们能够得到一个结论,相位累加器的溢出频率与恢复出模拟信号的频率是相同的[12]。
由此,我们得出结论,频率控制字K设置的越大,相加的结果递进越大,相位量化序列改变就越快,得到波形采样点数据就越少,波形信号的相位量增加就愈快,最终波形信号的频率亦越高,这是我们改变波形信号频率的理论基础,但是得到的信号的失真也就更明显[13]。
2.3FPGA、VHDL及编程环境
2.3.1FPGA
现场可编程门阵列,在可编程阵列逻辑、复杂可编程逻辑、通用阵列逻辑等器件的前提上,继续深入研究的结晶,是集成度最高的一种[14]。
电子技术的进步,诞生了FPLD,包括CPLD和FPGA。
在使用FPGA芯片时,用户能够按照各种各样的配置需求,选取对应的编程方法。
FPGA由逻辑阵列组成,利用编程可以使诸逻辑阵列串连起来达到我们需要的功能[2]。
接通电源,先使EPRON读入FPGA的芯片编程RAM的数据,达成配置要求,FPGA芯片开始工作。
切断电源后,FPGA还原成空芯片和其中阵列逻辑联系不存在。
故而,利用FPGA的设计极其方便,能够实现不同的电路功能。
系统开发流程如图2.1所示。
、
图2.1FPGA开发流程图
2.3.2VHDL
VHDL全名Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage(超高速集成电路硬件描述语言),主要用于描述数字系统的结构、功能、行为及接口[15]。
它的语言模式与目前一般的计算机高级语言类似,特有许多含有硬件特征的语句。
VHDL是根据是否可视,把一个设计实体划分成外部和内部,外部定义了端口,内部定义了功能算法。
若实体需要的算法在其他实体中已定义,则能够直接调用实体从而间接的使用其中的算法。
选择VHDL语言设计有很多益处,比如:
(1)功能强大,设计灵活。
(2)强大的硬件描述能力。
(3)比较强的移植能力。
(4)易于共享和复用。
2.3.3编程软件—QuartusII
EDA工具使EDA技术在诸多领域得到了应用,EDA是以PC为工具进而自动实现使软件设计的电子系统转化为硬件电路,所以Windows系统的EDA软件是不可缺少的,所以可编程逻辑器件的厂家都提供了EDA开发工具,如Xillinx的ISE、Altera的quartusii。
本次设计就使用QuartusII开发软件,包含了可编程逻辑器件编程环境,支持原理图输入模式、波形输入模式以及HDL等多种设计输入模式,内部集成了综合器和仿真器,能够实现设计输入编辑、设计分析与综合、适配、汇编、时钟提取和下载整个PLD设计开发流程[16]。
QuartusII的操作视图如图2.2所示
QuartusII是Altera公司的第四代可编程逻辑器件PLD开发平台。
QuartusII具有良好的跨平台能力,可以在Windows,Linux等开源系统上运行,使用起来也比较简单,操作界面也比较人性化。
除此之外,QuartusII还包含十分有用的LPM((LibrateofParameterizationModular)模块,本次设计就依靠LPM模块设计波形数据存储,快速完成设计、降低了系统冗余。
不仅如此,QuartusII还对第三方软件如ModleSim、Matlab、DSPBuilder很好的支持。
能够便利地进行仿真和完成DSP应用系统。
第三章系统设计方案
3.1系统总体方案设计
本设计以FPGA芯片为中心,外加辅助电路,选取DDS技术。
该系统由FPGA主控电路,D/A转换电路,调节按键和低通滤波电路[17],由调节按键改变频率、幅度。
首先使用GuagleWave—任意波形发生器,设置我们需要的波形,依次保存为mif文件,在与波形ROM关联起来,然后经相位累加器输出的地址信息不断寻址从波形ROM输出波形数据,调节率频控制字的大小进而改变读出数据的个数,亦使产生的波形频率发生变动。
从mif文件读取的是离散的波形数据,还得经由数模转换器将离散的序列转换成连续的模拟量,再使用低通滤波器过滤谐波,输出平滑的函数波形。
课题要求是需要输出四类波形,由此需要使用四块ROM储存器,依次放入四种波形的波形幅度量化数据,然后使用一个四选一的波形选择器,波形选择模块控制输出波形形状。
自上而下设计模块图如图3.1所示。
图3.1DDS系统设计流程图
3.2系统方案论证
3.2.1总体方案的论证
方案一:
以单片机为核心,选择DDS技术,C语言编程,可以实现相对比较高的设计目标,基本能够满足基本波形的产生,由于单片机的运算能力,以及受到晶振的影响,产生的波形往往差强人意,频率的限制比较大,很难达到较高的要求,而且单片机的输入输出管脚少,存储能力有限,需要复杂辅助电路才能够达到基本要求。
方案二:
采用模拟锁相环原理产生波形信号,锁相环是将输出信号与输入的信号进行相位对比再把结果反馈以改变信号间的误差,多用于闭环系统[18]。
由于要求高,电路复杂,不方便调节模拟锁相环电路和频率调节不方便,范围不够大,输出波形是不理想的大杂波,达不到预想效果。
方案三:
选择EDA技术,FPGA试验箱为平台,选择DDS原理。
信号发生器输出的波形稳定比较平滑,频率、幅度控制字变化亦输出波形的频率、幅度发生变化。
在外围附加数模转换、滤波电路等辅助电路即可。
基于课题,需要调节波形幅度、频率。
我们选择方案三。
3.2.2DDS模块论证
方案一:
根据DDS系统架构,设计基于可现场编程逻辑芯片的DDS系统。
DDS的高性能的需要超高速和高约束力的可编程逻辑器件。
可编程辑逻器件具有运行速度快,性能优越,还可以利用众多的EDA工具如QuartusII、ModelSim,设计出基于DDS技术的可编程逻辑器件系统。
可编程逻辑器件使用起来也非常实用和灵活,因而可以很简单的实现比较复杂的频率、幅度和相位的调节功能。
方案二:
选择购买DDS系列芯片。
电子技术的快速进步,大量的表现杰出的DDS产品诞生。
比如常用的AD9850公司的SD芯片,DDS系统的里面集成了高效率DAC还有
而且能够完成
器和时钟合成器的全数字编程控制。
连接到时钟,
可以产生频谱纯净,可控制改变频率和相位的模拟信号。
基于课题要求及论证结果,我们采用FPGA芯片设计DDS系统。
3.2.3数据存储方案论证
我们需要将待输出波形采样,并存储。
地址计数器寻址输出。
存储的方案如下:
方案一:
把采样得到的波形离散序列放到特定的存储器中,然后单片机扫描,再把离散序列送到D/A转换器输出连续的模拟信号,这样的电路搭建起来比较简单。
但是由于单片机的解决效率较低,不能达到课题的要求。
方案二:
利用FPGA芯片,QuartusII软件调用ROM储存模块,然后将采样的波形幅度量化序列储存在内部的ROM中,通过计数器寻址扫描,把离散序列传递给数字模拟转换器输出模拟信号。
然后再对VHDL语言文本例化,生成相应的RTL图。
基于以上论证,我们选择方案二作为存储器方案。
3.2.4数模转换方案
方案一:
选择高速的D/A芯片DAC0832,这是款8位的数模转换芯片,使用5伏到15伏的单电源,采用CMOS制造工艺,电流稳定时间一微秒,且功耗低20毫瓦不但价格低廉还可以满足我们对转换速度的要求。
方案二:
选择普通D/A转换器。
D/A转换器的主要特点就是要求高速,接着是转换位数,普通的D/A转换器的电流建立时间大于100us,在模数转换速度上达不到设计的要求。
基于以上论证,我们选择方案一作为数模转换器方案。
第四章DDS系统的实现
4.1主程序流程图
经过上一章的论证讨论,已经基本明确了设计的方案。
现在根据VHDL语言自顶向下思想设计整个系统,顶层模块要包含:
频率控制模块、幅度控制模块、波形选择模块、波形ROM存储模块等。
下图简单说明系统的流程。
4.1主程序流程图
4.2内部单元模块设计
4.2.1分频模块设计
为了满足题目中改变输出波形频率的要求。
我们设计一个分频模块,如图4.1。
为使频率改变的比较直观,特仅设定两个频率控制字,按键D是改变频率控制字。
分频模块的输出连接相位累加器的加法器输入,当D为0,clk时钟的频率设置20MHz时,fout的输出频率为2.5MHz,则加法器从0000,0000自加到1111,1111的溢出频率为9.77KHz,则波形输出频率也为9.77KHz。
当D为1,clk时钟频率设置20MHz时,fout的输出频率为1.25MHz,则加法器从0000,0000自加到1111,1111的溢出频率为4.88KHz,波形的输出频率亦为4.88KHz。
经验证,满足题目的要求。
图4.1分频器模块
4.2.2相位累加器模块设计
DDS系统设计重点就是累加器,经过计算,我们使用8位的累加器,如图4.2所示,经过验证,符合题目要求且效果较好。
SUM为加法器,jicunqi为寄存器,地址寻址字为八位。
加法器在时钟的作用下不断自加,运算后得到新的数值,把和给寄存器的Din端口,当寄存器的clk信号上升沿时,把8位二进制数据存在寄存器中输出到波形ROM的地址线。
伴随着时钟信号,加法器不断地相加,八位数据也会不断变化,我们可以不断得到变化的八位地址寻址字。
当地址寻址字从0000,0000增加到1111,1111时,刚好把波形ROM寻址一遍,此时的波形失真最小。
加法器在en信号无效,时钟上升沿自加1,所以我们通过改变clk信号的输入频率就可以改变加法器的累加速度。
图4.2累加器模块
4.2.3波形ROM模块的设计
由累加器模块可知,在时钟的不断到来时,累加器模块不停的执行相加。
我们选择累加器的输出相位离散序列作为地址寻址字,伴随着累加器不停输出数值,地址寻址字也在不停变化,对ROM的查表操作也在不停进行中且输出的相应的波形数据[18]。
根据毕业设计的题目要求,本设计需要输出正弦波、三角波、方波等四类波形,基于此,我们应用了四块储存器,分别存储了预先设定好的mif文件。
另外,为满足题目中按要求输出相应波形的要求,我们还设计了mux41a波形选择器,选择器的目的是四选一输出。
如图4.4,当s1,s2分别为0,1时,y输出预设的波形数据。
波形ROM模块如图4.3。
图4.3波形ROM存储器图4.4波形选择器
4.2.4幅度调节模块设计
相对于频率调节,幅度模块的设计相对而言比较独立,而且比较简单,我们运用除法器的思想来设计幅度调节模块[19]。
除法器的分子是波形数据数值,也就是预设好的mif文件中的八位离散序列,分母是我们键盘输入的八位序列。
例如:
在一个脉冲内,ROM模块输出的八位波形数据为
(198)10,我们输入的分母是
(2)10,显然,我们得到的数据是
(99
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 fpga 多功能 信号发生器 设计 实现