基于FPGA的信号发生器的设计.docx
- 文档编号:8053255
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:24
- 大小:908.37KB
基于FPGA的信号发生器的设计.docx
《基于FPGA的信号发生器的设计.docx》由会员分享,可在线阅读,更多相关《基于FPGA的信号发生器的设计.docx(24页珍藏版)》请在冰豆网上搜索。
基于FPGA的信号发生器的设计
本科生毕业论文(设计)
题 目
基于FPGAIP核的信号发生器的设计
姓 名
柳光峰学号0710703026
院 系
物理工程学院
专 业
通信工程
指导教师
周子立职称副教授
2011年5月11日
曲阜师范大学教务处制
目录
摘要1
关键词1
Abstract1
Keywords1
第一章绪论1
1.1课题背景1
1.1.1FPGA技术的发展历史和动向1
1.1.2直接数字频率合成技术2
1.2课题意义2
1.3课题内容及论文内容安排3
第二章DDS的基本原理及实现3
2.1DDS的基本原理3
2.2DDS的实现方法4
第三章信号发生器的FPGA实现6
3.1现场可编程门阵列(FPGA)的简介6
3.2Xilinxise10.1开发基本步骤7
3.3信号发生器的FPGA实现8
3.3.1正弦信号的实现8
3.3.2方波的实现9
3.3.3三角波的实现11
第四章系统硬件设计12
4.1系统硬件总体框图12
4.2Spartan3E开发板12
4.3AD/DA转换模块14
4.4键盘控制模块16
第五章系统的调试与性能测试17
5.1FPGA的仿真与验证17
5.2系统的误差分析18
第六章结论语19
致谢19
参考文献19
基于FPGA IP核的函数信号发生器的设计
通信工程专业学生柳光峰
指导教师周子力
摘要:
在现代电子测量技术的研究及应用领域中,常常需要用到多种不同频率的信号,如正弦波、三角波和方波等,因此多波形信号发生器的应用十分广泛。
近年来,以数字技术为基础的波形发生器得到了飞速的发展,性能指标都达到了一个新的水平。
现场可编程门阵列(FPGA)器件具有容量大、运算速度快、现场可编程等优点,使得许多复杂的电路有了新的实现途径,越来越被广泛地应用到实际系统中。
本文提出了一种基于XilinxFPGAIPCORE设计方法,直接调用已封装好的DDScore、Comparatorscore、ROMcore产生所需的波形,无需编写其程序代码,只需熟悉CORE的接口定义和操作方法,然后利用VerilogHDL编写键盘控制程序实现对信号频率、方波占空比的控制。
实际应用表明,该方法能够大大提高设计效率,可以实现信号频率程序控制,输出信号具有失真度低、稳定度好、分辨率高等优点。
关键词:
FPGA,IPCORE;VerilogHDL,直接数字式频率合成,信号发生器
TheDesignOfSignalGeneratorBasedOnFPGAIPCore
TutorLiuGuangfeng
Abstract:
Inthefieldoftechnologyofmodernelectronicmeasurementresearchandapplication,manykindsofdifferentfrequencysignalsoftenneedtobeused,suchassinewave,trianglewaveandsquare-wave,Somulti-waveformsignalgeneratoriswidelyused.Inrecentyears,digitaltechnology-basedwaveformgeneratorwhoseperformanceindicatorshavereachedanewlevelhasbeenrapiddevelopment.FPGAwhichhasobviousadvantagesoflargecapacity,computingspeed,fieldprogrammable,etc.makeanewwayofrealizingofmanycomplexcircuit,moreandmorewidelyappliedtoactualsystem.
AnewdesignmethodbasedonXilinxIPCOREisintroduced,itdirectlyappliestheencapsdatedDDScoreandComparatorscore,ROMcoreandhavenorequirementofwritingcodesbutbeingfamiliarwiththeinterfacedefinitionsandoperationsofthecore,andthencontrolthefrequencyofsignalandtheDutyRatioofsquare-wavebythekeyboardcontrolprogramofVerilogHDL.ThepracticalapplicationsshowthatthismethodcangreatlyimprovethedesignefficiencywithlessFPGAsourceandcanrealizesprogrammablecontrolofthefrequencyofoutputwave,meanwhile,thesignalhasalowdistortion,goodreliabilityandhighresolution.
Keywords:
FPGA,IPCORE,VerilogHDL,directdigitalsynthesis,signalgenerator
第一章绪论
1.1课题背景
1.1.1FPGA技术的发展历史和动向
自1985年Xilinx公司推出有史以来第一颗现场可程序化逻辑组件至今,已经历了超过二十几年的发展历史。
在发展过程中,以FPGA为代表的数字系统现场集成取得了惊人的发展:
现场可程序化逻辑组件从最初的1200个可利用逻辑闸,发展到现在的1000万个可利用逻辑闸。
纵观现场可程序化逻辑组件的发展历史,其之所以具有巨大的市场吸引力,在于FPGA不仅可以解决电子系统小型化、低功耗、高可靠性等问题,而且其开发周期短、开发软件投入少、芯片价格不断降低,促使FPGA在某些情况下得以取代ASIC的市场,特别是对小量、多样,短开发期的产品需求,使FPGA成为首选。
随着芯片设计工艺的不断提高,FPGA技术呈现出了以下4个主要的的发展动向。
(1)基于FPGA的嵌入式系统(SoPC)技术正在成熟
SystemonChip(SoC)技术在芯片设计领域被越来越广的应用,而SoPC技术是SoC技术在可编程器件领域的应用。
这种技术的核心是在FPGA芯片内部构建处理器。
Xilinx公司主要提供基于PowerPC的硬核解决方案,而Altera提供的是基于NIOSII的软核解决方案。
(2)FPGA芯片朝着高密度、低压、低功耗的方向发展
随着芯片生产工艺不断提高,FPGA芯片的性能和密度都在不断的提高。
早期的的FPGA主要是完成接口逻辑设计,比如AD/DA和DSP的粘合逻辑。
现在的FPGA正在成为电路的核心部件,完成关键功能。
在高性能计算和高吞吐量I/O应用方面,FPGA已经取代了专用的DSP芯片,成为最佳的实现方案。
(3)基于IP库的设计方法
未来的FPGA芯片密度不断提高,传统的基于HDL的代码设计方法很难满足超大规模FPGA的设计需要。
随着专业的IP库设计公司不断增多,商业化的IP库种类会越来越全面,支持的FPGA器件也会越来越广泛。
设计人员可以利用这些现成的IP库资源,高效准确的完成复杂片上的系统设计。
典型的IP核心库有Xilinx公司提供的LogiCORE和AllianceCORE。
(4)FPGA的动态可重构技术
FPGA动态重构技术主要是指对于特定结构的FPGA芯片,在一定控制逻辑的驱动下,对芯片的全部或部分逻辑资源实现高速的功能变换,从而实现硬件的时分复用,节省逻辑资源。
1.1.2直接数字频率合成技术
1971年,美国学者J.Tierncy,C.M.Rader和B.Gold提出了以全数字技术,从相位概念出发直接合成所需波形的一种新的频率合成原理。
限于当时的技术和器件水平,它的性能指标尚不能与已有的技术相比,所以没有受到重视。
近20年来,随着技术和器件水平的提高,一种新的频率合成技术——直接数字频率合成(DDS)得到了飞速的发展,它以有别于其它频率合成方法的优越性能和特点成为现代频率合成技术中的姣姣者。
DDS问世之初,构成DDS元器件的速度的限制和数字化引起的噪声这两个主要缺点阻碍了DDS的发展与实际应用。
近几年超高速数字电路的发展以及对DDS的深入研究,DDS的最高工作频率以及噪声性能已接近并达到与锁相频率合成器相当的水平。
随着这种频率合成技术的发展,它已经被广泛应用于通讯、导航、雷达、遥控遥测、电子对抗以及现代化的仪器仪表工业等领域。
1.2课题意义
信号发生器作为一种信号产生的装置己经越来越受到人们的重视,它可以根据用户的要求,产生自己所需要的波形,具有重复性好,实时性强等优点。
本课题的目的就是设计开发出一个能产生正弦波、方波、三角波的信号发生器。
而直接数字频率合成技术是研制该系统所要解决的关键技术,但传统基于FPCA的DDS设计方法是利用硬件描述语言VHDL或Verilog来设计相位累加器、LUT(数据查表)以及控制逻辑。
此方式程序代码量较大、设计效率偏低且占用较多FPGA资源。
而基于Xilinx公司系列FPGAIPCORE的DDS设计方法,直接从CoreGenerator中调用DDSIPCORE即可实现DDS核心功能,无需编写DDS内部代码,设计简单方便,因此对本文的研究不仅具有理论意义而且具有实用价值。
1.3课题内容及论文内容安排
本论文研究工作是设计一个以Xilinx公司的Spartan3E系列FPGA芯片XC3S500E为核心,附加一定外围电路组成的常规信号发生器。
根据数字系统的设计方法(本文选用自上而下的设计方法),结合FPGA和VerilogHDL的优势,以硬件描述语言VerilogHDL为系统逻辑描述手段,在EDA软件(本设计采用Xilinxise10.1)平台上,对其自动地完成编译、综合、优化、布局布线、时序仿真、直至对目标芯片的适配编译、逻辑映射和编程下载等工作,再结合相应外围电路,实现常规信号的产生。
本论文共分六章,各章内容安排如下:
第一章为绪论。
主要介绍课题的选题依据及意义,论文的研究内容及结构安排。
第二章,DDS的基本原理和实现。
详细论述了DDS的基本原理及其实现。
第三章,信号发生器的FPGA实现。
主要介绍了现场可编程门阵列(FPGA)及Xilinxise10.1开发基本步骤,论述了信号发生器的FPGA实现。
第四章,系统硬件设计。
本章对系统硬件部分作了详细的阐述,包括硬件的总体框图、控制模块的设计、模数转换DAC模块的阐述。
第五章,系统的调试与性能测试。
本章对主要模块进行仿真调试,以及对调试结果进行分析。
第六章,结论语。
对本文工作进行总结,并对今后的研究工作进行了展望。
第二章DDS的基本原理及实现
2.1DDS的基本原理
图1是DDS的基本原理图。
在每个
到来时,相位累加器将上一时钟周期的累加结果和频率增量
(频率控制字)进行累加,累加结果的高位作为正/余弦查表(LUT)的地址,输出对应地址上的波形数据
或
,由外部数模转换器DAC能重构波形,经滤后输出平滑模拟信号波形。
D1
图1DDS的基本原理图
DDS的核心是相位累加器,利用它来产生信号递增的相位信息,整个DDS系统在统一的参考时钟下工作,每个时钟周期相位累加器作加法运算一次。
加法运算的步进越大,相应合成的相位值变化越快,输出信号的频率也就越高。
对于幅值归一化的正弦波信号的瞬时幅值完全由瞬时相位来决定,因为
,所以相位变化越快,信号的频率越高。
ROM表完成将累加器相位信息转换为幅值信息的功能。
再由D/A完成数字抽样信号到连续时域信号的转换,D/A输出的台阶信号再经低通滤波器平滑可以得到精确的连续正弦信号波形。
相位累加器利用Nbit二进制加法器的模溢出特性来模拟理想正弦波的2
相位周期。
相位累加器输出和ROM输出可分别理解为理想正弦波相位信号和时域波形的时钟抽样。
用相位累加器输出的数据作为波形存储器的相位取样地址,这样就可以把存储在波形存储器内的波形抽样值(二进制编码)经查找表查出,完成相位到幅值转换。
波形存储器的输出送到D/A转换器,D/A转换器将数字量形式的波形幅值转换成所要求合成频率的模拟量形式信号。
低通滤波器用于滤除不需要的取样分量,以便输出频谱纯净的正弦波信号。
假设,相位累加器字长为N,DDS控制时钟频率为
,时钟周期为
,频率控制字为
。
系统工作时,累加器的单个时钟周期的增量值为
,相应角频率为
,所以DDs的输出频率为
,DDS输出频率步进间隔为
。
因DDS输出信号是对正弦波的抽样合成的,所以应满足Niqust定理要求,即
,也就是要求
,根据频谱性能要求,一般取
。
当DDS相位累加器采用32位字长,时钟频率为30MHz时,它的输出频率间隔可达到
。
可见,DDS基于累加器相位控制方式给它带来了微步进的优势。
2.2DDS的实现方法
DDS的实现常采用专用芯片(如美国模拟器件公司的AD985X系列)和大规模可编程逻辑阵列(FPGA)来实现。
AD985X系列专用DDS芯片,以AD850为例,其内部集成有32位的相位累加器、5位的相位控制器和10位的DAC,可以产生低相位噪声、高稳定度的频率输出波形,但不能实现
任意的相位调整,只能实现
、
、
和
等5种固定值组合的相位调整,且输出幅度不能调节。
基于FPGA的DC6实现方法具有设计灵活、硬件开销少、开发效率高、利于集成的优点。
FPGA外部只需搭配一只双通道的DAC芯片和少许滤波电路,由CPU控制即可实现正弦信号频率、相位和幅度的程序控制。
本文提出一种基于Xilinx公司系列FPGAIPCORE的DDS设计方法,直接从CoreGenerator中调用DDSIPCORE即可实现DDS核心功能,无需编写DDS内部代码,设计简单方便。
CoreGenerator是Xilinx公司系列FPGA集成开发环境ISE的子设计工具,其将原有重复使用的设计思路或方法模块化、集成化、标准化后进行封装IPCORE,供以后设计直接使用。
CoreGenerator中的所有IPCORE都是Xilinx以及第三方合作伙伴提供并经过验证的,其中有的复杂的IPCORE需要另行付费才能使用,绝大部分简单IP只要有集成开发环境ISE使用授权就可以使用[1]。
为保护知识产权,所有IP都不公开内部代码,只提供外部接口定义和操作技术文档。
图2XilinxDDSIPCORE界面
图2是启动ISECoreGenerator调用的DDSIPCORE的界面。
在设置选项中DDSClockRate(DDS时钟)、FrequencyResolution(频率分辨率)、输出数据宽度要设定固定值;OutputFrequency(输出频率)是可编程的。
只需设置初始值,CoreGenerator会根据DDS时钟和频率分辨率自动配置累加器数据宽度和数据表深度。
图3为DDSIPCORE模块外部接口定义。
模块定义了输入端口(DATA)和输出端口(SINE、COSINE)、地址端口(A)、时钟使能端口(CE)、RDY和RFD握手信号(可选)、SCLR(同步清零端,可选)、CHANNEL(输出通道指示,用于多通道DDS)。
模块在CE为‘0’(无效)、WE为‘1’时,分别将相位增量(频率控制字)和初始相位(PHASEOFFSET)读入,在CE有效(CE为‘1’)后的一个时钟周期内输出DDS数据,同时RDY有效。
图3DDSIPCORE模块外部接口定义
第3章信号发生器的FPGA实现
3.1现场可编程门阵列(FPGA)的简介
FPGA是英文FieldprogrammableGateArray的缩写,即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。
它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
FPGA采用了逻辑单元数组LCA(LogicCellArray)这样一个新概念,内部包括可配置逻辑模块CLB(ConfigurableLogieBlock)、输出/输入模块IPB(InputOutputBlock)和内部联机(Interconnect)三个部分。
FPGA的基本特点主要有:
(l)采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。
(2)FPGA可做其他全定制或半定制ASIC电路的中试样片。
(3)FPGA内部有丰富的触发器和I/O引脚。
(4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。
(5)FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。
因此,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。
FPGA具有静态可重复编程和动态在系统重构的特性,使得硬件功能可以像软件一样通过编程来修改。
在FPGA实际应用中,设计的保密和设计的可升级是十分重要的,用单片机来配置FPGA可以很好的解决上述问题。
用单片机配置FPGA器件时,关键在于产生合适的时序。
单片机可选用常用的如MCS51系列、MCS96系列、AVR系列等均可。
FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。
用户可以根据不同的配置模式,采用不同的编程方式。
加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成以后,FPGA进入工作状态。
掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。
FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。
当需要修改FPGA功能时,只需换一片EPROM即可。
这样,同一片FPGA,不同的编程数据,可以产生不同的的电路功能。
因此,FPGA的使用灵活。
目前有三种基本的FPGA编程技术:
SRAM、反熔丝、Flash。
其中,SRAM是迄今为止应用范围最广的架构,主要因为它速度快且具有可重编程能力,而反熔丝FPGA只具有一次可编程(OneTimeProgrammabfe,OTP)能力。
基于Flash的FPGA是FPGA领域比较新的技术,也能提供可重编程功能。
基于SRAM的FPGA器件经常带来一些其他的成本,包括:
启动PROMS支持安全和保密应用的备用电池等等。
基于Flash和反熔丝的FPGA没有这些隐含成本,因此可保证较低的总系统成本[2]。
3.2Xilinxise10.1开发基本步骤
XilinxISE硬件设计工具。
相对容易使用的、首屈一指的PLD设计环境!
ISE将先进的技术与灵活性、易使用性的图形界面结合在一起,不管您的经验如何,都让您在最短的时间,以最少的努力,达到最佳的硬件设计。
下面主要概述ISE的基本开发流程以及在开发过程中的各个阶段需要用到的工具软件。
Xilinx公司的ISE开发设计软件的工程设计流程,具体分为五个步骤:
即输入(DesignEntry)、综合(Synthesis)、实现(Implementation)、验证(Verification)、下载(Download)。
1.图形或文本输入(DesignEntry)。
图形或文本输入包括原理图、状态机、波形图、硬件描述语言(HDL),是工程设计的第一步,ISE集成的设计工具主要包括HDL编辑器(HDLEditor)、状态机编辑器(StateCAD)、原理图编辑器(ECS)、IP核生成器(CoreGenerator)和测试激励生成器(HDLBencher)等。
常用的设计输入方法是硬件描述语言(HDL)和原理图设计输入方法。
原理图输入是一种常用的基本的输入方法,其是利用元件库的图形符号和连接线在ISE软件的图形编辑器中作出设计原理图,ISE中设置了具有各种电路元件的元件库,包括各种门电路、触发器、锁存器、计数器、各种中规模电路、各种功能较强的宏功能块等用户只要点击这些器件就能调入图形编辑器中。
这种方法的优点是直观、便于理解、元件库资源丰富。
但是在大型设计中,这种方法的可维护性差,不利于模块建设与重用。
更主要的缺点是:
当所选用芯片升级换代后,所有的原理图都要作相应的改动。
故在ISE软件中一般不利用此种方法。
为了克服原理图输入方法的缺点,目前在大型工程设计中,在ISE软件中常用的设计方法是HDL设计输入法,其中影响最为广泛的HDL语言是VHDL和VerilogHDL。
它们的共同优点是利于由顶向下设计,利于模块的划分与复用,可移植性好,通用性强,设计不因芯片的工艺和结构的变化而变化,更利于向ASIC的移植,故在ISE软件中推荐使用HDL设计输入法。
波形输入及状态机输入方法是两种最常用的辅助设计输入方法,使用波形输入法时,只要绘制出激励波形的输出波形,ISE软件就能自动地根据响应关系进行设计;而使用状态机输入时,只需设计者画出状态转移图,ISE软件就能生成相应的HDL代码或者原理图,使用十分方便。
其中ISE工具包中的StateCAD就能完成状态机输入的功能。
但是需要指出的是,后两种设计方法只能在某些特殊情况下缓解设计者的工作量,并不适合所有的设计。
2.综合(Synthesis)。
综合是将行为和功能层次表达的电子系统转化为低层次模块的组合。
一般来说,综合是针对VHDL来说的,即将VHDL描述的模型、算法、行为和功能描述转换为FPGA/CPLD基本结构相对应的网表文件,即构成对应的映射关系。
在XilinxISE中,综合工具主要有Synplicity公司的Synplify/SynplifyPro,Synopsys公司的FPGACompilerII/Express,ExemplarLogic公司的LeonardoSpectrum和XilinxISE中的XST等,它们是指将HDL语言、原理图等设计输入翻译成由与、或、非门,RAM,寄存器等基本逻辑单元组成的逻辑连接(网表),并根据目标与要求优化所形成的逻辑连接,输出edf和edn等文件,供CPLD/FPGA厂家的布局布线器进行实现。
3.实现(Implementation)。
实现是根据所选的芯片的型号将综合输出的逻辑网表适配到具体器件上。
XilinxISE的实现过程分为:
翻译(Translate)、映射(Map)、布局布线(Place&Route)等3个步骤。
ISE集成的实现工具主要有约束编辑器(ConstraintsEditor)、引脚与区域约束编辑器(PACE)、时序分析器(TimingAnalyzer)、FPGA底层编辑器(FGPAEditor)、芯片观察窗(ChipViewer)和布局规划器(Floorplanner)等。
4.验证(Verificat
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FPGA 信号发生器 设计