1、学校代码:11059 学号 1205022039Hefei University毕 业 设 计 ( 论 文 )BACHELOR DISSERTATION论文题目:基于 FPGA 多功能信号发生器的设计与实现学位类别: 工学学士 学科专业: 通信工程 作者姓名: X X 导师姓名: 张倩 葛浩 完成时间: 2016 年 5 月 25 号 基于 FPGA 多功能信号发生器的设计与实现中 文 摘 要多功能信号发生器又称为波形发生器,不仅在生产或生活的应用比较普遍,而且还在无线电、自动测量和自动控制等系统中遍及使用。作为一类普及度很高的电子设备,它不仅仅可以生产各种各样的波形信号,也能够根据设备需求实
2、际环境模仿类似的信号,还可以同另外的控制器及传感器组合成一个自动测试系统,包括边界扫描测试和激光测试,拥有比较高的测试精度和性能。除此之外,它也能够被用来当作激励信号,普遍用于教学、生产及科技等领域。对于传统设计信号发生器的方法主要选取单片机以及 DDS 芯片,缺点是设计较复杂、可移植性差。本设计是由 FPGA 芯片为硬件核心,使用 VHDL 硬件语言设计一个 DDS 系统,采用自顶而下的思想把分为三个模块设计:频率控制模块、幅度控制模块、波形数据存储模块。在 Quartus II 平台中生成硬件电路图,之后对顶层文件进行连线、编译成功之后,综合后下载到 FPGA 板上,输出幅度、频率可调的三
3、角波、方波、锯齿波和正弦波信号。最终使用逻辑分析仪通过 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 commo
4、n, 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 al
5、so 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, produc
6、tion 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 VH
7、DL 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
8、 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
9、 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 系统的实现 .11
10、4.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总结
11、 23参考文献 24致 谢 25附 录 26第一章 前言工业技术与科技的不断进步,传统的波形信号发生器采用分离式器件,体积较大以及稳定性较低、可靠性较差,电路结构也局限了波形种类的多样化,已经无法满足实际生产的需要,因此,必须制作稳定性相对较高、可靠性较好的信号发生器解决这些问题。近些年,数字技术的发展带动了数字信号发生器实现了飞速成长,DDS 技术被普遍应用在信号发生器的设计与制作,性能指标都达到了一个比较高的水平。为了迎合消费者的需求,大多数数字芯片仅能输出常见的传统函数波形,如三角波、锯齿波和方波等。目前主流的芯片,把数字频率合成芯片的全部的功能集结在一个芯片中,提供了模拟调制电路功能,
12、但是导致控制能力下降,也使性能有不同程度的改变。在上述条件下,若我们尽力发挥现场可编程门阵列的优越性,利用 DDS 技术,达成一个操作简单、使用方便的信号发生器系统。现场可编程门阵列器件的拥有存储空间大、运算能力强等优点,使得原本比较难解决的复杂电路有了新的解决手段,应用到实际系统中的例子也是比比皆是,例如数字信号处理、通信和数据处理等领域。基于现场可编程设计的信号发生器的优点有以下几点:1、转换频率比较快; 2 波形相位噪声比较小;3、能够输出任意波形;4、整体数字化,占空间少,有利集成;5、灵活的接口和控制方式;6、比专用芯片功耗也低 1-4。以现阶段的发展水平,西方国家的多功能信号发生器
13、在研发和制造方面已经比较先进。西方国家的安捷伦和泰克国际测量仪器公司,其产品不仅是技术上还是市场占有率上,都领先于国内厂商 5。信号发生器的进步展现在如下四点:1、CPU 功能增强CPU 的功能主要表现在精度和速度的改善。为了提高速度,通常使用布尔处理器,精度的提高是 CPU 的字长提高到 16 位或 32 位。2、内部资源增多现如今,对于信号发生器,内部存储器空间已实现 32KB,RAM 空间也实现了 1KB以及断电保护功能,也就是在突然断电时保护数据不会丢失。3、引脚的多功能化由于芯片所具有的功能扩张所需的引脚数随之增多。例如信号发生器的一个 1MB 的存储容量需要 8 条数据线和 20
14、条地址线。引脚过多,不仅会增加制造的复杂性,而且也很大程度减少了芯片的集成。为了提高应用程序的灵活性和减少管脚数,该信号发生器使用引脚复用的设计方案 6。4、低电压与低功耗在很多的应用场景,信号发生器不仅对体积有严格要求,还对工作电压和功耗也有限制。所以,信号发生器通常选取混合互补金属氧化物半导体制造工艺,并且增加了空闲和掉电两种工作方式。本设计是参考直接数字合成频率技术,利用 Quartus II 9.0 软件作为开发环境,VHDL语言为开发语言,基于 FPGA 芯片,配合相应的外围电路设计整体电路,其电路设计布局简单,有较高的灵活性和方便性,产生频率、幅度均可改变的锯齿波、正弦波、三角波和
15、方波的信号发生器。第二章 DDS 技术与原理及编程环境2.1 DDS 技术DDS,全拼 Direct Digital Synthesizer(直接数字频率合成),20 世纪 70 年代由美国学者提出的全新技术,由相位概念出发直接合成所需信号的全数字频率合成。凭借科学技术的飞速进步,在短短几十年间,DDS 技术也得到了快速发展,由于出色的表现使它迅速成为现代频率合成技术中的重要技术。在 1993 年,一类新的综合结构型的 DDS 的出现,它包括高精度、低速 DDS 和高速、低精度的相位累加器,其低速部分负责了 DDS微调,高速部分负责 DDS 粗调 7。其特点是高速低功耗。在 1994 年,出现
16、一种运用正弦余弦的对称性改良存储技术,在不增加 ROM 容量的条件下,达成了正交输出 200MHz的 DDS。近年来,由于 PLD 器件的出现与发展,使得 DDS 技术又注入了新的活力,输出频带得到了巨大提升,系统集成度更高,功耗更低。由于超高速半导体技术的进步,正在逐步突破 DDS 输出带宽的局限。直接数字频率合成技术伴随着微电子和计算机系统而快速发展的新一代技术。本技术原理先将波形数据存储为 mif 文件,再然后由相位累加器的频率控制字累加控制从储存器文件中查表出波形采样点的频率,再从波形 ROM 中读取波形相位数据,之后经过高速数字模拟转换器输出的模拟波形信号,再由低通滤波器过滤谐波,最
17、终输出光滑信号波形。2.2 DDS 的基本原理大多数数字信号处理技术普遍采用奈奎斯特定理,DDS 也是如此,奈奎斯特采样定理描述是频带有限的连续模拟信号通过采样量化操作后成为离散序列,能否根据之前得到的离散序列还原成原始的模拟信号。通过奈奎斯特采样定理可以得出,当采样频率不小于连续模拟信号的最大频率的两倍时,则能够实现由采样获取的离散序列无损的还原原始的模拟信号。DDS 系统首先需要对模拟信号采样,再对采样值量化处理后存储,然后使用查找表的方式输出波形采样值,经过数模转换后成模拟信号,此时获得的波形与原始波形尚有差异,使用低通滤波器过滤杂波即恢复原始波形。其结构如图 2.1 所示。图 2.1
18、中的相位累加器的具体组成如下图。由上图我们很容易得到相位累加器的组成加法器和寄存器,加法器的输入端分别输入频率控制字 K,和寄存器反馈的上一个时钟的累加结果,在时钟信号的不断作用下不停的把输入端的值相加。输入端的频率控制字 K,实质上是二进制的相位增量。例如,DDS 的时钟周期为 f,在一个脉冲 fo来临时,累加器的加法器分别输入频率控制字和反馈结果,然后将两个输入相加,再把总和发送给寄存器。寄存器有两个功能,一个是存储加法器的发送的总和,并把相位量化序列送到波形 ROM,一旦锁定了寄存器的输出序列,则该输出就对应波形信号的一个幅度点。另一个功能是反馈结果到加法器,加法器在下一脉冲 fn到达时
19、,不停地将寄存器反馈的结果与频率控制字相加。这表明,累加器在每个脉冲信号的影响下,加法器的输入端相加,寄存器的输出相应也就递增一次,相位量化序列变化的本质就是以频率控制字 K 为步长的线性递增序列。我们可以通过控制频率控制字我们可以改变频率控制字的大小,然后改变累加周期中的累加器输出 8。波形ROM 即存放波形幅度量化序列的数据,如图 2.3 所示。所有的 DDS 模块必须在同一个参考时钟下运行, DDS 系统中心是相位累加器,相位累加器能够输出变化的信号地址信息即相位量化序列,从而得到地址保存的波形信号幅相位量化序列波形 ROM图 2.3 波形 ROM 示意图地址数据波形幅度量化序列图 2.
20、2 相位累加器结构图图 2.1 DDS 基本原理框图度量化序列,累加器的输出端与波形 ROM 的输入端相连接,等同对波形采样数据存储器实行查表操作,那么即把预先存储在波形 ROM 的采样点查出。在时钟信号的有效用时,相位累加器持续的工作,也就持续地进行查表操作。波形 ROM 的输出数据传到数字模拟转换器,并且数字模拟转换器把波形 ROM 输出的离散序列转换成连续幅度变化的模拟信号,才得以重新合成的波形 9-11。如果我们需要合成正弦波,仅能得到接近于阶梯波正弦波,因此,就要在输出前添加低通滤波器,以过滤谐波杂波,以获取光滑和连续的信号波形。因为字长约束着累加器,只要累加器的加法器结果达到极大值
21、后,其输出将发生溢出,意味着对波形 ROM 的地址循环查表一次,此时输出的波形信号刚好达到一个周期。那么我们能够得到一个结论,相位累加器的溢出频率与恢复出模拟信号的频率是相同的 12。由此,我们得出结论,频率控制字 K 设置的越大,相加的结果递进越大,相位量化序列改变就越快,得到波形采样点数据就越少,波形信号的相位量增加就愈快,最终波形信号的频率亦越高,这是我们改变波形信号频率的理论基础,但是得到的信号的失真也就更明显 13。2.3 FPGA、VHDL 及编程环境2.3.1 FPGA现场可编程门阵列,在可编程阵列逻辑、复杂可编程逻辑、通用阵列逻辑等器件的前提上,继续深入研究的结晶,是集成度最高
22、的一种 14。电子技术的进步,诞生了FPLD,包括 CPLD 和 FPGA。在使用 FPGA 芯片时,用户能够按照各种各样的配置需求,选取对应的编程方法。FPGA 由逻辑阵列组成,利用编程可以使诸逻辑阵列串连起来达到我们需要的功能 2。接通电源,先使 EPRON 读入 FPGA 的芯片编程 RAM 的数据,达成配置要求,FPGA 芯片开始工作。切断电源后,FPGA 还原成空芯片和其中阵列逻辑联系不存在。故而,利用FPGA 的设计极其方便,能够实现不同的电路功能。系统开发流程如图 2.1 所示。、图 2.1 FPGA 开发流程图2.3.2 VHDLVHDL 全名 Very-High-Speed
23、Integrated Circuit Hardware Description Language(超高速集成电路硬件描述语言),主要用于描述数字系统的结构、功能、行为及接口 15。它的语言模式与目前一般的计算机高级语言类似,特有许多含有硬件特征的语句。VHDL是根据是否可视,把一个设计实体划分成外部和内部,外部定义了端口,内部定义了功能算法。若实体需要的算法在其他实体中已定义,则能够直接调用实体从而间接的使用其中的算法。选择 VHDL 语言设计有很多益处,比如:(1) 功能强大,设计灵活。(2) 强大的硬件描述能力。(3) 比较强的移植能力。(4) 易于共享和复用。FPGA/CPLD 器件和系
24、统FPGA/CPLD编程下载FPGA/CPLD 适配综合原理图/VHDL 编辑功能仿真时序与功能门级仿真2.3.3 编程软件Quartus IIEDA 工具使 EDA 技术在诸多领域得到了应用,EDA 是以 PC 为工具进而自动实现使软件设计的电子系统转化为硬件电路,所以 Windows 系统的 EDA 软件是不可缺少的,所以可编程逻辑器件的厂家都提供了 EDA 开发工具,如 Xillinx 的 ISE、Altera 的 quartus ii。本次设计就使用 Quartus II 开发软件,包含了可编程逻辑器件编程环境,支持原理图输入模式、波形输入模式以及 HDL 等多种设计输入模式,内部集成
25、了综合器和仿真器,能够实现设计输入编辑、设计分析与综合、适配、汇编、时钟提取和下载整个 PLD 设计开发流程 16。 Quartus II 的操作视图如图 2.2 所示Quartus II 是 Altera 公司的第四代可编程逻辑器件 PLD 开发平台。Quartus II 具有良好的跨平台能力,可以在 Windows,Linux 等开源系统上运行,使用起来也比较简单,操作界面也比较人性化。除此之外,Quartus II 还包含十分有用的 LPM((Librate of Parameterization Modular)模块,本次设计就依靠 LPM 模块设计波形数据存储,快速完成设计、降低了系
26、统冗余。不仅如此,Quartus II 还对第三方软件如ModleSim、Matlab、DSP Builder 很好的支持。能够便利地进行仿真和完成 DSP 应用系统。图 2.2 Quartus II 软件界面第三章 系统设计方案3.1 系统总体方案设计本设计以 FPGA 芯片为中心,外加辅助电路,选取 DDS 技术。该系统由 FPGA 主控电路,D/A 转换电路,调节按键和低通滤波电路 17,由调节按键改变频率、幅度。首先使用 Guagle Wave任意波形发生器,设置我们需要的波形,依次保存为 mif 文件,在与波形 ROM 关联起来,然后经相位累加器输出的地址信息不断寻址从波形 ROM
27、输出波形数据,调节率频控制字的大小进而改变读出数据的个数,亦使产生的波形频率发生变动。从 mif 文件读取的是离散的波形数据,还得经由数模转换器将离散的序列转换成连续的模拟量,再使用低通滤波器过滤谐波,输出平滑的函数波形。课题要求是需要输出四类波形,由此需要使用四块 ROM 储存器,依次放入四种波形的波形幅度量化数据,然后使用一个四选一的波形选择器,波形选择模块控制输出波形形状。自上而下设计模块图如图 3.1所示。FPGAFPGA芯片频率控制字幅度控制字相位累加器波形选择控制 ROM(14)除法器 D/A滤波器波形输出分频晶振图 3.1 DDS 系统设计流程图3.2 系统方案论证3.2.1 总
28、体方案的论证方案一:以单片机为核心,选择 DDS 技术,C 语言编程,可以实现相对比较高的设计目标,基本能够满足基本波形的产生,由于单片机的运算能力,以及受到晶振的影响,产生的波形往往差强人意,频率的限制比较大,很难达到较高的要求,而且单片机的输入输出管脚少,存储能力有限,需要复杂辅助电路才能够达到基本要求。方案二:采用模拟锁相环原理产生波形信号,锁相环是将输出信号与输入的信号进行相位对比再把结果反馈以改变信号间的误差,多用于闭环系统 18。由于要求高,电路复杂,不方便调节模拟锁相环电路和频率调节不方便,范围不够大,输出波形是不理想的大杂波,达不到预想效果。方案三:选择 EDA 技术,FPGA
29、 试验箱为平台,选择 DDS 原理。信号发生器输出的波形稳定比较平滑,频率、幅度控制字变化亦输出波形的频率、幅度发生变化。在外围附加数模转换、滤波电路等辅助电路即可。基于课题,需要调节波形幅度、频率。我们选择方案三。3.2.2 DDS 模块论证方案一:根据 DDS 系统架构,设计基于可现场编程逻辑芯片的 DDS 系统。DDS 的高性能的需要超高速和高约束力的可编程逻辑器件。可编程辑逻器件具有运行速度快,性能优越,还可以利用众多的 EDA 工具如 Quartus II、ModelSim,设计出基于 DDS 技术的可编程逻辑器件系统。可编程逻辑器件使用起来也非常实用和灵活,因而可以很简单的实现比较
30、复杂的频率、幅度和相位的调节功能。方案二:选择购买 DDS 系列芯片。电子技术的快速进步,大量的表现杰出的 DDS产品诞生。比如常用的 AD9850 公司的 SD 芯片,DDS 系统的里面集成了高效率 DAC 还有 而且能够完成 器和时钟合成器的全数字编程控制。连接到时钟,高 速 比 较 器 频 率 合 成可以产生频谱纯净,可控制改变频率和相位的模拟信号。AD9850基于课题要求及论证结果,我们采用 FPGA 芯片设计 DDS 系统。3.2.3 数据存储方案论证我们需要将待输出波形采样,并存储。地址计数器寻址输出。存储的方案如下:方案一:把采样得到的波形离散序列放到特定的存储器中,然后单片机扫
31、描,再把离散序列送到 D/A 转换器输出连续的模拟信号,这样的电路搭建起来比较简单。但是由于单片机的解决效率较低,不能达到课题的要求。方案二:利用 FPGA 芯片,Quartus II 软件调用 ROM 储存模块,然后将采样的波形幅度量化序列储存在内部的 ROM 中,通过计数器寻址扫描,把离散序列传递给数字模拟转换器输出模拟信号。然后再对 VHDL 语言文本例化,生成相应的 RTL 图。基于以上论证,我们选择方案二作为存储器方案。3.2.4 数模转换方案方案一:选择高速的 D/A 芯片 DAC0832,这是款 8 位的数模转换芯片,使用 5 伏到15 伏的单电源,采用 CMOS 制造工艺,电流
32、稳定时间一微秒,且功耗低 20 毫瓦不但价格低廉还可以满足我们对转换速度的要求。方案二:选择普通 D/A 转换器。D/A 转换器的主要特点就是要求高速,接着是转换位数,普通的 D/A 转换器的电流建立时间大于 100us,在模数转换速度上达不到设计的要求。基于以上论证,我们选择方案一作为数模转换器方案。第四章 DDS 系统的实现4.1 主程序流程图经过上一章的论证讨论,已经基本明确了设计的方案。现在根据 VHDL 语言自顶向下思想设计整个系统,顶层模块要包含:频率控制模块、幅度控制模块、波形选择模块、波形 ROM 存储模块等。下图简单说明系统的流程。是开始初始化按下按键否计算时钟送出时钟波形数
33、据输出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 的输
34、出频率为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 的地址线。伴随着时钟信号
35、,加法器不断地相加,八位数据也会不断变化,我们可以不断得到变化的八位地址寻址字。当地址寻址字从 0000,0000 增加到 1111,1111 时,刚好把波形 ROM 寻址一遍,此时的波形失真最小。加法器在 en 信号无效,时钟上升沿自加1,所以我们通过改变 clk 信号的输入频率就可以改变加法器的累加速度。图 4.2 累加器模块4.2.3 波形 ROM 模块的设计由累加器模块可知,在时钟的不断到来时,累加器模块不停的执行相加。我们选择累加器的输出相位离散序列作为地址寻址字,伴随着累加器不停输出数值,地址寻址字也在不停变化,对 ROM 的查表操作也在不停进行中且输出的相应的波形数据 18。根据
36、毕业设计的题目要求,本设计需要输出正弦波、三角波、方波等四类波形,基于此,我们应用了四块储存器,分别存储了预先设定好的 mif 文件。另外,为满足题目中按要求输出相应波形的要求,我们还设计了 mux41a 波形选择器,选择器的目的是四选一输出。如图4.4,当 s1,s2 分别为 0,1 时,y 输出预设的波形数据。波形 ROM 模块如图 4.3。图 4.3 波形 ROM 存储器 图 4.4 波形选择器4.2.4 幅度调节模块设计相对于频率调节,幅度模块的设计相对而言比较独立,而且比较简单,我们运用除法器的思想来设计幅度调节模块 19。除法器的分子是波形数据数值,也就是预设好的 mif文件中的八
37、位离散序列,分母是我们键盘输入的八位序列。例如:在一个脉冲内,ROM模块输出的八位波形数据为 (198)10 ,我们输入的分母是 (2)10 ,显然,10, 0,1我们得到的数据是 (99)10 。再波形的幅度实质上是电压,那我们就以具体电压举例分析:如果芯片的电压为 5V,则此时的输出应是 ,其电压分辨率为 p=5/28 =0.01953125V,则10)256(1,1100,0110(198)10 相对应的电压为 3.8671875V,经过除法器运算得到的数据0110,0011(99) 10 对应的电压值为 1.93359375V。经过以上例子的验算,可以得出结论运用除法器思想以改变输出波
38、形的幅度的方法是可行的。使用的除法器是 Quartus II 软件内嵌的 IP 核宏模块,也可以侧面看出Quartus II 开发平台的优越性,除法器的原理如下图 4.4 所示。numer70 是初始波形数据,denom70是幅度控制字。 quotient70是改变幅度后的波形数据,并送入数模转换模块。remain70是余数。图 4.5 除法器原理图4.2.5 mif 文件设计mif 是一种使用 ASC II 码编码的通用的数据交换格式,*.mif 存有波形对象的所有空间目标信息。因为我们选择的是八位数据,mif 格式选择无符号整型,所以波形幅度达到的极大值时其对应的 mif 数值必为 255
39、,当波形幅度达到波谷时其对应的 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,若除法器的分母设置为
40、0000,0010 时,则波形信号的每个取样点幅度都会线性降低一半,其输出最大值为 127。其他信号原理类似方波,就不一一介绍。5.2 Quartus II 信号仿真5.2.1 正弦波模块正弦波信号仿真:对选择器的输入端 s1 赋值 1,s2 赋值 1,clk 的频率设置为20MHz。en 置高,此时程序开始正常工作。除法器设置为 ,保存波形仿真如图0,5.1 所示:图 5.1 正弦波信号仿真图由仿真我们能够得出,输出端的数据开始从 0 增到 255,之后又从 255 减到 0,完成从 的改变过程。符合正弦波的波形特征,由此可见仿真准确无误。再5.2.2 三角波模块三角波信号仿真对选择器的输入
41、端 s1 赋值 1,s2 赋值 0,clk 的频率设置为20MHz。en 置高,此时程序开始正常工作。除法器设置为 ,保存波形仿真如图1,5.2 所示:图 5.2 三角波信号仿真图形由仿真我们能够得出,输出端的数据从 0 开始递增到 254,之后再从 254 开始递减到0,先递增后递减,而且是个公差相等的等差数列。符合三角波的波形特征,由此可见仿真准确无误。5.2.3 锯齿波模块锯齿波信号仿真:对选择器的输入端 s1 赋值 0,s2 赋值 1,clk 的频率设置为20MHz。en 置高,此时程序开始正常工作。除法器设置为 ,保存仿真结果如图0,5.3 所示:图 5.3 锯齿波信号仿真图形由仿真
42、我们能够得出,输出端的数据由 0 开始递增 254,而后又开始从 0 开始递增到254,不断重复,非常符合锯齿波的波形特征,由此可见仿真准确无误。5.2.4 方波模块方波信号仿真:对选择器的输入端 s1 赋值 0,s2 赋值 0,clk 的频率设置为20MHz。en 置高,此时程序开始正常工作。除法器设置为 ,保存波形仿真如图1,5.4 所示:图 5.4 方波信号仿真图由仿真我们能够得到,输出端 OUTPUT 产生的波形数据先是是输出 0 持续一段时间,再改变为 255 持续一段时间,之后再改变为输出 0。0 反映方波的波谷,255 代表方波的波峰,符合方波的波形特征,由此可见仿真准确无误。5
43、.2.5 幅度调节模块对于幅度调节模块,我们选用最直观的方波作为测试信号,对选择器的输入端 s1 赋值 0,s2 赋值 0,clk 的频率设置为 20MHz。en 置高,此时程序开始正常工作。除法器设置为 ,保存波形仿真如图 5.5 所示。1,图 5.5 方波信号幅度调节仿真图由仿真我们能够得到,方波的幅度由原来的 255 改变为现在的 127,说明幅度条件模块能够满足对输出波形的幅度条件功能。5.2.6 频率控制模块对于频率控制模块,我们使用按键 D 来改变分频模块的输入频率,由图 5.6 可以很清楚的看出,当 D 为 1 时 fout 输出的频率比当 D 为 0 时的输出频率低,经过之前的
44、计算可以得出,当 clk 的时钟频率为 20MHz 时,D 为 0 时的波形输出频率为 4.88KHz,当 D 为1 时的波形输出频率为 9.77KHz。图 5.6 频率控制模块仿真图经过对子模块的波形仿真分析,不难得出,本设计已基本完成了课题的要求:实现了四种波形的输出以及选择功能,此外也能够对输出波形的频率和幅度进行控制改变的需求,达到了预设的效果。第六章 硬件电路安装与测试6.1 引脚锁定由上一章可知,在 Quartus II 平台中已经完成了信号波形的选择输出以及波形的频率和幅度调节 3,基本满足题目的要求,接下来就是将程序下载到目标器件中,本次试验箱所使用 Altaer 的 Cycl
45、ose 家族的 FPGA 芯片,具体型号为 EP1C6Q240C8,该芯片价格低廉,虽然容量不大但满足实验要求 20。由于之前有过相关实验所以对实验箱也比较熟悉,先设置实验箱的模式为零,选择Quarteus ii 菜单栏找到 Aonsignment Editor,选择 pin,把相应的管脚与原理图的输入输出进行确定,如下图 6.1 所示:图6.1 引脚锁定图设置管脚完成后保存,依然再编译一回,才可以把引脚与原理图的输入输出锁定。电源给实验箱上电,编译成功后会生成 SOF 文件,把逻辑阵列功能下载到 FPGA 芯片中。再验证阶段,先用键盘进行操作,选择相应的波形输出,由于实验箱的电路不够完整,不
46、能够实现用示波器查看波形,所以本次采用逻辑分析仪显示分析输出波形的信息。6.2 信号发生的测试由频率控制模块可知,当 clk 时钟设置为 20MHz 时,按键 D 设置为 0,则波形输出的频率 9.77kHz,此时我们通过 嵌入式逻辑分析仪获取由 JATG 端口采集的信息。I SignalTp获取并显示的波形如图 6.2 到图 6.5 所示。若对选择模块输入端 s1 赋值 0,s2 赋值 0,即输入 00 时,此时的输出波形为方波信号,如下图所示:图 6.2 方波若对选择模块输入端 s1 赋值 1,s2 赋值 0,即输入 01 时,此时的输出波形为锯齿波信号,如下图所示:图 6.3 锯齿波若对
47、选择模块输入端 s1 赋值 0,s2 赋值 1,即输入 10 时,此时的输出波形为锯齿波信号,如下图所示:图 6.4 三角波若对选择模块输入端 s1 赋值 1,s2 赋值 1,即输入 11 时,此时输出波形是正弦波信号,如下图所示:图 6.5 正弦波通过以上的测试结果表明,通过实验箱输出给波形数据逻辑分析仪的波形数据与使用软件仿真的得到的仿真数据几乎一模一样,数据波形的频率也与理论上相符,满足设计的设想,体现设计思路是正确的。至此,基于 FPGA 多功能信号发生器的设计基本已完成,达到了预期目标。总结通过上述仿真结果可以得出,选用芯片型号为 EP1C6Q240C8,基本上满足题目要求的输出四种
48、波形,并能够改变输出波形的频率以及幅度功能。也侧面说明仅使用八位的相位累加器能够满足课题的条件,本系统采用的波形数据为 8*255 的数据,四片 ROM 依次放入四种波形的数据。当然,通过改变波形 ROM 的波形数据,我们可以设计出输出任意波形的信号发生器,相位累加器也可以进行改进,比如用 24 位的累加器,增加波形的采样点数,那么输出波形的失真度将会大大降低。此外,我们选用可编程控制的幅度模块,代码控制波形幅度,减少了传统波形发生器使用滑动变阻器调节引起的系统误差,可以使波形幅度在 0V-5V 内任意改变。任何事情都不能一蹴而就的,毕业设计也是。在设计信号发生器的这段时间遇到了很多难题。首先
49、就是对仿真软件的陌生,第一次接触 FPGA 技术还是大三,实验课做的都是一些小课题,记忆也不是很清晰,又找到之前实验课的实验书复习回顾。其次是选择系统方案是的纠结,起初是想是代码实现波形的输出,三角波、方波等都是线性函数,我们可以编写函数,在时钟的作用下累加,频率控制字改变时钟频率,进而改变输出波形的频率;设置一个最大值,幅度控制字改变最大值,累加值大于最大值就重新开始,但是最后由于正弦波信号时非线性的,而且使用这个函数法会造成比较大的波形失真,选择放弃。第三就是仿真遇到的问题,在顶层模块波形仿真时,对各个输入端已经设置好了对应的输入,但是仿真结果是没有输出,复查了每个模块,没有找到原因。经过不断的尝试后,把波形仿真的 input 设置为功能仿真,并创建功能网表,才输出正确的结果。最后在锁定引脚,下载程序后,使用逻辑解析仪显示设计的输出波形,但是并没有接触过 signalTap II,在硬件测试过程中产生了种种问题。不得已去论坛找资料自学,终究使 signalTa