通信工程毕业设计-基于FPGA的信号发生器.docx
编号:蹒卷井令孑科技大珍GUlLlNUNIVERSITYOFELECTRONICTECHNOLOGY毕业设计(论文)说明书题目:基于FPGA的信号发生器的设计和实现院(系):信息与通信学院专业:通信工程学生姓名:李闪闪学号:0800210319指导教师:梁红玉职称:讲师题目类型:理论研究实验研究工程设计工程技术研究软件开发2012年5月25日摘要信号发生器又称为波形发生器,是一种常用的信号源,广泛应用于电子电路、通信、控制和教学实验等领域。它是科研及工程实践中最重要的仪器之一,以往多用硬件组成,系统结构比较复杂,可维护性和可操作性不佳。随着计算机技术的发展,信号发生器的设计制作越来越多的是用计算机技术,种类繁多,价格、性能差异很大。用FPGA或CPLD来实现,它的优点是可以进行功能仿真,而且FPGA和CPLD的片内资源丰富,设计的流程简单。本课题主要研究基于FPGA的信号发生器的设计和实现,设计研究工作大部分是在计算机软件平台QuartusIl下完成的。在QuartusIl环境下,先用verilog语言进行各模块的程序编写,然后生成顶层模块,连接各模块端口,形成信号发生器顶层原理图,通过QUartUSII仿真,得到具体数据。最后通过FPGA开发板连接示波器,调试出波形进行总结和分析。本文结构如下:第一章绪论,介绍课题研究的目的、发展现状,最后再说明课题研究的主要内容O第二章对本课题研究的任务要求以及工作流程进行说明。第三章简单介绍开发工具和FPGA原理。第四章详细说明信号发生器各模块的verilog语言编程和相关原理。第五章总结。关键词:FPGA;Verilog编程语言;信号发生器;QuartusllAbstractSignalgenerator,alsoknownasawaveformgenerator,isacommonsource,widelyusedinelectroniccircuits,communications,control,andteachingexperiments.Itisoneofthemostimportantinstrumentintheresearchandengineeringpractice,pastuseofhardwarecomponents,systemarchitectureismorecomplex,poormaintainabilityandoperability.Withthedevelopmentofcomputertechnology,moreandmore,signalgeneratordesignistheuseofcomputertechnology,awiderangeofprice,performance,verydifferent.FPGAorCPLDzitsadvantageisthatthefunctionalsimulation,andFPGAandCPLDchipisrichinresources,thedesignprocessissimple.ThemainsubjectofstudydesignandimplementationofFPGA-basedsignalgenerator,designedmostoftheworkcompletedinthecomputersoftwareplatform,theQuartusII.TheprogrammingofthemoduleintheQuartusIlenvironment,usetheveriloglanguageandthengenerateatop-levelmodule,connecttheportsofeachmodule,theformationofthetop-levelschematicdiagramofthesignalgeneratorbytheQuartusIlsimulationspecificdata.Finally,theFPGAdevelopmentboardconnectedtotheoscilloscope,debugging,waveformweresummarizedandanalyzed.Thepaperisorganizedasfollows:ChapterIintroducesthepurposeofresearch,developmentstatus,thefinaldescriptionoftheresearchofmaincontent.ChapterIlgivesthetaskrequirementsoftheresearchwork,aswellasexplaintheprocess.Chapter III isabriefintroductiontodevelopmenttoolsandFPGAprinciple.Chapter IV detailsthesignalgeneratormoduleVerilogprogramminglanguageandrelatedprinciples.Chapter V issummary.Keywords:FPGA;Verilogprogramminglanguage;signalgenerator;theQuartusIl目录引言11绪论21.l课题研究的意义21.2国内外研究状况及趋势21.3本课题研究的主要内容22课题设计要求和方案说明22.1 课题研究内容和要求22.2 课题设计方案及参数指标说明32.2.1 设计方案32.2.2 参数指标说明32.3 课题研究和设计工作流程33开发工具和FPGA原理43.1 AlteraQuartusIl9.043.2 FPGA的原理44信号发生器的VerilogHDL语言编程设计和模块建模54.1 信号发生器54.1.1 信号发生器顶层图54.1.2 信号发生器流程图64.1.3 信号发生器模块64.2 锁相环模块64.3 矩阵键盘扫描模块74.3.1 键盘扫描状态图84.3.2 矩阵键盘扫描模块84.4 分频模块94.4.1 吞脉冲分频原理94.4.2 分频模块及仿真分析104.5 地址发生器模块104.5.1 定制初始化数据文件104.5.2 定制LPM元件124.5.3 地址发生器模块1246波形选择模块134.7 幅度调节模块144.8 DA转换模块144.8.1 £变换的原理144.8.2 -DAC的结构144.8.3 -DAC的FPGA实现154.9 滤波器164.10 实物图165总结17谢辞19参考文献20引言随着我国的经济日益增长,社会对电子产品的需求量也就越来越大,目前,我国的电子产品市场正在迅速的壮大,市场前景广阔。FPGA在现代数字电路设计中发挥着越来越重要的作用。FPGA/CPLD所具有的静态可重复编程和动态在系统重构的特性,使得硬件的功能可以像软件一样通过编程来修改,这样就极大地提高了电子系统设计的灵活性和通用性,缩短了产品的上市时间并降低可电子系统的开发成本。传统信号发生器大多由模拟电路构成,存在连线复杂、调试烦琐且可靠性较差等缺点。以VHDL编程语言和FPGA器件为核心的可调信号发生器的设计实现,提高了系统可靠性,实现了系统信号实时快速测量,也为其广泛应用于实际领域创造了条件。利用FPGA具有的静态可重复编程和动态可系统重构的特性,使得硬件功能像软件一样通过编程修改,从而提高开发效率,缩短研发周期。信号发生器是一种常用的信号源,它是一种为电子测量和计量工作提供信号的设备,信号源作为一种基本电子设备在教学、科研、电子产品测量与调试、部队设备技术保障等领域,都有着广泛的应用。论文先简要介绍了信号发生器的一些基本理论以及它所使用的工具QUartUSII。然后提出了基于信号发生器各个模块及整体的设计方案,并对其建模和FPGA语言编程,最后在通过FPGA开发板演示信号发生器运行结果,在示波器上显示出波形,并对该系统进行了性能的分析和比较。1绪论1.1 课题研究的意义随着经济和科技的发展,对相应的测试仪器和测试手段也提出了更高的要求,传统的信号发生器大多采用专用芯片或单片机或模拟电路,成本高、控制方式不灵活、波形种类较少等不能满足要求。但近几年随着FPGA技术的快速发展和广泛应用,其在信号发生器上的应用得到了很好的认同,很好的解决了有传统信号发生器带来的一些问题,信号发生器己成为测试仪器中至关重要的一类,因此开发信号发生器具有重大意义。1.2 国内外研究状况及趋势随着电子测量及其他部门对各类信号发生器的广泛需求及电子技术的迅速发展,促使信号发生器种类日益增多,性能日益提高,尤其随着70年代微处理器的出现更促使信号发生器向着自动化、智能化发展,但还是存在一些问题。直到近年来现场可编程门阵列(FPGA)技术得到快速的发展和广泛的应用,其资源容量、工作频率以及集成度都得到了极大的提高,使得利用FPGA实现某些专用数字集成电路得到了大家的关注,而基于FPGA实现的信号发生器和以前相比有着灵活的接口和控制方式、较短的转换时间、较宽的宽带、以及相位连续变化和频率分辨率较高等优点,比起专用芯片功耗也低,为信号发生器的发展提供了一种新的设计方法和思路。目前以硬件描述语言(VeriIog或VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至FPGA上进行测试,是现代IC设计验证的技术主流。这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR)或者更复杂一些的组合功能比如解码器或数学方程式。在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flip-flop)或者其他更加完整的记忆块。1.3 本课题研究的主要内容本课题主要研究基于FPGA的信号发生器的设计和实现问题。具体内容如下:(1)信号产生模块:产生正弦波、三角波和方波信号的数字信号,能通过滤波器转化成模拟信号的正弦波、三角波和方波的波形。(2)数模转换电路模块:分为波形DAC和调幅DAC两部分。波形DAC是根据FPGA有输出数据产生相应的模拟波形的输出;调幅DAC是根据FPGA有输出数据,用来调节波形DAC的基准电压,达到输出波形幅度调节的目的。(3)频率控制模块:通过分频器设置固定和可变的分频系数,从而改变信号的频率,达到频率调节调功能。最后,整理仿真波形、数据,进行分析总结。2课题设计要求和方案说明2.1 课题研究内容和要求本课题要求使用FPGA软件,通过软件设计并实现信号发生器。要完成的内容包括如下:学习并理解信号发生器的基本原理。分析并熟练掌握信号弹发生器的实现方案及其原理。最后在FPGA上实现设计总体实现方案,通过FPGA开发板和示波器得出正弦波、矩形波和三角波,深入学习并掌握各个模块的工作原理,功能和编程实现方法。2.2 课题设计方案及参数指标说明2.2.1 设计方案本课题采用4*4矩阵键盘作为输入设备,通过吞脉冲技术小数分频法对频率进行分频得到所需要的频率进行频率调节控制,将波形数据存储在一个ROM内存里,通过地址读取波形数据,再通过DA转换器输出波形,其中DA转换器采用的是变换采用过取样技术。本课题的重点难点为吞脉冲分频和DA转换器。2.2.2 参数指标说明性能指标要求:(1)信号的输出峰值L5V,步进小于0.5V。(2)输出频率f范围为llHz100kHz,步进频率调节不大于1Hz。(3)两路信号相位差调节等于1。观察并分析仿真和实现结果,与理论结果进行比较,检验结果是否正确,列出数据,得出结论。2.3 课题研究和设计工作流程工作流程图如下,后续章节将围绕该设计步骤顺序对本次课题研究进行详细叙述。图2-1课题工作流程3开发工具和FPGA原理3.1 AIteraQuartusIl9.0QUartUSH是Atera的综合性PLD开发软件,支持原理图、VHDLsVerilOgHDL以及AHDL(AlteraHardwareDescriptionLanguage)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。QUartUSIl可以在XP、LinUX以及UniX上使用,除了可以使用TCL完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。QuartusIl支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。此外,QuartusIl通过和DSPBuilder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持AItera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。MaxplusIl作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。目前Altera已经停止了对MaxplusIl的更新支持,QuartusIl与之相比不仅仅是支持器件类型的丰富和图形界面的改变。Altera在QuartusIl中包含了许多诸如SignalTaPII、ChiPEditOr和RTLVieWer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了MaxplusIl友好的图形界面及简便的使用方法。AlteraQuartusIl作为一种可编程逻辑的设计环境油于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。3.2 FPGA的原理FPGA是FieIdPrOgrammabIeGateArray(现场可编程门阵列)的缩写,代表的是一种可编程逻辑器件,它可以在制造完成后由用户根据自己的需要定义其逻辑功能。FPGA包含了一个逻辑单元(可以是门,也可以是查找表RAM)的阵列、触发器以及可编程的互连线。除此之外,现在的一些大规模FPGA还包含了片内RAM、嵌入式CPU、高速收发器等资源。FPGA的显著特点是有一个窄输入的逻辑单元,使用分布式互连方案,相对于传统的诸如PAL和PLA之类的可编程逻辑器件来说,FPGA的设计更加灵活。FPGA采用了逻辑单元阵列LCA(LogicCellArray)这样一个新概念,内部包括可配置逻辑模块CLB(ConfigurableLogicBlock)、输出输入模块IoB(InputOutputBlock)和内部连线(Interconnect)三个部分。FPGA的基本特点主要有:采用FPGA设计ASlC电路,用户不需要投片生产,就能得到合用的芯片。FPGA可做其它全定制或半定制ASIC电路的中试样片。FPGA内部有丰富的触发器和I/0引脚。FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。FPGA采用高速CHMoS工艺,功耗低,可以与CMoS、TTL电平兼容。可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。目前FPGA的品种很多,有XILlNX的XC系列、Tl公司的TPC系列、ALTERA公司的FlEX系列等。FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROMsPROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA1不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。FPGA有多种配置模式:并行主模式为一片FPGA加一片EPROM的方式;主从模式可以支持一片PROM编程多片FPGA;串行模式可以采用串行PROM编程FPGA;外设模式可以将FPGA作为微处理器的外设,由微处理器对其编程。4信号发生器的VerilogHDL语言编程设计和模块建模4.1 信号发生器4.1.1 信号发生器顶层图图4-1信号发生器顶层图4.1.2 信号发生器流程图图4-2信号发生器流程图4.1.3信号发生器模块信号发生器模块是本课题的一个整体的模块,从图中我们可以看出,通过FPGA开发板从Clk端口输入一个20MHz的基准时钟信号,经过信号发生器模块,可以输出。Uja和。UJb双通道信号,并在示波器上显示出波形。通过reset端口进行复位,并通过rowin3.0和rowout3.0两个端口8条数据线,连接到4*4矩阵键盘,通过矩阵键盘控制,可实现频率调节、幅度调节、相位调节、占空比调节、波形转换、a/b路切换等功能。图4-3信号发生器模块4.2 锁相环模块锁相环模块是通过QuartusIl的MegaWizardPIugJnManager配置两个输出端口,一个倍频2倍,另一个倍频到20倍。通过FPGA提供20M基准频率,分别倍频得到40MHZ和400MHZ频率,提供给矩阵键盘控制模块、频率控制模块以及DA转换模块使用。本课题中的DA转换模块所用到的频率要超出400MHZ的,但由于锁相环倍频超出400MHz就会出现错误,所以只能倍频到400MHzo图4-4锁相环模块4.3矩阵键盘扫描模块图4-5矩阵键盘扫描状态图4.3.1键盘扫描状态图图4-5为键盘扫描的状态图,具体按键扫描说明如下:State0:给各个参数赋初值,如频率,幅度,波形,占空比,相位差。State1:清零keyjlag标志位,load信号(相位重装入信号,高电平有效);键盘扫描输出端Colollt置零。同时检测rowin,如果rowin!=4,bllll,说明有键按下,跳转到State2,并且令扫描输出端输出1110,扫描第一列。若rowin=4tbllll,没有键按下,则跳转回1,继续等待。State2:检测rowin,如果rowin仍然不等于IIlL说明按下了第一列的键,跳转到State6,否则跳转到State3,并且扫描输出端输出IlOL扫描第二列。State3:检测rowin,如果rowin仍然不等于1111,说明按下了第二列的键,跳转到State6,否则跳转到State4,并且扫描输出端输出1011,扫描第三列。State4:检测rowin,如果rowin仍然不等于1111,说明按下了第三列的键,跳转到State6,否则跳转到State5,并且扫描输出端输出OllL扫描第四列。State5:检测rowin,如果rowin仍然不等于IIll,说明按下了第四列的键,跳转到state6,否则跳转回state1,重新扫描。State6:将rowin的值存入寄存器rowj11-reg,col的值存入colout-reg1将key_flag置一,表示扫描倒了键值,同时检测rowin,如果rowin不等于IIIL则继续在State6里跳转,知道按键被松手Mrowin=Illl),跳转到State7。State7:将colout_reg和rowin_reg的值并置一colout-reg1rowin-reg,用case语句判别,根据不同的值进行不同的操作。操作后跳转回State1,重新扫描。4.3.2矩阵键盘扫描模块:key_scanelkreset1 rowin3.Ocolout3.0 fre_out_A(31.0 fre_out_B31.0 am_coeA7.0 am_coeB7.0 wave_kind_outA(2. .0 wave_kind_outB2. .0duty_ou1_A7.0 duty_out_B7.0 phs_out8.0 loadinst7图4-6矩阵键盘扫描模块4.4 分频模块4.4.1 吞脉冲分频原理图4-7脉冲删除电路图为脉冲删除电路工作原理:首先设置n倍频计数累加器的模m,在输入基频f的作用下,每来一个基频脉冲f,n倍频计数累加器就加no当计数值不大于计数器的模m时,就产生一个删除脉冲,并传送给脉冲删除控制器,此时基频脉冲将被脉冲删除控制器过滤掉一个脉冲,从而实现脉冲删除C脉冲删除器的数学实现:产(保留系数)=预置保留脉冲一个周期脉冲总数那么,脉冲保留间隔q:q二一r(当q不是整数时,将会根据余数发生器反馈的余数来决定q取离q最近的两个整数之一)即,每q个脉冲里,将被保留一个脉冲。刚在一个周期当中保留的脉冲总数为n0即可得到k=-m分频系数:4.4.2 分频模块及仿真分析图4-8分频模块如图5-8仿真结果所示,输入为50KHz,但由于我们把一个波形周期分为360个离散点,所以我们实际步进预置n=50K*360=18MHz1而周期总脉冲数为40MHz,所以q=lr=mn=2.22,所以q示余数取2或3,如图5-8,每2个脉冲或3个脉冲里保留了一个脉冲,在整个周期里,40M个脉冲保留了18M个脉冲,即是将40MHz频率分频成了18MHz的频率,在后面的DA转换中,18MHz频率的波形经DA转换后,变成了50KHZ的波形频率。别外,得用余数发生器可以有效地保证分频后的频率可以尽可能地分布在整个周期里C经仿真分析结果来看,此分频模块是可行的。4.5 地址发生器模块4.5.1 定制初始化数据文件QUartUSIl能接受的LPM_ROM模块中的初始化数据文件的格式有两种:.mif格式文件和.hex格式文件。实际应用中只要使用其中一种格式的文件即可。下面采用mif格式文件,调出产生ROM数据文件大小的选择窗。根据360点8位正弦数据的情况,可选ROM的数据数NUmber为512,数据宽WordSiZe取8位。单击OK按钮,将出现图2所示的空的.mif数据表格。表格中的数据格式通过Matlab编写一个离散正弦信号的M文件,可生成正弦波或者三角波的ROM数据,其程序如下:functiondata=sine- N=360;- a(l:l:N)=O;%清零- :forb=l:360- a(b)=round(127*sin(2*pi*(bT)/360)+128;%正弦幅度计算%三角波幅度计算:a(b)=round(127*sawtooth(2*pi*(b-1)/360,0.5)+128:- end- number=0:359;- fori=l360- COilIeMi)='定义国号- end- fori=1:360- seiRi(i)三,/;%定义分号- end- data=number;comer;a;semi;- fid=fopen('F:毕设data_sine.txt','w'):%在'F:毕设'下生成文件data.txt- fprintf(fi,%d%c%d%cn,9data);%格式化输出到fid指定的data_sine.txt中- fclose(fid):%释放文件指针和有关缓冲区图4-10离散正弦信号程序在Matlab上运行该M文件,最后将其得到的三百六十个数据复制到.mif数据表格中即可得到图中的表格数据CAddrI+0+1÷2+3+4+5+6+701245789118121415171819212216242526282931323324353638394142434532464849505253555640575960626364666748697072737476777956808183848687889064919394969798100101721031041051071081101111128011411511711812012112212488125127128129131132134135961361381391411421441451461041481491511521531551561581121591601621631651661681691201701721731751761771791801281821831841861871891901921361931941961971992002012031442042062072082102112132141522152172182202212232242251602272282302312322342352371682382392412422442452472481762492512522542552542522511842492482472452442422412391922382372352342322312302282002272252242232212202182172082152142132112102082072062162042032012001991971961942241931921901891871861841832321821801791771761751731724.5.2 定制LPM元件打开MegaWizardPIugJnManager初始对话框,选择CreateanewCUStom项。单击NeXt按钮后,选择Storage项下的LPM,R0M1再选择ACEXlK器件和VHDL语言方式;最后输入ROM文件存放的路径和文件名:F:sing_gntdata_rom(定制的ROM元件文件名),单击NeXt按钮,选择ROM控制线、地址线和数据线。这里选择地址线位宽和ROM中数据数分别为8和512;选择地址锁存控制信号clocko4.5.3 地址发生器模块通过对LPM例化的引用,通过地址查寻不断逐步地读取ROM里的幅度值,最后经过DA转换然后得到与RC)M储存相应的波形,另外,通过改变B路地址发生器的相位计数初值,实现移相的功能。aciciress_aclk_aaddrssa.Oresetloadinst-4图4-11地址发生器模块4.6 波形选择模块波形选择模块是通过矩阵键盘控制,输出三种不同的数据流,控制信号发生器在正弦波、三角波和矩形波三者间进行互换,并通过数据流改变矩形波的占空比。dataelkdataDAC7.0resetwave2.0address8.0duty(7.0)inst19如上图所示,当WaVe输入为OOl时,输出波形为正弦波,每个时钟上升沿时,通过地址address从ROM中依次读取正弦信号的波形数据dataDAC,如图为正弦波的仿真结果,三角波和矩形波的产生也是运用相同的原理。其中矩形波可以通过duty数据改变矩形波的占空比。4.7幅度调节模块幅度调节模块改变幅度的系数来改变幅度的大小,即把电压幅度值分成一百等分,能过改变输出系数从而达到改变幅度的任务。图4-16幅度调节仿真如图4-16为幅度调节仿真,幅度调节模块将电压分为100等分,图中输入coe为90,幅度最高为255,可求得dataout=255*90100=229.51去掉小数即为图中的结果。4.8 DA转换模块4.8.1 W-变换的原理-变换采用过取样技术,将信号按时间分割,保持幅度恒定,具有高取样率、噪声整形和比特字长短的特点。变换可以在低取样率、高分辨率的量化器或者高取样率、低分辨率的量化器中进行,在数字音频中很有用,如用于音频信号数字化的fADC及可将已经数字化处理后的音频信号还原为模拟声音信号的-DAC02变换有时根据采用的具体结构称为1比特或多比特变换,本文所描述的DAC采用了1比特变换技术,克服了采用较多比特数时所带来的量化非线性误差、纠错困难的缺点。4.8.2 W-ADAC的结构术语分别代表算术和与差,都可用二进制加法器来产生。虽然加法器的输入是无符号数,但和两加法器的输出被看作有符号数。加法器用来计算DAC输入与当前DAC输出之间的差值。由于DAC的输出只有一位,非0即1,即全。或全1。如图2WSDAC的结构图所示,加法器的另一个输入值由锁存器最高位L9的两个拷贝后面跟8个0产生,这也弥补了DAC输入值是无符号数的问题。加法器将它的上一次输出(已经保存在锁存器)与加法器的当前输出求和图4-172-ADAC的结构4.8.3 -DAC的FPGA实现如图2所示,E-ADAC的内部仅由2个10位的二进制加法器,1个10位的锁存器和一个D触发器组成,用FPGA实现时只需耗费极少的逻辑资源,即使用最小的FPGA也能实现,FPGA驱动外部的模拟RC低通滤波器,恢复模拟波形。dac1'DACin7.0DACout一elk一resetinst3图4-18DA转换模块图4-18DA转换仿真图如图4-18DA转换仿真图,每个点的幅度通过256个CIk时钟周期的脉冲序列行转换,DACin的值越大,表示幅度越高,DACoUt输出的脉冲密度越大,通过RC低通滤波器时充电时间越长,形成的幅度越高。4.9 滤波器滤器采用的是两个模拟RC低通滤波器组成的二阶低通滤波器,二阶低通滤波器比一阶低通滤波器的衰减更快,过渡带更短,滤波效果更好。*2RC滤波器的截止频率公式为:因为三角波和矩形波含有高次谐波,如果将频率定得太低,三角波和矩形波将会产生严重的失真,如果将频率定得太高,将达不到良好的滤波效果,最后选择了47pF的电容和IK的电阻,其截止频率为f-I_二!:=34XIO6C2RC2x47x10×1000.即为3.4MHzo4.10实物图图4-19频率调节实物图Vy-ZT图4-20移相实物图5总结课题研究过程总结及结论本课题的研究和设计,可以大致分成四个个阶段:理论知识学习,verilog编程语言的学习,系统verilog语言编程设计和仿真验证。在每个阶段都遇到很多问题,但也是在不断的发现问题,不断的努力解决问题的过程中,让我对本课题有了更全面的认识和更深入地掌握。万事开头难,在理论知识学习阶段,对信号发生器的原理知之甚少,以前只是用过信号源来进行实验,而不知道信号发生器的原理。通过大量阅读信号发生器的书籍和网上相关资料,我逐渐地开始对信号发生器的一个整体结构有了相对的理解。在学习的过程中,对信号发生器的结构进行拆分成一个个小模块,通过实现各个小模块的功能,再将小模块进行一个组合,组成信号发生器。并且我还查阅不同书籍,学习不同的实现方法,进行比较从中选出最佳方案。这让我对自己选定的方案更有把握,为后续工作打好了理论基础。VerilOg编程语言的学习,因为大学课程有学习EDA课程,对QUartUSIl里工程的建立和verilog语言的编写都有一定的了解,通过复习之前所学过的verilog语言知识,能很容易地重新掌握VeriIOg语言的编写。系统Verilog语言编程设计,这是本课题中最重要的一个环节,通过VeriIOg语言编程设计信号发生器原理的各个模块,最后通过verilog语言将各个模块有机地结合在一起,最终实现信号发生器的各项功能。在这一阶段中,遇到了很多的问题和很大的困难。通常会因为一个小小的错误而使一个模块得不到正确的结论,然后经过不断地修改,不断地实验,才最终克服困难,完成这一个重要的阶段。仿真验证,通过QUartUSIl的仿真和实际电路的验证,及时发现Verilog语言编程设计存在的问题,及时作出修改,逐步完善信号发生器的架设。心得体会此次毕业设计,难度相对比较大,但由于老师安排时间得当,给了我们充分的时间准备,而且老师还给予了我们很多帮助,老师每周都按时给我们答疑,监督我们的课题进度,另外,老师还建了一个毕设群方便老师与学生、学生与学生之间的沟通,有疑问的时候在群里询问,很快就有得到答复,群里学习气氛相当浓烈,我们还通过毕设群及时了解一些有关毕业设计的相关信息。通过本次毕业设计,我学到了很多东西,不仅提高了对QUartUSIl软件运用的熟练程度,积累了宝贵的实践经验,并且通过此次课题,把以前学过的很多知识复习,在脑海中有了更清晰的概念。而且通过寻找资料,找到了吞脉冲原理的分频的方法和-变换的DA转换器原理等先进原理。此外通过这段时间的学习,发现了自己的很多不足,自己知识的很多漏洞,但是同时也发现一种提高自己学习能力的方法,就是通过进行仿真可以很好的加深自己对相关理论知识的理解!谢辞在这次毕业设计中,首先要感谢梁红玉老师的悉心指导,他严谨的治学态度,一丝不苟的敬业精神给我留下了深刻的印象。他的博学多才、勤勉以及平和的为人,使我油然而生敬意C在此,谨向梁老师致以诚挚的谢意和崇高的敬意C此外感谢学校提供良好的学习平台,让我们学习与实践相结合,只有从理论中得出结论,才能真正为社会服务,从而提高自己的实践动手能力和独立思考的能力。同时要感谢同学们无私的帮助,正是他们我才能在研读FPGA的道路上走得更轻松,让我觉得学习是一个快乐的过程。在与他人的交流和讨论中我受益匪浅,同时也被同学们刻苦钻研的精神所深深感染。他们乐于助人,耐心的解答我