基于fpga多功能信号发生器的设计与实现本科学位论文.doc
学校代码:11059 学号1205022039Hefei University 毕业设计(论文)BACHELOR DISSERTATION 论文题目:基于FPGA多功能信号发生器的设计与实现 学位类别: 工学学士 学科专业: 通信工程 作者姓名: X X 导师姓名: 张倩 葛浩 完成时间: 2016年5月25号 基于FPGA多功能信号发生器的设计与实现中 文 摘 要多功能信号发生器又称为波形发生器,不仅在生产或生活的应用比较普遍,而且还在无线电、自动测量和自动控制等系统中遍及使用。作为一类普及度很高的电子设备,它不仅仅可以生产各种各样的波形信号,也能够根据设备需求实际环境模仿类似的信号,还可以同另外的控制器及传感器组合成一个自动测试系统,包括边界扫描测试和激光测试,拥有比较高的测试精度和性能。除此之外,它也能够被用来当作激励信号,普遍用于教学、生产及科技等领域。对于传统设计信号发生器的方法主要选取单片机以及DDS芯片,缺点是设计较复杂、可移植性差。本设计是由FPGA芯片为硬件核心,使用VHDL硬件语言设计一个DDS系统,采用自顶而下的思想把分为三个模块设计:频率控制模块、幅度控制模块、波形数据存储模块。在Quartus II平台中生成硬件电路图,之后对顶层文件进行连线、编译成功之后,综合后下载到FPGA板上,输出幅度、频率可调的三角波、方波、锯齿波和正弦波信号。最终使用逻辑分析仪通过JTAG端口读取的信息并显示出所需波形,经验证,此系统基本上满足了设计要求。关键词:DDS;FPGA;VHDL;信号发生器;Design and implementation of multi function signal generator based on FPGAABSTRACTAlso known as multi-function signal generator waveform generator, not only in the production or use of life is relatively common, but also radio, automatic measurement and automatic control systems in use throughout. As a class of high popularity of electronic equipment, it not only can produce a variety of waveform signal, it is possible according to the actual environment equipment needs to mimic a similar signals, but also can be combined with additional controllers and sensors into a single automated test system, including boundary scan test and laser testing, has a relatively high test accuracy and performance. In addition, it can also be used as an excitation signal, widely used in the fields of teaching, production and technology.For traditional design methods are mainly selected signal generators and DDS chip microcontroller, the disadvantage is more complex design, poor portability. By the FPGA chip using VHDL hardware description language to design a DDS system hardware core. Edit Quartus II compile VHDL source code and produces hardware circuit in Quartus II platform, the last top-level file connection after successful compilation, comprehensive after downloaded to the FPGA board function waveform output amplitude, frequency adjustable. End-use information logic analyzer through the JTAG port to read and display the desired waveform, proven, this system basically meet the paper conditions, experiments show that the use of VHDL language and custom ideas under development platform editor in Quartus II source code and then use simulation design versatile waveform signal generator in the right direction.Keywords: DDS; FPGA; VHDL; Signal generator;目 录第一章 前言1第二章 DDS技术与原理及编程环境32.1 DDS技术32.2 DDS的基本原理32.3 FPGA、VHDL及编程环境52.3.1 FPGA52.3.2 VHDL62.3.3 编程软件Quartus II7第三章 系统设计方案83.1 系统总体方案设计83.2 系统方案论证93.2.1 总体方案的论证93.2.2 DDS模块论证93.2.3 数据存储方案论证93.2.4 数模转换方案10第四章 DDS系统的实现114.1 主程序流程图114.2 内部单元模块设计124.2.1 分频模块设计124.2.2 相位累加器模块设计124.2.3 波形ROM模块的设计134.2.4 幅度调节模块设计134.2.5 mif文件设计14第五章 信号理论与仿真分析155.1 信号理论分析155.2 Quartus II信号仿真155.2.1 正弦波模块155.2.2 三角波模块165.2.3 锯齿波模块165.2.4 方波模块175.2.5 幅度调节模块185.2.6 频率控制模块18第六章 硬件电路安装与测试206.1引脚锁定206.2信号发生的测试20总结23参考文献24致 谢25附 录26III第一章 前言工业技术与科技的不断进步,传统的波形信号发生器采用分离式器件,体积较大以及稳定性较低、可靠性较差,电路结构也局限了波形种类的多样化,已经无法满足实际生产的需要,因此,必须制作稳定性相对较高、可靠性较好的信号发生器解决这些问题。近些年,数字技术的发展带动了数字信号发生器实现了飞速成长,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、低电压与低功耗在很多的应用场景,信号发生器不仅对体积有严格要求,还对工作电压和功耗也有限制。所以,信号发生器通常选取混合互补金属氧化物半导体制造工艺,并且增加了空闲和掉电两种工作方式。本设计是参考直接数字合成频率技术,利用Quartus II 9.0软件作为开发环境,VHDL语言为开发语言,基于FPGA芯片,配合相应的外围电路设计整体电路,其电路设计布局简单,有较高的灵活性和方便性,产生频率、幅度均可改变的锯齿波、正弦波、三角波和方波的信号发生器。第二章 DDS技术与原理及编程环境2.1 DDS技术DDS,全拼Direct Digital Synthesizer(直接数字频率合成),20世纪70年代由美国学者提出的全新技术,由相位概念出发直接合成所需信号的全数字频率合成。凭借科学技术的飞速进步,在短短几十年间,DDS技术也得到了快速发展,由于出色的表现使它迅速成为现代频率合成技术中的重要技术。在1993年,一类新的综合结构型的DDS的出现,它包括高精度、低速DDS和高速、低精度的相位累加器,其低速部分负责了DDS微调,高速部分负责DDS粗调7。其特点是高速低功耗。在1994年,出现一种运用正弦余弦的对称性改良存储技术,在不增加ROM容量的条件下,达成了正交输出200MHz的DDS。近年来,由于PLD器件的出现与发展,使得DDS技术又注入了新的活力,输出频带得到了巨大提升,系统集成度更高,功耗更低。由于超高速半导体技术的进步,正在逐步突破DDS输出带宽的局限。直接数字频率合成技术伴随着微电子和计算机系统而快速发展的新一代技术。本技术原理先将波形数据存储为mif文件,再然后由相位累加器的频率控制字累加控制从储存器文件中查表出波形采样点的频率,再从波形ROM中读取波形相位数据,之后经过高速数字模拟转换器输出的模拟波形信号,再由低通滤波器过滤谐波,最终输出光滑信号波形。2.2 DDS的基本原理大多数数字信号处理技术普遍采用奈奎斯特定理,DDS也是如此,奈奎斯特采样定理描述是频带有限的连续模拟信号通过采样量化操作后成为离散序列,能否根据之前得到的离散序列还原成原始的模拟信号。通过奈奎斯特采样定理可以得出,当采样频率不小于连续模拟信号的最大频率的两倍时,则能够实现由采样获取的离散序列无损的还原原始的模拟信号。DDS系统首先需要对模拟信号采样,再对采样值量化处理后存储,然后使用查找表的方式输出波形采样值,经过数模转换后成模拟信号,此时获得的波形与原始波形尚有差异,使用低通滤波器过滤杂波即恢复原始波形。其结构如图2.1所示。图2.2 相位累加器结构图图2.1 DDS基本原理框图图2.1中的相位累加器的具体组成如下图。相位量化序列 波形ROM图2.3 波形ROM示意图地址数据波形幅度量化序列由上图我们很容易得到相位累加器的组成加法器和寄存器,加法器的输入端分别输入频率控制字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.3 FPGA、VHDL及编程环境2.3.1 FPGA现场可编程门阵列,在可编程阵列逻辑、复杂可编程逻辑、通用阵列逻辑等器件的前提上,继续深入研究的结晶,是集成度最高的一种14。电子技术的进步,诞生了FPLD,包括CPLD和FPGA。在使用FPGA芯片时,用户能够按照各种各样的配置需求,选取对应的编程方法。FPGA由逻辑阵列组成,利用编程可以使诸逻辑阵列串连起来达到我们需要的功能Error! Bookmark not defined.。接通电源,先使EPRON读入FPGA的芯片编程RAM的数据,达成配置要求,FPGA芯片开始工作。切断电源后,FPGA还原成空芯片和其中阵列逻辑联系不存在。故而,利用FPGA的设计极其方便,能够实现不同的电路功能。系统开发流程如图2.1所示。FPGA/CPLD器件和系统 FPGA/CPLD 编程下载FPGA/CPLD适配 综合原理图/VHDL编辑功能仿真时序与功能门级仿真、图2.1 FPGA开发流程图2.3.2 VHDLVHDL全名Very-High-Speed Integrated Circuit Hardware Description Language(超高速集成电路硬件描述语言),主要用于描述数字系统的结构、功能、行为及接口15。它的语言模式与目前一般的计算机高级语言类似,特有许多含有硬件特征的语句。VHDL是根据是否可视,把一个设计实体划分成外部和内部,外部定义了端口,内部定义了功能算法。若实体需要的算法在其他实体中已定义,则能够直接调用实体从而间接的使用其中的算法。选择VHDL语言设计有很多益处,比如:(1) 功能强大,设计灵活。(2) 强大的硬件描述能力。(3) 比较强的移植能力。(4) 易于共享和复用。2.3.3 编程软件Quartus IIEDA工具使EDA技术在诸多领域得到了应用,EDA是以PC为工具进而自动实现使软件设计的电子系统转化为硬件电路,所以Windows系统的EDA软件是不可缺少的,所以可编程逻辑器件的厂家都提供了EDA开发工具,如Xillinx的ISE、Altera的quartus ii。本次设计就使用Quartus II开发软件,包含了可编程逻辑器件编程环境,支持原理图输入模式、波形输入模式以及HDL等多种设计输入模式,内部集成了综合器和仿真器,能够实现设计输入编辑、设计分析与综合、适配、汇编、时钟提取和下载整个PLD设计开发流程16。Quartus II的操作视图如图2.2所示图2.2 Quartus II软件界面Quartus II是Altera公司的第四代可编程逻辑器件PLD开发平台。Quartus II具有良好的跨平台能力,可以在Windows,Linux等开源系统上运行,使用起来也比较简单,操作界面也比较人性化。除此之外,Quartus II还包含十分有用的LPM((Librate of Parameterization Modular)模块,本次设计就依靠LPM模块设计波形数据存储,快速完成设计、降低了系统冗余。不仅如此,Quartus II还对第三方软件如ModleSim、Matlab、DSP Builder很好的支持。能够便利地进行仿真和完成DSP应用系统。第三章 系统设计方案3.1 系统总体方案设计 FPGA FPGA芯片频率控制字幅度控制字相位累加器波形选择控制ROM(14)除法器D/A滤波器波形输出分频晶振本设计以FPGA芯片为中心,外加辅助电路,选取DDS技术。该系统由FPGA主控电路,D/A转换电路,调节按键和低通滤波电路17,由调节按键改变频率、幅度。首先使用Guagle Wave任意波形发生器,设置我们需要的波形,依次保存为mif文件,在与波形ROM关联起来,然后经相位累加器输出的地址信息不断寻址从波形ROM输出波形数据,调节率频控制字的大小进而改变读出数据的个数,亦使产生的波形频率发生变动。从mif文件读取的是离散的波形数据,还得经由数模转换器将离散的序列转换成连续的模拟量,再使用低通滤波器过滤谐波,输出平滑的函数波形。课题要求是需要输出四类波形,由此需要使用四块ROM储存器,依次放入四种波形的波形幅度量化数据,然后使用一个四选一的波形选择器,波形选择模块控制输出波形形状。自上而下设计模块图如图3.1所示。图3.1 DDS系统设计流程图3.2 系统方案论证3.2.1 总体方案的论证方案一:以单片机为核心,选择DDS技术,C语言编程,可以实现相对比较高的设计目标,基本能够满足基本波形的产生,由于单片机的运算能力,以及受到晶振的影响,产生的波形往往差强人意,频率的限制比较大,很难达到较高的要求,而且单片机的输入输出管脚少,存储能力有限,需要复杂辅助电路才能够达到基本要求。方案二:采用模拟锁相环原理产生波形信号,锁相环是将输出信号与输入的信号进行相位对比再把结果反馈以改变信号间的误差,多用于闭环系统18。由于要求高,电路复杂,不方便调节模拟锁相环电路和频率调节不方便,范围不够大,输出波形是不理想的大杂波,达不到预想效果。方案三:选择EDA技术,FPGA试验箱为平台,选择DDS原理。信号发生器输出的波形稳定比较平滑,频率、幅度控制字变化亦输出波形的频率、幅度发生变化。在外围附加数模转换、滤波电路等辅助电路即可。基于课题,需要调节波形幅度、频率。我们选择方案三。3.2.2 DDS模块论证方案一:根据DDS系统架构,设计基于可现场编程逻辑芯片的DDS系统。DDS的高性能的需要超高速和高约束力的可编程逻辑器件。可编程辑逻器件具有运行速度快,性能优越,还可以利用众多的EDA工具如Quartus II、ModelSim,设计出基于DDS技术的可编程逻辑器件系统。可编程逻辑器件使用起来也非常实用和灵活,因而可以很简单的实现比较复杂的频率、幅度和相位的调节功能。方案二:选择购买DDS系列芯片。电子技术的快速进步,大量的表现杰出的DDS产品诞生。比如常用的AD9850公司的SD芯片,DDS系统的里面集成了高效率DAC还有而且能够完成器和时钟合成器的全数字编程控制。连接到时钟,可以产生频谱纯净,可控制改变频率和相位的模拟信号。基于课题要求及论证结果,我们采用FPGA芯片设计DDS系统。3.2.3 数据存储方案论证我们需要将待输出波形采样,并存储。地址计数器寻址输出。存储的方案如下:方案一:把采样得到的波形离散序列放到特定的存储器中,然后单片机扫描,再把离散序列送到D/A转换器输出连续的模拟信号,这样的电路搭建起来比较简单。但是由于单片机的解决效率较低,不能达到课题的要求。方案二:利用FPGA芯片,Quartus II软件调用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存储模块等。下图简单说明系统的流程。是开始初始化按下按键否 计算时钟 送出时钟波形数据输出D/A转换滤波器过滤检测是否有按键输出波形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)10 。波形的幅度实质上是电压,那我们就以具体电压举例分析:如果芯片的电压为5V,则此时的输出应是,其电压分辨率为p=5/28 =0.01953125V,则1100,0110(198)10 相对应的电压为3.8671875V,经过除法器运算得到的数据0110,0011(99)10 对应的电压值为1.93359375V。经过以上例子的验算,可以得出结论运用除法器思想以改变输出波形的幅度的方法是可行的。使用的除法器是Quartus II软件内嵌的IP核宏模块,也可以侧面看出Quartus II开发平台的优越性,除法器的原理如下图4.4所示。numer7.0是初始波形数据,denom7.0是幅度控制字。quotient7.0是改变幅度后的波形数据,并送入数模转换模块。remain7.0是余数。图 4.5 除法器原理图4.2.5 mif文件设计mif是一种使用ASC II码编码的通用的数据交换格式,*.mif存有波形对象的所有空间目标信息。因为我们选择的是八位数据,mif格式选择无符号整型,所以波形幅度达到的极大值时其对应的mif数值必为255,当波形幅度达到波谷时其对应的mif文件中的数值必为0。本次所使用的波形数据由任意波形发生器Guagle_wave生成。 图 4.6 Guagle_wave生成波形数据第五章 信号理论与仿真分析5.1 信号理论分析下面以方波的理论计算为例,若波形选择字为00出方波。01时输出锯齿波,10时输出三角波,11时输出正弦波。根据计算,当按键D为0时,波形输出频率为9.77KHz。D为1时,波形的输出频率为4.88KHz。幅度变化就在输出前使用除法器改变,对于方波来说,如果除法器的分母设置为0000,0001,则波形输出幅度最大不变为254,若除法器的分母设置为0000,0010时,则波形信号的每个取样点幅度都会线性降低一半,其输出最大值为127。其他信号原理类似方波,就不一一介绍。5.2 Quartus II信号仿真5.2.1 正弦波模块正弦波信号仿真:对选择器的输入端s1赋值1,s2赋值1,clk的频率设置为20MHz。en置高,此时程序开始正常工作。除法器设置为,保存波形仿真如图5.1所示:图5.1 正弦波信号仿真图由仿真我们能够得出,输出端的数据开始从0增到255,之后又从255减到0,完成从的改变过程。符合正弦波的波形特征,由此可见仿真准确无误。5.2.2 三角波模块三角波信号仿真对选择器的输入端s1赋值1,s2赋值0,clk的频率设置为20MHz。en置高,此时程序开始正常工作。除法器设置为,保存波形仿真如图5.2所示:图5.2 三角波信号仿真图形由仿真我们能够得出,输出端的数据从0开始递增到254,之后再从254开始递减到0,先递增后递减,而且是个公差相等的等差数列。符合三角波的波形特征,由此可见仿真准确无误。5.2.3 锯齿波模块锯齿波信号仿真:对选择器的输入端s1赋值0,s2赋值1,clk的频率设置为20MHz。en置高,此时程序开始正常工作。除法器设置为,保存仿真结果如图5.3所示:图5.3 锯齿波信号仿真图形由仿真我们能够得出,输出端的数据由0开始递增254,而后又开始从0开始递增到254,不断重复,非常符合锯齿波的波形特征,由此可见仿真准确无误。5.2.4 方波模块方波信号仿真:对选择器的输入端s1赋值0,s2赋值0,clk的频率设置为20MHz。en置高,此时程序开始正常工作。除法器设置为,保存波形仿真如图5.4所示:图5.4 方波信号仿真图由仿真我们能够得到,输出端OUTPUT产生的波形数据先是是输出0持续一段时间,再改变为255持续一段时间,之后再改变为输出0。0反映方波的波谷,255代表方波的波峰,符合方波的波形特征,由此可见仿真准确无误。5.2.5 幅度调节模块对于幅度调节模块,我们选用最直观的方波作为测试信号,对选择器的输入端s1赋值0,s2赋值0,clk的频率设置为20MHz。en置高,此时程序开始正常工作。除法器设置为,保存波形仿真如图5.5所示。图5.5 方波信号幅度调节仿真图由仿真我们能够得到,方波的幅度由原来的255改变为现在的127,说明幅度条件模块能够满足对输出波形的幅度条件功能。5.2.6 频率控制模块对于频率控制模块,我们使用按键D来改变分频模块的输入频率,由图5.6可以很清楚的看出,当D为1时fout输出的频率比当D为0时的输出频率低,经过之前的计算可以得出,当clk的时钟频率为20MHz时,D为0时的波形输出频率为4.88KHz,当D为1时的波形输出频率为9.77KHz。图5.6 频率控制模块仿真图经过对子模块的波形仿真分析,不难得出,本设计已基本完成了课题的要求:实现了四种波形的输出以及选择功能,此外也能够对输出波形的频率和幅度进行控制改变的需求,达到了预设的效果。第六章 硬件电路安装与测试6.1引脚锁定由上一章可知,在Quartus II平台中已经完成了信号波形的选择输出以及波形的频率和幅度调节3,基本满足题目的要求,接下来就是将程序下载到目标器件中,本次试验箱所使用Altaer的Cyclose家族的FPGA芯片,具体型号为EP1C6Q240C8,该芯片价格低廉,虽然容量不大但满足实验要求20。由于之前有过相关实验所以对实验箱也比较熟悉,先设置实验箱的模式为零,选择Quarteus ii菜单栏找到Aonsignment Editor,选择pin,把相应的管脚与原理图的输入输出进行确定,如下图6.1所示:图6.1 引脚锁定图设置管脚完成后保存,依然再编译一回,才可以把引脚与原理图的输入输出锁定。电源给实验箱上电,编译成功后会生成SOF文件,把逻辑阵列功能下载到FPGA芯片中。再验证阶段,先用键盘进行操作,选择相应的波形输出,由于实验箱的电路不够完整,不能够实现用示波器查看波形,所以本次采用逻辑分析仪显示分析输出波形的信息。6.2信号发生的测试由频率控制模块可知,当clk时钟设置为20MHz时,按键D设置为0,则波形输出的频率9.77kHz,此时我们通过嵌入式逻辑分析仪获取由JATG端口采集的信息。获取并显示的波形如图6.2到图6.5所示。若对选择模块输入端s1赋值0,s2赋值0,即输入00时,此时的输出波形为方波信号,如下图所示:图6.2 方波 若对选择模块输入端s1赋值1,s2赋值0,即输入01时,此时的输出波形为锯齿波信号,如下图所示:图6.3锯齿波若对选择模块输入端s1赋值0,s2赋值1,即输入10时,此时的输出波形为锯齿波信号,如下图所示:图6.4 三角波若对选择模块输入端s1赋值1,s2赋值1,即输入11时,此时输出波形是正弦波信号,如下图所示:图6.5 正弦波 通过以上的测试结果表明,通过实验箱输出给波形数据逻辑分析仪的波形数据与使用软件仿真的得到的仿真数据几乎一模一样,数据波形的频率也与理论上相符,满足设计的设想,体现设计思路是正确的。至此,基于FPGA多功能信号发生器的设计基本已完成,达到了预期目标。总结通过上述仿真结果可以得出,选用芯片型号为EP1C6Q240C8,基本上满足题目要求的输出四种波形,并能够改变输出波形的频率以及幅度功能。也侧面说明仅使用八位的相位累加器能够满足课题的条件,本系统采用的波形数据为8*255的数据,四片ROM依次放入四种波形的数据。当然,通过改变波形ROM的波形数据,我们可以设计出输出任意波形的信号发生器,相位累加器也可以进行改进,比如用24位的累加器,增加波形的采样点数,那么输出波形的失真度将会大大降低。此外,我们选用可编程控制的幅度模块,代码控制波形幅度,减少了传统波形发生器使用滑动变阻器调节引起的系统误差,可以使波形幅度在0V-5V内任意改变。任何事情都不能一蹴而就的,毕业设计也是。在设计信号发生器的这段时间遇到了很多难题。首先就是对仿真软件的陌生,第一次接触FPGA技术还是大