版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于FPGA的DDS移相信号发生器的设计与制作摘要:本文介绍了一种基于FPGA(现场可编程门阵列)的DDS(直接数字合成)移相信号发生器设计。该设计以FPGA为核心,采用精确的数字相位累加技术实现高速移相,并通过DAC(数字模拟转换器)将数字信号转换为模拟电压输出。通过将相位累加器实现在FPGA芯片上,减少了外部电路中的元件数量。通过使用查找表,可以更快地计算正弦和余弦值,从而获得更精确的输出信号。在系统开发过程中,采用了Altera公司的Cyclonev系列的FPGA芯片作为波形数据的主控制芯片,使用QuartusII软件并结合VHDL语言作为本次设计的主要工具。该设计具有体积小、功耗低、信号稳定等优点,适合于在通讯、测量等领域中广泛应用。首先,介绍了DDS技术和FPGA技术的相关知识以及研究背景,并对DDS的算法进行了简要说明;然后,详细介绍了该移相信号发生器的硬件电路设计和软件流程设计,包括FPGA内部的寄存器配置、相位累加器的设计以及输出信号的控制等关键技术。通过实际测试数据表明,所设计的移相信号发生器能够满足高精度、大频率范围、低相位噪声等多种应用需求。关键词:FPGA;DDS;VHDL;相位累加;数字模拟转换器;模拟电压输出
DIGITALPHASESHIFTINGGENERATORBASEDONFPGAAbstract:ThispaperpresentsaDDS(directdigitalsynthesis)phaseshiftingsignalgeneratordesignedonFPGA(fieldprogrammablegatearray).ThedesigntakesFPGAasthecore,adoptsaccuratedigitalphaseaccumulationtechnologytoachievehigh-speedphaseshifting,andconvertdigitalsignalsintoanalogvoltageoutputthroughDAC(Digital-to-AnalogConverter).ByimplementingthephaseaccumulatorontheFPGAchip,thenumberofcomponentsintheexternalcircuitisreduced.Byusingalookuptable,sineandcosinevaluescanbecalculatedfastertoobtainmoreaccurateoutputsignals.Inthesystemdevelopmentprocess,Altera'sCycloneVseriesFPGAchipwasusedasthemaincontrolchipforwaveformdata,andQuartusIIsoftwarewasusedandVHDLlanguagewasusedasthemaintoolforthisdesign.Thedesignhastheadvantagesofsmallsize,lowpowerconsumption,stablesignal,etc.,whichissuitableforcommunication,measurementandotherfields.Firstly,therelevantknowledgeofDDStechnologyandFPGAtechnologyisintroduced,andthealgorithmofDDSisbrieflydescribed.Then,thehardwarecircuitdesignandsoftwareprocessdesignofthephaseshiftingsignalgeneratorareintroducedindetail,includingtheregisterconfigurationinsidetheFPGA,thedesignofthephaseaccumulatorandthecontroloftheoutputsignal.Keytechnologiessuchasphasenoisereductionarediscussed.Theactualtestdatashowsthatthedesignedphase-shiftingsignalgeneratorcanmeetvariousapplicationrequirementssuchashighprecision,largefrequencyrange,andlowphasenoise.Keywords:FPGA;DDS;VHDL;Phaseaccumulation;digital-to-analogconverter;analogvoltageoutput.第1章绪论1.1引言信号发生器已成为电子电路设计、通信、测试、测量等领域中必不可少的设备之一。信号发生器除了能够产生各种类型的信号波形外,还能够输出不同频率、幅度、相位的信号,并能调节信号的上升时间、下降时间等特性。在集成电路设计中,信号发生器常被用作模拟测试和验证原型电路的正确性,以及测量电路的性能指标。同时,在通信系统中,信号发生器也被广泛应用于模拟信号通讯,帮助工程师调试和测试电信网络的可靠性和稳定性。,已大量使用于信息传递、系统检测等方面。随着科学技术的不断发展,高精度、高速度、高可靠性的信号发生器在科研领域和实际应用中得到了广泛的应用。基于FPGA的DDS移相信号发生器具有频率和相位控制灵活、输出高质量信号等优点,成为目前应用较为广泛的信号源之一。选取DDS技术为主要研究内容,针对传统DDS技术设备调节复杂的问题,采用移相技术,实现简单、快捷的频率和相位控制。采用VerilogHDL语言或VHDL语言对移相DDS信号发生器的核心模块进行设计与编码,并将其综合后下载到FPGA芯片上,完成信号发生器的构建。利用多路数码显示器显示实验结果,同时用示波器观测输出信号的正弦波形,证明信号发生器的性能符合设计需求。本论文的研究成果对于相关领域的研究和应用具有较大的参考意义,也可以为数字信号处理器和基于FPGA的信号发生器的设计提供指导REF_Ref134957820\r\h[1]。1.2研发背景及意义DDS移相信号发生器是一种基于数字技术的信号发生器,具有频率和相位控制灵活、输出精度高等优点,在工业、医疗、军事等领域中得到广泛应用。DDS技术结合FPGA技术可以实现对信号发生器的高度自由定制,成为了目前信号源构建领域的重要技术之一。然而,传统DDS技术存在调节复杂、精度不够高和运算速度慢等问题,难以满足精密设计和高速信号处理的需求。本论文选取DDS移相技术为研究对象,通过利用FPGA硬件资源和高级语言VerilogHDL或VHDL进行开发,设计实现一款功能强大、性能稳定的DDS移相信号发生器,以解决这一难题。合成技术具有高精度、高分辨率、低杂散、快速切换和自校准等优点,其在精密仪器仪表、医学系统、广播电视等领域的应用也越来越广泛。与DDS技术相比,直接数字频率合成技术的本质区别在于其使用数字信号处理器(DSP)或专用的数字信号产生器(DG)代替了数模转换器和低通滤波器。直接数字频率合成技术中,频率合成器直接由内部数字信号产生器产生频率,不需要外部时钟源或参考频率,因此其频率和相位的稳定性和准确性更高。尽管直接数字频率合成技术相较于DDS技术代替了数模转换器和低通滤波器,杂散性能和相位噪声也有了大幅度的改善,但是仍然需要在实现过程中考虑一定的误差以及温度、气候等因素的影响,因此还有提高的空间和需要进一步研究。此外,对于FPGA设备的学习与应用对于计算机、通信工程等相关课程也十分重要。本论文的研究成果可以将这些知识点进行融合,使读者更加深入理解FPGA技术在信号处理中的应用。因此,本论文的研究背景和意义在于:为相关领域提供更加完善和高精度的信号发生器。同时,通过实践操作,增强读者的综合素质能力,使其具备一定的工程设计能力REF_Ref134957850\r[2]。1.3DDS技术的发展直接数字频率合成(directdigitalfrequencysynthesis,DDFS)技术是一种通过数字信号处理器(digitalsignalprocessor,DSP)实现信号发生和调制的技术。它的发展可以分为以下几个阶段:阶段一:1998年,美国objectmanagementgroup(OMG)开始着手研发DDS。阶段二:2003年,DDS1.0版本发布,其中包括data-centricpublish-subscribe(DSPS)规范和realtimepublish-subscribe(RTPS)协议。阶段三:2007年,DDS1.2版本发布,引入QOS(qualityofservice)机制,允许用户定义数据传输的可靠性、时效性等特性,并支持webservices互操作性。阶段四:2011年,DDS1.3版本发布,新增数据类型定义语言(IDL)和状态表达式语言(DDL),方便用户进行数据模型设计和状态编排。阶段五:2015年,DDS1.4版本发布,进一步增强了QOS机制,支持多种数据传输模式和安全机制,并引入更多的API和工具集REF_Ref134957877\r[3]。第2章系统硬件平台及技术原理2.1可编程逻辑器件FPGA介绍FPGA全称为field-programmablegatearray(现场可编程门阵列)。与微控制(MCU)相比,FPGA是一种可以动态重构数字电路的可编程芯片。它由许多查找表(LUT)和寄存器以及可编程互联组成,在设计时开发者可以灵活地配置这些逻辑块和互连来实现特定的硬件功能和任务。FPGA是除了CPLD之外的另一类型的可编程逻辑设备,而FPGA则使用了另一种可编程逻辑的构成方式,也就是编成的查表系统,。在FPGA中,各种逻辑门和触发器等基本单元通过漏斗、交叉、定向等方式连接起来,形成任意复杂度的数字逻辑功能。所以FPGA支持广泛的应用领域,并且提供了很高的灵活性和容错能力,尤其在应对大数据处理等高速处理场景下表现优异。FPGA包括三个主要部分:输入/输出、基本单元和内部通信。输入/输出是FPGA于外部接口的接口,使FPGA能够与外部器件或平台进行通信或交互。基本单元是成千上万个可再编程的逻辑门与其他辅助逻辑的组合,使得开发人员可以根据自己的需求设计出最优的逻辑结构。内部通信模块包括可编程互连,可以将单个模块连接起来,满足复杂设计的要求REF_Ref134957934\r[4]。图2.1FPGA查表单元内部结构图2.2FPGA查找表单元2.2硬件描述语言VerilogVerilog是一种严谨的语言,可以支持面向对象的编程方法,具有高度的可重用性和精确的语义定义。它可以用来描述数字电路中的信号、寄存器、门电路、状态机等元素,并使用这些元素构建出更为复杂的模块和系统.它提供了大量可用于模拟、测试和验证电路的工具和库,并且可以与不同的EDA(ElectronicDesignAutomation)软件进行集成。使用Verilog可以描述一个数字系统的功能、结构和行为,包括其输入和输出、门电路、寄存器、运算器以及时序逻辑。此外,VHDL还允许我们定义设计约束条件,例如时序约束或占用约束等。Verilog代码由实体(entity)、体系结构(architecture)、过程(process)等部分组成。其中,实体部分定义了该电路的输入和输出端口,并且提供必要的元数据。体系结构部分描述了该电路的状态转换行为,定义了布局和连接的基本方式,它还可以包含一些处理逻辑。而过程部分则描述了设计的底层电路的行为,也就是每条线路应该如何响应输入信号。既可以采用结构化的方法,按照电路的层次结构分阶段设计,也可以采用面向对象的方法,将电路看作对象进行设计和建模。Verilog语言还支持设计重用,可以将设计中的复杂模块作为子模块重用,从而节省设计时间和成本。此外,Verilog语言还可以进行仿真、综合、布局布线等后续流程,以进行验证和实现。Verilog语言具有丰富的描述功能和强大的设计能力,可以满足复杂数字电路设计的要求,并且可以结合EDA工具和FPGA、ASIC等硬件进行完整的电路设计、验证和实现流程。它是数字电路设计领域中不可或缺的工具和语言之一。Verilog语言的设计方法多种多样,主要有两大类别,一种是自上而下的顶层设计,另一种是自下而上的顶层设计;这两者方式都支持分层设计与模块化设计结果可以在设计人员之间轻松沟通和共享,从而减少电路设计的工作量,缩短开发周期。REF_Ref134957954\r[5]。2.3可编程逻辑器件开发软件QuartusIIQuartusII是由英特尔公司开发的可编程逻辑器件开发软件,用于设计、编译和验证FPGA(现场可编程门阵列)和CPLD(复杂可编程逻辑器件)。QuartusII提供了一个集成的设计环境,包括设计入口、设计分析工具、合成器、仿真器、布局和布线工具等,使用户可以在一个综合的平台上完成整个FPGA设计流程。QuartusII支持多种硬件描述语言,包括VerilogHDL和VHDL,也支持SOPCbuilder和QSYS等设计工具。在Verilog/VHDL中,QuartusII支持行为级别、RTL(寄存器传输级)、门级别和物理级电路表示。除此之外,QuartusII还提供了强大的优化功能和分析工具,如时序分析、资源使用率分析、占用分析等,帮助用户进行设计优化和性能调试。同时,QuartusII也可以生成不同格式的输出文件,如bitstream数据、板级约束文件、仿真波形文件等。QuartusII是一款功能强大的可编程逻辑器件开发软件,广泛应用于各种数字电路设计领域。2.4Modelsim仿真软件ModelSim是一款由MentorGraphics开发的硬件描述语言仿真器,用于数字电子系统级设计验证和仿真,可支持多种硬件描述语言(HDL)如VHDL、Verilog等。Mentor的ModelSim软件是市面上比较好的的HDL语言模拟软件。在ModelSim中,设计人员可以一步一步地执行仿真过程,以逐步完成所需的操作。同时,他们可以随时查看程序中任何变量的当前值,以便了解单元或模块的输入和输出等连续变化。ModelSim还具有高级图形界面,可以显示波形图、状态机图、层次结构等各种信息,从而使设计人员更加直观地了解设计过程。。而比起QuartusII附带的该模拟器功能强大得多,是当今行业中使用最广泛的模拟器之一。它使用直接优化编译技术也采用了Tcl/Tk技术,采用单核仿真技术,所以对仿真进行编译快速且独立于平台的编译代码,方便IP核保护,用户界面和图形界面设计极其个性化,为用户提供了加快误差调整速度的手段,是FPGA/ASIC设计的首选仿真软件项目REF_Ref134957977\r[6]。2.5DDS技术及原理DirectDigitalSynthesizer(DDS)是一种数字信号处理技术,用于产生高质量的频率合成信号。DDS使用一个数字输入来直接生成输出信号的数字表示或样本点,该信号经过一个数模转换器之后就可以输出成为一个具体的频率信号。在DDS中,输入的数字信号由参考时钟和累加器组成。参考时钟是DDS内部时钟的基础,它定义了DDS系统输出信号所需要的固定频率。累加器被用来将参考时钟与数字输入相乘,并产生相应的输出信号。通过改变计数器中的数字,DDS系统可以直接控制生成的输出信号频率。FPGA对于DDS电路的设计和实现具有很大的灵活性和可扩展性。与专用DDS芯片相比,使用FPGA实现DDS电路可以根据具体的需求进行定制化设计,可以实现更高的精度和更复杂的功能。此外,FPGA具有现场可编程的特点,可以在设计完成后进行现场修改和调试,从而更加方便地进行电路调试和验证。另外,使用FPGA实现DDS电路的成本较低,不需要购买昂贵的专用芯片,并且FPGA的设计工具和开发环境也比较成熟,相对容易上手和使用。FPGA器件的可编程性和可扩展性也使得它具有广泛的应用范围,包括数字信号处理、信号调制、通信、图像处理等领域。总体上,采用FPGA实现DDS电路具有灵活、可扩展、成本低廉等优势,对于需要进行大规模集成和精密控制的应用场景具有较好的适应性和实际价值。REF_Ref134958001\r[7]。2.5.1DDS原理DDS的基本原理是利用采样定理,通过查表法产生波形,对于正弦信号发生器,其输出的波形可以用下式来描述:y(t)=Asin(ωt+θ),DDS模块主要由相位累加器、查找表、DAC转换器和低通滤波器组成,基本结构如下:图2.1数字频率合成器设计图2.5.2DDS特点高精度:DDS可达到非常高的频率和相位稳定性。由于它是完全由数字信号驱动的,因此可以实现非常稳定和可重复的频率输出。当DDS在40MHz的时钟下工作的时,根据抽样定理DDS输出的最高频率会小于系统时钟频率义的一半.同时由于低通滤波器的非理想因素,因此DDS通常最大能输出的频率为的40%。灵活性:DDS具有非常大的灵活性,可以产生任何所需的波形,并且可以瞬间切换到其他波形。这使其非常适合需要经常更换频率或波形的应用。快速响应:DDS的频率、相位和振幅可以很快地改变。由于其内部时钟是固态的,即没有机械部件或移动部件,因此能够提供非常快速的响应时间。低噪声:DDS的输出非常稳定,并且通常比传统的模拟振荡器具有更低的噪声水平。这意味着其输出可以在测量、测试和其他需要高精度和低噪声输出的应用中使用。数字化:DDS是数字式的,因此易于与其他数字系统集成,例如微控制器、FPGA和DSP等。这使得可以通过软编程进行班车调整,还可以进行多功能和远程控制。2.6DDS内部结构2.6.1相位累加器图3.2相位累加器原理图在工作时,DDS模块会通过参考时钟进行驱动,并不断累加相位累加器的值,来生成对应频率的信号。其中,相位累加器的单次累加值由频率控制字K决定,K值表示相位累加器每个时钟周期累加的相位角度,也就是每次向相位累加器中累加的值。频率控制字K是一个可编程的数值,通过改变K值,就可以改变相位累加器的单次累加值,从而改变输出信号的频率。例如,如果K=2πfs/clk,其中fs为输出信号的频率,clk为相位累加器的时钟频率,则相位累加器在每次时钟触发时就累加1个K值,即相位累加器每隔1/clk的时间,其输出的相位值就会增加2πfs/clk,从而产生对应频率的信号。当相位累加器的值大于等于2^n时,就会对2^n求余数并从头开始循环累加,以此来保证输出信号是周期性的,DDS输出信号的频率满足下列公式(fc为参考时钟):具体而言,DDS通过累加程序计数器(即频率控制字),从而生成所需的波形。通过更改ROM表格中存储的数据,可生成任意的波形。当相位累加器收到频率控制字时,它会将上一个时刻的相位值与频率控制字相加,并将结果作为下一个时刻的相位值输出到数字转模拟转换器(DAC),以生成模拟信号。同时它也可以实现高精度的数字频率合成,从而实现微小的相位增量。此外,相位累加器还可以通过添加不同比特数的加法器和寄存器来改变其分辨率,从而满足不同应用场景的需求。它还是是一种重要的数字电路,在数字频率合成器和数字调制器等领域得到广泛应用,以实现高精度、高性能的信号处理和产生模拟信号。为了使加法器在下一个Fclk时钟周期中继续累加寄存器的高M位数值,同时与频率控制字K相加,将作为地址值查找ROM表中的取样数据。REF_Ref134958027\r[8]。2.6.2波形ROM图3.3波形ROM示意图波形ROM是一种只读储存器,用于储存数字化波形数据。在波形ROM中,波形数据以二进制码的形式存储在内存芯片中。可以使用地址线来请求要访问的特定位置,并从数据线读取该位置处的内容。由于波形ROM是只读的,因此存储的数据不能被修改或删除。当需要扭曲、过滤、操作或生成新的波形时,数字电路会从波形ROM中读取原始波形数据,并将其传递到数据处理单元以进行进一步处理。对于波形ROM,步长(stepsize)指的是在存储波形数据时每一个点之间的时间差。换句话说,它是离散采样的时间间隔。例如,如果一个波形数据是以1khz的采样率采集的,那么在波形ROM中每个采样点之间的时间间隔就是1ms。如果这个波形数据需要存储在一个8-bit的波形ROM中,那么该波形ROM可以存储256个采样点的数据,其中每两个相邻采样点之间的时间间隔是相同的,即步长固定。在使用波形ROM时,使用正确的步长很重要,因为它决定了波形输出值的精度和波形重现的质量。如果步长太大,则可能导致波形的粗糙性;反之,如果步长太小,则会增加波形ROM的容量,并可能影响系统的实时性能。波形ROM存储的是数字信号的离散化幅度序列,每个地址对应的幅度值被对应到振荡器输出的正弦或余弦波上,形成一个数字信号。输出信号的频率、相位和幅度均可通过相位累加器、频率控制字和振荡器实现。由于波形ROM存储的序列并不是连续的,其存储容量有限,因此相位累加器的字长不一定等于M地址线的位数,即相位累加器能输出的精度可能高于波形ROM的幅度量化精度,这种情况就会发生相位截断误差。相位误差的大小取决于相位累加器的精度和波形ROM的幅度量化位数之差,若相位误差超过幅度步进因子,则会对输出信号的质量产生影响。为了解决这个问题,需要将数字信号转换为模拟信号来得到平滑的波形输出。通常采用数模转换器(DAC)将离散化的数字幅度序列转换为相应的模拟信号,经过一定的滤波和放大等处理之后,就可以得到质量较高的平滑模拟信号输出。采用高分辨率的DAC,可以降低相位截断误差带来的影响,提高DDS输出信号的精度和稳定性。ROM查找表可以将输入值映射到特定的输出值。ROM查找表由一组已预先编程的二进制值构成,因此也被称为“编程逻辑阵列”(PLA)。每个ROM查找表通常由两个部分组成:地址线和数据线。地址线可以接受一个N位的二进制输入值,其中N是ROM查找表的地址宽度。数据线则从ROM查找表中输出一个M位的结果,其中M是ROM查找表的输出宽度。当输入值被应用于ROM查找表的地址线时,它会导致ROM查找表的相关位置处的数据从数据线输出REF_Ref134958047\r[9]。ROM查找表可用于各种数字电路和系统,例如控制电路、计数电路、状态机等。在这些应用中,查找表在不同的时钟周期生成不同的输出值,然后根据输出值驱动其他电路或控制逻辑。总之,ROM查找表能让工程师将逻辑功能实现为硬件,以提高速度和性能。
第3章软件设计模块3.1系统模块构造与分析DDS数字移相信号发生器完全是由VHDL语言完成设计。并在FPGA器件上实现的。电路要求能输出2路正弦信号,由2路10位D/A实现波形输出。信号频率用频率控制字PWORD来输入,移相信号用相位控制字FWORD来输入。FPGA中的频率控制字是通过将一个数字信号输入到FPGA芯片中来实现的。具体而言,需要使用FPGA芯片上的一些特定IO引脚,例如GPIO(通用输入/输出)或PLL(锁相环)引脚。如果要使用GPIO引脚进行频率控制字输入,则需要将数字信号连接到FPGA开发板上分配给GPIO引脚的物理引脚。然后,在FPGA的设计代码中,可以使用VerilogHDL或VHDL等硬件描述语言编写代码,以读取GPIO引脚上的数字信号,并将其转换为需要的频率控制字。如果要使用PLL引脚进行频率控制字输入,则需要先在FPGA开发板上配置PLL外部电路。然后,在FPGA的设计代码中,可以使用特定的PLl模块和模块参数设置来控制PLL的工作方式,从而实现对频率控制字的控制。总之,实现FPGA中频率控制字的输入涉及到硬件的配置和设计代码的编写。具体实现方法根据具体的FPGA型号和开发板型号而定,需要结合相关的用户手册或资料进行详细参考。Address32B及Address10B分别为32位和10位加法器:SIN_ROM是存放波形数据的查找表。DFF32B和DFF10B分别是32位和10位寄存器;使用一个32位寄存器,将高8位作为ROM的地址位,其余24位无特殊作用,寄存器按照系统时钟进行自加,此时高8位的变化频率与用于自加的系统时钟频率有了成倍的关系,很像计数器计数频率变化但存在区别;32位寄存器使用低位向高位进位可以确保每次加的数据都产生了效果,都向高位产生了进位:POUT和FOUT为8位输出,可以分别与两个高速D/A连接,输出参考信号和可移相波形信号REF_Ref134958071\r[10]。本设计将分为5个功能模块来完成DDS移相信号发生器,即波形数据ROM模块,10位加法器模块,10位寄存器模块,32位加法器模块和32寄存器模块。由于功能模块主要依赖于需要同位锁存器和加法器共同构建的相位累加器,因此,相位累加器在此环节上相当关键;在DDS电路中,也可以采用模块化设计方法,将相位累加器、频率控制字、波形ROM、DAC、滤波器等不同的功能模块分离出来,然后独立设计、测试和优化。这样可以有效减少整个系统的复杂度和开发难度,同时也有利于提高电路系统的性能和可靠性,利用QuartusII将各个模块的原理图进行编译,利用Verilog设计各个功能模块,再整体进行设计,从而实现了一个完整的相位移动信号发生器电路。。相位累加器通常采用32位的寄存器,其范围为0到2^32-1,相当于将一个圆(360度)分成2^32份,每一份为一个相位角度,可以达到非常高的分辨率和精度。初始相位控制字是用于控制输出信号的相位的,它可以控制输出信号的相位从任意位置开始,通过改变相位累加器的初始值来实现。例如,当我们需要让输出信号在某一特定相位上开始,可以将相位累加器的初始值设为相应的相位,这样输出信号就可以从该相位上开始输出。3.1.1系统模块之十位加法器此模块为10位相位累加器中的一部分,功能模块主要依赖于需要同位锁存器和加法器共同构建的相位累加器。同位相位累加器由同位加法器和同位寄存器构成,此时的加法器是在下一个Fclk时钟周期中继续累加32位寄存器的高8位数值,同时与频率控制字PWORD相加,将作为地址值查找ROM表中的取样数据。输入端口数据为频率控制字与32位寄存器高八位存储数据,输出端口为10位寄存器的输入口。图3.1十位加法器示意图(含输入端口与输出端口)3.1.2系统模块之10位寄存器此模块同样为10位相位累加器中的一部分,锁存器作为相位累加器的第二环,负责将前一环加法器上的数据存储所需的数据和指令地址,以及中间结果和状态信息等,并将数据输入到ROM中进行查找,其输入端,一端接前一环加法器的输出端,另一环接50M时钟脉冲信号,寄存器输出端连接ROM的输入端口,将数据发送到ROM中图3.2十位锁存器示意图(含输入端与输出端)3.1.3系统模块之32位加法器此模块为132位相位累加器中的一部分,功能模块同样主要依赖于需要同位锁存器和加法器共同构建的相位累加器。同位相位累加器由同位加法器和同位寄存器构成,此时的加法器是在下一个Fclk时钟周期中继续累加同位寄存器的高8位数值,同时与相位控制字FWORD相加,将作为地址值查找第二个ROM表中的取样数据。输入端口数据为相位控制字与32位寄存器高八位存储数据,输出端口为32位寄存器的输入口。形成一个锁循环模块。图3.3三十二位加法器示意图(含输入端与输出端)3.1.4系统模块之32位寄存器此模块同样为32位相位累加器中的一部分,锁存器作为相位累加器的第二环,负责将前一环加法器上的数据存储所需的数据和指令地址,以及中间结果和状态信息等,并将数据输入到ROM中进行查找,其输入端,一端接前一环加法器的输出端,另一环接50M时钟脉冲信号,寄存器输出端高8位连接ROM的输入端口,将数据发送到ROM中;同时,该32位寄存器与同位加法器形成循环,不断提供数据。图3.4三十二位锁存器(含输入端与输出端)3.1.5系统模块之ROM模块在建立波形ROM模块之前首先要进行波形存储器ROM的初始化。波形ROM初始化则是指在设计电路时将需要的波形数据预先加载到ROM芯片中,以便在运行时快速访问。ROM输入端接时钟信号与对应寄存器的输出端,输出端直接接DAC模块的对应部位图3.5ROM示意图ROM初始化是DDS电路中非常重要的一步,它决定了输出波形的幅度量化和精度,直接影响到DDS输出信号的质量和性能。ROM初始化包括将待存储的波形数据转换为适合存储的数据格式,并将其存储到ROM中。通过c程序编写正弦波形,将编写好的c程序自动生成的mif文件放入Quartus中进行记忆储存,生成所需要的rom查找表REF_Ref134958134\r[12]。图3.5生成的ROM查找表3.2基于FPGA的DDS软件顶层结构设计顶层结构是指系统、软件或网络中最高级别的组织结构,通常包括系统或软件的主要模块、功能和层次关系。在软件开发中,通常会先设计出顶层结构,以便更好地组织和管理整个系统或软件的开发过程。在软件开发和系统设计中,设计良好的顶层结构可以提高系统的可维护性、可扩展性和可重用性,更容易进行模块化开发和测试。而在QuartusII中,顶层结构决定一整个框架是否能编译成功,是否能将对应的数据下载到硬件程序中。所有的原理图文件的生成需要确定顶层文件的正确与否。图3.6顶层设计结果示意图3.3模拟仿真波形 图3.7模拟仿真结果示意图
第4章硬件连接模块4.1硬件连接硬件部分主要由个人笔记本电脑。实验室EDA试验箱与数字示波器构成。将个人笔记本电脑与实验室EDA箱FPGA部分连接,固定好芯片所对应的引脚,此时在QuartusII中下载驱动,待驱动下载成功后,方可将DA模块的输出接示波器。图4.1驱动下载成功图图4.2硬件连接图4.2D/A转换模块模块使用实验室的DAC0832是一种常用的8位数字模拟转换器(DAC),可以将数字信号(通常是一个8位二进制数)转换成相应的模拟电压或电流输出。DAC0832采用双电源供电模式,具有高速、低失调、低电流、稳定性好等优点,在DDS电路中,DAC0832常用于将DDS芯片输出的数字信号转换为模拟信号,然后进行滤波和放大等处理,最终得到输出的正弦或余弦波。同时,DAC0832的引脚接口和控制方式也比较简单,易于与其他电路组合,具有较高的通用性和适用性。DAC0832具有8位分辨率,即它可以将2^8=256个不同的数字信号转换成不同的模拟输出电压或电流。DAC0832使用的是双极性输出,这意味着它可以输出正电压、负电压甚至零点电平。DAC0832内部包含一个稳压电源和一个运放以确保高精度的输出和线性度。在DAC0832中,稳压电源可使输入电压范围增强,并通过对供电电压的监控来确保输出的稳定性。运放作为差分放大器提供对输入电压的增益,从而提供更高的准确性和稳定性。此外,DAC0832还具有输出缓冲,它可以通过提供低输出阻抗来显著降低加载效应。多路复用器也可以将输出与另一个DAC的输入相连,这样就可以通过串联两个或更多DAC来实现更高精度的输出。这些辅助功能大大提高了DAC0832的可靠性和灵活性REF_Ref134958863\r[16]。图4.3DAC0832内部结构图它的内部结构由多个功能模块组成。R-2RLadder网络:DAC0832采用基于电阻比例方法的R-2R梯形网络,用于将输入的数字信号转换为相应的模拟电压。这一部分由R和2R电阻交替连接构成,通过4位宽的二进制数字控制电压的输出。R和2R电阻之所以不同,是为了保证梯形网络的电阻比例趋近于精确值,误差可以在±1LSB内运行。输入寄存器:输入寄存器用于接收待转换的数字信号,能存储8位数据。每当新的数字信号输入时,输入寄存器就会更新存储的数据,等待被转换为模拟电压输出。串行数字控制器:串行数字控制器通常包含SHIFT、LD、CS和CLK四个引腳,是一种实现DAC0832串行接口的辅助芯片。它可以用来选择字节宽度,设置参考电压和控制输出电平。运算放大器:运算放大器用于增加OUTPUT+和OUTPUT-之间的差异,并将其转换为两路输出之一.它依赖于输入所选择的参考电压。模拟信号在这里被缓存,并传递到输出端,由此形成了DAC芯片的输出电压REF_Ref134958828\r[15]。4.3低通滤波器模块滤波器在无线电技术中的应用非常广泛,它的作用是对信号进行频率选择和滤波,抑制不需要的噪声和干扰,提取出所需要的信息信号。在DDS电路中,滤波器通常用于对DAC输出的模拟信号进行去除高频成分和谐波的滤波处理,从而得到更纯净的正弦或余弦波信号。滤波器的设计和性能评估通常涉及到多个指标,包括通带、阻带和过渡带等。通带是滤波器允许通过的频率范围,通常用于保留所需信号的频率成分;阻带是滤波器抑制的频率范围,通常用于去除不需要的噪声和干扰;而过渡带则是通带与阻带之间的频率范围,用于平衡通带和阻带之间的折衷。理想情况下,滤波器过渡区应尽可能小,以减少对信号的失真和滤波器的纯度影响。滤波器根据其输入输出信号的形式,分为模拟滤波器和数字滤波器两类。其中,模拟滤波器采用模拟电路设计,它能够连续地对输入信号进行滤波处理,通常包括无源滤波器和有源滤波器两种。无源滤波器是由被动元件构成,例如电阻、电容、电感等,它能够改变输入信号的频率分量而不消耗能量;而有源滤波器则需要使用一些主动元件,例如晶体管、运放等,它们通常具有更好的增益、频率选择性和稳定性等优点。在DDS电路中,滤波器通常根据需要选择不同类型的滤波器。比如,低通滤波器用于去除高频噪声和谐波干扰,保留所需的低频成分;高通滤波器用于去除低频噪声和直流成分,保留高频信号成分;带通滤波器用于保留某一频带的信号,去除其他频率成分;带阻滤波器用于去除某一频段的干扰信号,保留其他频率的信号。选择合适的滤波器可以大大提高DDS输出信号的质量和性能。数字滤波器则是采用数字信号处理(DSP)的方式进行滤波处理,它通过离散化的方式对输入信号进行采样和量化,并使用数字算法进行滤波处理。数字滤波器的主要优点是可以灵活地控制滤波特性和实现复杂的滤波算法,同时可以通过程序编程实现不同的滤波器结构和算法,具有较高的适应性和通用性。DAC0832芯片输出的信号是一些的波形数据离散化,其波形呈阶梯状,而不是连续的。为了得到输出连续的波形,为此通过一个低通滤波器能得以解决,将高频部分的输出波形给滤除干净REF_Ref134958802\r[14]。图4.4有源二阶低通滤波器示意图其传递函数为在上述等式中,K0为电流中的直流增益。§为电路阻尼率,W0=2Πf0是电路其固有的频率。REF_Ref134958761\r[13]其分别为:当§=1/√2时,它的幅频特性非常平坦。只有当设计的滤波器的截止频率大于输入信号的频率时,输入信号才能被准确地传送下去(即既没有被放大,又没有被衰减)。当C1=C2=C,RF1=RF2=RF,即K0=2时由上式可知,当C为定值时,该滤波器的截止频率f0与R成反比。改变电阻的可以调整截止频率f0的大小REF_Ref134958099\r[11]。4.4波形结果分析因为实验室芯片老化以及滤波情况不太理想等可能性。加上硬件条件受限,我选择一路D/A转换输出波形,且根据试验箱板子上DAC0832芯片的规模,将D/A转换输出端口改成了8位。且滤出来的波形顶部峰值有些失真。 图4.5第一次波形结果紧接着我认为是引脚接触不稳以及FPGA芯片接触不太稳定,于是重新固定了引脚加以连接,并且将示波器换接端口,得到如下波形。 图4.6第二次波形结果以上整体已经实现硬件调试,受限于时间以及试验箱各芯片的特殊情况;比如DAC0832,我写了驱动程序(在没写驱动程序之前,波形一直没有),大体上完成了硬件功能实现
结论这次基于FPGA的DDS移相信号发生器的设计,利用了DDS结构的优缺点,根据实际需要,完成了相关的调试、仿真并产生了相关的波形。该论文提出了一个简单有效的相位累加器架构,该架构可以通过调整角度步长和累加器大小来产生所需的输出信号,优化了输出信号质量、稳定性和抗干扰能力;本次并没有用专门的DDS芯片。我根据实际设计要求来对DDS的功能进行了删除和增加,增强了我FPGA设
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年度计算机四级复习提分资料及完整答案详解【有一套】
- 2024-2025学年化验员复习提分资料含答案详解【培优B卷】
- 2024-2025学年度医师定期考核过关检测试卷含答案详解(新)
- 2024-2025学年公务员考试《常识》模拟题库附答案详解【预热题】
- 2025年销售与谈判认证考试试卷及答案
- 2025年河北省石家庄市政府采购评审专家考试真题含标准答案
- 护理急救技能培训
- 丝绸之路信息港股份公司校招试题及答案
- 施耐德电气(中国)招聘面试题及答案
- 上海国际港务集团校招试题及答案
- 2026广东深圳市优才人力资源有限公司公开招聘聘员(派遣至龙城街道)18人备考题库附答案详解(典型题)
- 2024-2025学年度哈尔滨传媒职业学院单招考试文化素质数学通关题库完美版附答案详解
- 2026年司法协理员考试题及答案
- 2026年宁夏财经职业技术学院单招综合素质考试题库附答案详解(能力提升)
- 2026年四川艺术职业学院单招综合素质考试题库附参考答案详解(满分必刷)
- 2026年安徽国际商务职业学院单招职业技能测试题库附参考答案详解(培优)
- 华为业务接待管理制度
- 套期保值业务管理制度
- 2026年世界水日节约用水主题班会
- 2026山东铁路投资控股集团有限公司招聘80人笔试参考题库及答案解析
- 2025年湖南医药发展投资集团有限公司总部社会招聘2人笔试历年常考点试题专练附带答案详解2套试卷
评论
0/150
提交评论