基于FPGA的信号发生器设计报告1/312013年全国大学生电子设计竞赛基于FPGA的信号发生器设计题目:信号发生器班级:xxxxxxxxxxxx成员:xxx指导老师:xxx2013年7月30日基于FPGA的信号发生器设计报告2/31目录一、设计要求...............................................................................................................41.基本要求....................................................................................................4二、设计方案...............................................................................................................4三、系统基本原理.......................................................................................................53.1函数信号发生器的几种实现方式..................................................................53.1.1程序控制输出方式...............................................................................53.1.2DMA输出方式.......................................................................................63.1.3可变时钟计数器寻址方式...................................................................63.1.4直接数字频率合成方式.......................................................................73.2频率合成器简介..............................................................................................73.2.1频率合成技术概述...............................................................................73.2.2频率合成器主要指标...........................................................................82.3DDS原理..........................................................................................................93.3.1相位累加器...........................................................................................93.3.2波形ROM..............................................................................................113.3.3DDS频率合成器优缺点.....................................................................11四、单元模块设计.....................................................................................................124.1系统框图.................................................................................................124.2相位累加器与相位寄存器的设计.........................................................134.3波形ROM的设计.....................................................................................144.4频率控制模块的设计.............................................................................174.5D/A转换器.............................................................................................184.6滤波模块.................................................................................................20五、系统源程序.........................................................................................................205.1VerilogHDL源程序:........................................................................205.2STM32源程序:....................................................................................24基于FPGA的信号发生器设计报告3/31摘要直接数字频率合成DDS(DirectDigitalSynthesizer)是基于奈奎斯特抽样定理理论和现代器件生产技术发展的一种新的频率合成技术。与第二代基于锁相环频率合成技术相比,DDS具有频率切换时间短、频率分辨率高、相位可连续变化和输出波形灵活等优点,因此,广泛应用于教学科研、通信、雷达、自动控制和电子测量等领域。该技术的常用方法是利用性能优良的DDS专用器件,“搭积木”式设计电路,这种“搭积木”式设计电路方法虽然直观,但DDS专用器件价格较贵,输出波形单一,使用受到一定限制,特别不适合于输出波形多样化的应用场合。随着高速可编程逻辑器件FPGA的发展,电子工程师可根据实际需求,在单一FPGA上开发出性能优良的具有任意波形的DDS系统,极大限度地简化设计过程并提高效率。本文在讨论DDS的基础上,介绍利用FPGA设计的基于DDS的信号发生器。关键字:FPGA;DDS;函数信号发生器;基于FPGA的信号发生器设计报告4/31一、设计要求1.基本要求(1)信号发生器能产生正弦波、方波和三角波三种周期性波形;(2)将输出信号频率范围为10Hz~10MHz,输出信号频率可分段调节:在10Hz~100kHz范围内步进间隔为10Hz;在100kHz~1MHz范围内步进间隔为100Hz;在1MHz~10MHz范围内步进间隔为1kHz。输出信号频率值可通过键盘进行设置;(3)在50Ω负载条件下,输出正弦波信号的电压峰—峰值Vopp在0~5V范围内可调,调节步进间隔为0.1V,输出信号的电压值可通过键盘进行设置;(4)输出信号波形无明显失真;(5)自制稳压电源。(6)可利用ARM单片机实时显示输出信号的类型、幅度、频率和频率步进值;二、设计方案【方案一】采用分立元件模拟直接合成法。这种方法转换速度快,频率分辨率高,但其转换量程靠手动来实现,不仅体积大难以集成,而且可靠性和准确度很难进一步提高。【方案二】采用MAX038芯片来产生正弦波信号。该集成块的输出波形种类多,频率覆盖范围广。它采用的是RC充放电振荡结构。第一,由于模拟器件元件分散性太大,外接的电阻、电容对参数的影响很大,因而产生的频率稳定度差,只能达到431010。第二,它的频率控制是通过充放电流的大小来实现。因而要达到步进100HZ,所需的电流变化量非常小,精度要求很高。所以采用MAX038芯片难以实现设计要求。基于FPGA的信号发生器设计报告5/31【方案三】采用锁相环合成方法。采用该方案设计输出信号的频率可达到超高频甚至微波段,且输出信号频谱纯度较高。由于锁相环技术是一个不间断的负反馈控制过程,所以该系统输出的正弦信号频率可以维持在一个稳定状态,频率稳定度高。但由于它是采取闭环控制的,系统的输出频率改变后,重新达到稳定的时间也比较长。所以锁相环频率合成器要想同时得到较高的频率分辨率和转换率非常困难,频率转换一般要几毫秒的时间[1],同时频率间隔也不可能做得很小。【方案四】采用直接数字合成器(DDS),可用硬件或软件实现。即用累加器按频率要求对相应的相位增量进行累加,再以累加相位值作为地址码,取存放于ROM中的波形数据,经D/A转换,滤波即得到所需波形。以EDA技术为基础,用FPGA实现DDS模型的设计。电路的规模大小和总线宽度可以由设计者根据自己的需要而设定可将波形数据存入FPGA的ROM中。同时外部控制逻辑单元也可在FPGA中实现。方法简单,易于程控,便于集成。用该方法设计产生的信号频率范围广,频率稳定度高,精度高,频率转换速度快。分析以上四种方案,显然第四种方案具有更大的优越性、灵活性。所以采用方案四进行设计。三、系统基本原理3.1函数信号发生器的几种实现方式任意波形发生器的实现方案主要有程序控制输出、DMA输出、可变时钟计数器寻址和直接数字频率合成等多种方式。3.1.1程序控制输出方式计算机根据波形的函数表达式,计算出一系列波形数据瞬时值,并定时地逐个传送给D/A转换器,合成出所需要的波形。这种方式具有电路简单、实现方便等特点。但数据输出定时不准确,会影响信号的频率和相位。波形数据输出依靠指令的执行来完成,当需要同时输基于FPGA的信号发生器设计报告6/31出多个信号时,相邻信号通道的输出存在时间差,受计算机运行速度的限制,输出信号的频率较低。3.1.2DMA输出方式DMA(directmemoryaecess)方式输出不依赖于程序的执行,由DMA控制器申请总线控制权,通过地址总线给出存储器的地址信号,同时选通存储器和D/A转换器,在两者之间建立直接的数据通道,使存储器相应单元中的波形数据传送给D/A转换器转换后输出信号。DMA方式输出信号,可以大大提高信号的数据输出速率。但也存在一些问题,如波形输出期间,微处理器因为失去了总线控制权,无法进行其他操作。在一个DMA操作中,只能在一个D/A转换器和存储器之间传送数据,无法实现多通道的信号输出。3.1.3可变时钟计数器寻址方式采用可变时钟计数器寻址波形存储器表,该方法是一种传统型任意波形发生器。原理框图如图2-1所示。可变时钟源计数器波形存储器D/A转换器低通滤波器图2-1可变时钟计数器寻址的任意波形发生器图中的计数器实际上是一个地址发生器,计数器的触发时钟脉冲由一个频率可以控制的频率发生器产生,通过改变频率发生器的频率设置值,实现调整计数器产生的地址变化速率,从而改变输出的任意波形的频率。计数器产生的地址码提供读出存储器中波形数据所需